Intelligent opdelt dokumentpakker i flere formater med Amazon Textract og Amazon Comprehend

Kildeknude: 1372716

Mange organisationer, der spænder over forskellige størrelser og brancher, er stadig afhængige af store mængder dokumenter til at køre deres daglige drift. For at løse denne forretningsudfordring bruger kunderne intelligente dokumentbehandlingstjenester fra AWS som f.eks amazontekst , Amazon Comprehend at hjælpe med udvinding og procesautomatisering. Før du kan udtrække tekst, nøgleværdi-par, tabeller og entiteter, skal du være i stand til at opdele flersidede PDF-dokumenter, der ofte indeholder heterogene formulartyper. I forbindelse med realkreditbehandling kan en mægler eller lånebehandler muligvis være nødt til at opdele en konsolideret PDF-lånepakke, der indeholder pantansøgningen (Fannie Mae-formular 1003), W2s, indkomstbekræftelse, 1040 skatteformularer og mere.

For at løse dette problem bruger organisationer regelbaseret behandling: identifikation af dokumenttyper via formulartitler, sidetal, formularlængder og så videre. Disse tilgange er fejlbehæftede og svære at skalere, især når formulartyperne kan have flere variationer. Derfor bryder disse løsninger hurtigt sammen i praksis og øger behovet for menneskelig indgriben.

I dette indlæg viser vi, hvordan du kan skabe din egen dokumentopdelingsløsning med lidt kode til ethvert sæt formularer, uden at bygge brugerdefinerede regler eller behandle arbejdsgange.

Løsningsoversigt

Til dette indlæg bruger vi et sæt almindelige låneansøgningsskemaer til at demonstrere, hvordan du kan bruge Amazon Textract og Amazon Comprehend til at skabe en intelligent dokumentopdeler, der er mere robust end tidligere tilgange. Ved behandling af dokumenter til realkreditansøgninger indsender låner en flersidet PDF, der er opbygget af heterogene dokumenttyper af varierende sidelængde; for at udtrække oplysninger skal brugeren (for eksempel en bank) nedbryde denne PDF.

Selvom vi viser et specifikt eksempel for pantformularer, kan du generelt skalere og anvende denne tilgang på stort set ethvert sæt af flersidede PDF-dokumenter.

Vi bruger Amazon Textract til at udtrække data fra dokumentet og bygge et Amazon Comprehend-kompatibelt datasæt til at træne en dokumentklassificeringsmodel. Dernæst træner vi klassifikationsmodellen og opretter et klassifikationsslutpunkt, der kan udføre dokumentanalyse i realtid. Husk, at Amazon Textract- og Amazon Comprehend-klassificeringsslutpunkter medfører gebyrer, så se Amazon Textract-priser , Amazon Comprehend-priser for mere information. Til sidst viser vi, hvordan vi kan klassificere dokumenter med dette slutpunkt og opdele dokumenter baseret på klassificeringsresultaterne.

Denne løsning bruger følgende AWS-tjenester:

Forudsætninger

Du skal opfylde følgende forudsætninger for at bygge og implementere denne løsning:

  1. Installer Python 3.8.x.
  2. Installer jq.
  3. Installer AWS SAM CLI.
  4. Installer Docker.
  5. Sørg for at du har pip installeret.
  6. Installer og konfigurer og AWS kommandolinjegrænseflade (AWS CLI).
  7. Konfigurer dine AWS-legitimationsoplysninger.

Løsningen er designet til at fungere optimalt i us-east-1 , us-west-2 Regioner for at drage fordel af højere standardkvoter for Amazon Textract. For specifikke regionale arbejdsbelastninger, se Amazon Textract-slutpunkter og kvoter. Sørg for at bruge en enkelt region til hele løsningen.

Klon repoen

For at komme i gang skal du klone depotet ved at køre følgende kommando; så skifter vi til arbejdsbiblioteket:

git clone https://github.com/aws-samples/aws-document-classifier-and-splitter.git
cd aws-document-classifier-and-splitter

Løsningsarbejdsgange

Løsningen består af tre arbejdsgange:

  • workflow1_endpointbuilder – Tager træningsdokumenterne og bygger et tilpasset klassificeringsslutpunkt på Amazon Comprehend.
  • workflow2_docsplitter – Fungerer som dokumentopdelingstjenesten, hvor dokumenter er opdelt efter klasse. Den bruger klassificeringens slutpunkt oprettet i workflow1.
  • workflow3_local – Er beregnet til kunder, der er i stærkt regulerede industrier og ikke kan bevare data i Amazon S3. Denne arbejdsgang indeholder lokale versioner af workflow1 , workflow2.

Lad os tage et dybt dyk ned i hver arbejdsgang, og hvordan de fungerer.

Workflow 1: Byg en Amazon Comprehend-klassifikator fra PDF-, JPG- eller PNG-dokumenter

Den første arbejdsgang tager dokumenter gemt på Amazon S3 og sender dem gennem en række trin for at udtrække data fra dokumenterne via Amazon Textract. Derefter bruges de udtrukne data til at skabe et Amazon Comprehend brugerdefineret klassifikationsslutpunkt. Dette er demonstreret i følgende arkitekturdiagram.

At starte workflow1, skal du bruge Amazon S3 URI'en for mappen, der indeholder træningsdatasætfilerne (disse kan være billeder, enkeltsidede PDF'er eller flersidede PDF'er). Strukturen af ​​mappen skal være som følger:

root dataset directory
---- class directory
-------- files

Alternativt kan strukturen have yderligere indlejrede undermapper:

root dataset directory
---- class directory
-------- nested subdirectories
------------ files

Navnene på klassens undermapper (det andet biblioteksniveau) bliver navnene på de klasser, der bruges i Amazon Comprehends brugerdefinerede klassifikationsmodel. For eksempel i den følgende filstruktur er klassen for form123.pdf is tax_forms:

training_dataset
---- tax_forms
-------- page_1
------------ form123.pdf

Udfør følgende trin for at starte arbejdsgangen:

  1. Upload datasættet til en S3-bøtte, du ejer.

Anbefalingen er at have over 50 prøver for hver klasse, du vil klassificere på. Følgende skærmbillede viser et eksempel på denne dokumentklassestruktur.

  1. Byg den sam-app ved at køre følgende kommandoer (rediger de angivne kommandoer efter behov):
cd workflow1_endpointbuilder/sam-app
sam build
sam deploy --guided
Stack Name [sam-app]: endpointbuilder
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Creating the required resources...
Successfully created!
Managed S3 bucket: {your_bucket}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

Outputtet af build er et ARN for en Step Functions-tilstandsmaskine.

  1. Når opbygningen er færdig, skal du navigere til Statsmaskiner side på konsollen Trinfunktioner.
  2. Vælg den statsmaskine, du har oprettet.
  3. Vælg Start udførelse.
  4. Indtast følgende nødvendige inputparametre:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Vælg Start udførelse.

Tilstandsmaskinen starter arbejdsgangen. Dette kan tage flere timer afhængigt af datasættets størrelse. Følgende skærmbillede viser vores tilstandsmaskine i gang.

Når tilstandsmaskinen er færdig, er hvert trin i grafen grønt, som vist på det følgende skærmbillede.

Du kan navigere til Amazon Comprehend-konsollen for at se slutpunktet implementeret.

Du har nu bygget din brugerdefinerede klassificering ved hjælp af dine dokumenter. Dette markerer afslutningen på workflow1.

Workflow 2: Byg et slutpunkt

Den anden arbejdsgang tager det slutpunkt, du oprettede i workflow1 og opdeler dokumenterne ud fra de klasser, som modellen er blevet trænet med. Dette er demonstreret i følgende arkitekturdiagram.

At starte workflow2, bygger vi sam-app. Rediger de angivne kommandoer efter behov:

cd workflow2_docsplitter/sam-app
sam-app % sam build
Build Succeeded sam-app % sam deploy --guided
Configuring SAM deploy
=========================================
Stack Name [sam-app]: docsplitter
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Managed S3 bucket: {bucket_name}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

Efter at stakken er oprettet, modtager du en Load Balancer DNS på Udgange fanen i CloudFormation-stakken. Du kan begynde at fremsætte anmodninger til dette slutpunkt.

En prøveanmodning er tilgængelig i workflow2_docsplitter/sample_request_folder/sample_s3_request.py fil. API'et tager tre parametre: S3 bucket-navnet, dokumentet Amazon S3 URI og Amazon Comprehend-klassificeringens slutpunkt ARN. Workflow2 understøtter kun PDF-input.

Til vores test bruger vi et 11 siders pantedokument med fem forskellige dokumenttyper.

Svaret for API'en er en Amazon S3 URI for en .zip-fil med alle de opdelte dokumenter. Du kan også finde denne fil i den bøtte, du angav i dit API-kald.

Download objektet og gennemgå dokumenterne opdelt baseret på klassen.

Dette markerer afslutningen på workflow2. Vi har nu vist, hvordan vi kan bruge et tilpasset Amazon Comprehend-klassifikationsslutpunkt til at klassificere og opdele dokumenter.

Arbejdsgang 3: Lokal dokumentopdeling

Vores tredje arbejdsgang følger et lignende formål som workflow1 , workflow2 at generere et Amazon Comprehend-slutpunkt; dog udføres al behandling ved hjælp af din lokale maskine til at generere en Amazon Comprehend-kompatibel CSV-fil. Denne arbejdsgang blev skabt til kunder i stærkt regulerede industrier, hvor vedvarende PDF-dokumenter på Amazon S3 muligvis ikke er mulige. Følgende arkitekturdiagram er en visuel repræsentation af den lokale arbejdsgang for slutpunktsbygger.

Følgende diagram illustrerer den lokale dokumentopdelerarkitektur.

Al koden til løsningen er tilgængelig i workflow3_local/local_endpointbuilder.py fil for at opbygge Amazon Comprehend-klassifikationsslutpunktet og workflow3_local/local_docsplitter.py at sende dokumenter til opdeling.

Konklusion

Dokumentopdeling er nøglen til at opbygge en vellykket og intelligent dokumentbehandlingsarbejdsgang. Det er stadig et meget relevant problem for virksomheder, især organisationer, der samler flere dokumenttyper til deres daglige drift. Nogle eksempler omfatter behandling af forsikringskravsdokumenter, ansøgninger om forsikringspolice, SEC-dokumenter, skatteformularer og indkomstbekræftelsesformularer.

I dette indlæg tog vi et sæt almindelige dokumenter, der bruges til lånebehandling, udtrak dataene ved hjælp af Amazon Textract og byggede et Amazon Comprehend-brugerdefineret klassifikationsslutpunkt. Med det endepunkt klassificerede vi indgående dokumenter og opdelte dem baseret på deres respektive klasse. Du kan anvende denne proces på næsten ethvert sæt dokumenter med applikationer på tværs af en række brancher, såsom sundhedspleje og finansielle tjenester. For at lære mere om Amazon Textract, besøg websiden.


Om forfatterne

Aditi Rajnish er førsteårs softwareingeniørstuderende ved University of Waterloo. Hendes interesser omfatter computersyn, naturlig sprogbehandling og edge computing. Hun brænder også for samfundsbaseret STEM-opsøgende og fortalervirksomhed. I sin fritid kan hun blive fundet ved at klatre, spille klaver eller lære at bage den perfekte scones.

Raj Pathak er løsningsarkitekt og teknisk rådgiver for Fortune 50 og mellemstore FSI-kunder (Banking, Insurance, Capital Markets) i Canada og USA. Raj har specialiseret sig i Machine Learning med applikationer i Document Extraction, Contact Center Transformation og Computer Vision.

Kilde: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-textract-and-amazon-comprehend/

Tidsstempel:

Mere fra AWS Machine Learning Blog