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

Kilde node: 1372716

Mange organisasjoner som spenner over forskjellige størrelser og bransjevertikaler er fortsatt avhengige av store mengder dokumenter for å drive sin daglige drift. For å løse denne forretningsutfordringen bruker kundene intelligente dokumentbehandlingstjenester fra AWS som f.eks amazontekst og Amazon Comprehend å hjelpe med utvinning og prosessautomatisering. Før du kan trekke ut tekst, nøkkelverdi-par, tabeller og enheter, må du kunne dele opp flersidige PDF-dokumenter som ofte inneholder heterogene skjematyper. For eksempel, i boliglånsbehandling, kan en megler eller lånebehandlingsperson trenge å dele opp en konsolidert PDF-lånepakke, som inneholder boliglånssøknaden (Fannie Mae-skjema 1003), W2s, inntektsverifisering, 1040 skatteskjemaer og mer.

For å takle dette problemet bruker organisasjoner regelbasert behandling: identifisere dokumenttyper via skjematitler, sidetall, skjemalengder og så videre. Disse tilnærmingene er utsatt for feil og vanskelig å skalere, spesielt når skjematypene kan ha flere variasjoner. Følgelig brytes disse løsningene raskt sammen i praksis og øker behovet for menneskelig intervensjon.

I dette innlegget viser vi hvordan du kan lage din egen dokumentdelingsløsning med lite kode for ethvert sett med skjemaer, uten å bygge tilpassede regler eller behandle arbeidsflyter.

Løsningsoversikt

For dette innlegget bruker vi et sett med vanlige søknadsskjemaer for boliglån for å demonstrere hvordan du kan bruke Amazon Textract og Amazon Comprehend for å lage en intelligent dokumentdeler som er mer robust enn tidligere tilnærminger. Ved behandling av dokumenter for boliglånssøknader sender låntaker inn en flersidig PDF som er bygd opp av heterogene dokumenttyper med varierende sidelengde; for å hente ut informasjon, må brukeren (for eksempel en bank) bryte ned denne PDF-en.

Selv om vi viser et spesifikt eksempel for boliglånsskjemaer, kan du generelt skalere og bruke denne tilnærmingen på omtrent alle sett med flersidige PDF-dokumenter.

Vi bruker Amazon Textract for å trekke ut data fra dokumentet og bygge et Amazon Comprehend-kompatibelt datasett for å trene en dokumentklassifiseringsmodell. Deretter trener vi klassifiseringsmodellen og lager et klassifiseringsendepunkt som kan utføre sanntids dokumentanalyse. Husk at Amazon Textract og Amazon Comprehend klassifiseringsendepunkter påløper kostnader, så se Amazon Textract-priser og Amazon Comprehend-priser for mer informasjon. Til slutt viser vi hvordan vi kan klassifisere dokumenter med dette endepunktet og dele opp dokumenter basert på klassifiseringsresultatene.

Denne løsningen bruker følgende AWS-tjenester:

Forutsetninger

Du må fullføre følgende forutsetninger for å bygge og distribuere denne løsningen:

  1. Install Python 3.8.x.
  2. Install jq.
  3. Install AWS SAM CLI.
  4. Install Docker.
  5. Pass på at du har pip installert.
  6. Installer og konfigurer de AWS kommandolinjegrensesnitt (AWS CLI).
  7. Konfigurer din AWS-legitimasjon.

Løsningen er designet for å fungere optimalt i us-east-1 og us-west-2 Regioner for å dra nytte av høyere standardkvoter for Amazon Textract. For spesifikke regionale arbeidsbelastninger, se Amazon Textract-endepunkter og kvoter. Pass på at du bruker en enkelt region for hele løsningen.

Klone repoen

For å komme i gang, klone depotet ved å kjøre følgende kommando; så bytter vi til arbeidskatalogen:

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

Løsningsarbeidsflyter

Løsningen består av tre arbeidsflyter:

  • arbeidsflyt1_endepunktbygger – Tar opplæringsdokumentene og bygger et tilpasset klassifiseringsendepunkt på Amazon Comprehend.
  • workflow2_docsplitter – Fungerer som dokumentdelingstjenesten, der dokumenter deles etter klasse. Den bruker klassifiseringsendepunktet opprettet i workflow1.
  • arbeidsflyt3_lokal – Er beregnet på kunder som er i sterkt regulerte bransjer og ikke kan opprettholde data i Amazon S3. Denne arbeidsflyten inneholder lokale versjoner av workflow1 og workflow2.

La oss ta et dypdykk i hver arbeidsflyt og hvordan de fungerer.

Arbeidsflyt 1: Bygg en Amazon Comprehend-klassifisering fra PDF-, JPG- eller PNG-dokumenter

Den første arbeidsflyten tar dokumenter som er lagret på Amazon S3 og sender dem gjennom en rekke trinn for å trekke ut dataene fra dokumentene via Amazon Textract. Deretter brukes de utpakkede dataene til å lage et tilpasset Amazon Comprehend-endepunkt for klassifisering. Dette er demonstrert i følgende arkitekturdiagram.

Til lansering workflow1, trenger du Amazon S3 URI for mappen som inneholder opplæringsdatasettet (disse kan være bilder, enkeltsides PDF-er eller flersidige PDF-er). Strukturen til mappen må være som følger:

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

Alternativt kan strukturen ha flere nestede underkataloger:

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

Navnene på klasseunderkatalogene (det andre katalognivået) blir navnene på klassene som brukes i Amazon Comprehends tilpassede klassifiseringsmodell. For eksempel, i følgende filstruktur, klassen for form123.pdf is tax_forms:

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

For å starte arbeidsflyten, fullfør følgende trinn:

  1. Last opp datasettet til en S3-bøtte du eier.

Anbefalingen er å ha over 50 prøver for hver klasse du ønsker å klassifisere på. Følgende skjermbilde viser et eksempel på denne dokumentklassens struktur.

  1. Bygg sam-app ved å kjøre følgende kommandoer (endre de angitte kommandoene etter 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

Utgangen fra bygget er en ARN for en tilstandsmaskin for trinnfunksjoner.

  1. Når byggingen er fullført, naviger til Oppgi maskiner siden på Step Functions-konsollen.
  2. Velg statsmaskinen du opprettet.
  3. Velg Start utførelse.
  4. Skriv inn følgende nødvendige inndataparametere:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Velg Start utførelse.

Tilstandsmaskinen starter arbeidsflyten. Dette kan ta flere timer avhengig av størrelsen på datasettet. Følgende skjermbilde viser tilstandsmaskinen vår som pågår.

Når tilstandsmaskinen er fullført, er hvert trinn i grafen grønt, som vist i følgende skjermbilde.

Du kan navigere til Amazon Comprehend-konsollen for å se endepunktet distribuert.

Du har nå bygget din egendefinerte klassifisering ved å bruke dokumentene dine. Dette markerer slutten på workflow1.

Arbeidsflyt 2: Bygg et endepunkt

Den andre arbeidsflyten tar endepunktet du opprettet i workflow1 og deler opp dokumentene basert på klassene som modellen har blitt trent med. Dette er demonstrert i følgende arkitekturdiagram.

Til lansering workflow2, bygger vi sam-app. Endre de angitte kommandoene etter 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

Etter at stabelen er opprettet, mottar du en Load Balancer DNS på Utganger fanen i CloudFormation-stakken. Du kan begynne å sende forespørsler til dette endepunktet.

En prøveforespørsel er tilgjengelig i workflow2_docsplitter/sample_request_folder/sample_s3_request.py fil. API-en tar tre parametere: S3-bøttenavnet, dokumentet Amazon S3 URI og Amazon Comprehend-klassifiseringsendepunktet ARN. Workflow2 støtter bare PDF-inndata.

Til vår test bruker vi et 11-siders pantedokument med fem ulike dokumenttyper.

Svaret for API er en Amazon S3 URI for en .zip-fil med alle delte dokumenter. Du kan også finne denne filen i bøtten du oppga i API-kallet.

Last ned objektet og se gjennom dokumentene delt basert på klassen.

Dette markerer slutten på workflow2. Vi har nå vist hvordan vi kan bruke et tilpasset Amazon Comprehend-klassifiseringsendepunkt for å klassifisere og dele dokumenter.

Arbeidsflyt 3: Lokal dokumentdeling

Vår tredje arbeidsflyt følger et lignende formål som workflow1 og workflow2 å generere et Amazon Comprehend-endepunkt; all behandling gjøres imidlertid ved å bruke den lokale maskinen din for å generere en Amazon Comprehend-kompatibel CSV-fil. Denne arbeidsflyten ble opprettet for kunder i svært regulerte bransjer der vedvarende PDF-dokumenter på Amazon S3 kanskje ikke er mulig. Følgende arkitekturdiagram er en visuell representasjon av arbeidsflyten for den lokale endepunktbyggeren.

Følgende diagram illustrerer den lokale dokumentsplitterarkitekturen.

All koden for løsningen er tilgjengelig i workflow3_local/local_endpointbuilder.py fil for å bygge Amazon Comprehend-klassifiseringsendepunktet og workflow3_local/local_docsplitter.py å sende dokumenter for deling.

konklusjonen

Dokumentdeling er nøkkelen til å bygge en vellykket og intelligent arbeidsflyt for dokumentbehandling. Det er fortsatt et svært relevant problem for bedrifter, spesielt organisasjoner som samler flere dokumenttyper for sin daglige drift. Noen eksempler inkluderer behandling av forsikringskravdokumenter, søknader om forsikringspoliser, SEC-dokumenter, skatteskjemaer og inntektsbekreftelsesskjemaer.

I dette innlegget tok vi et sett med vanlige dokumenter som brukes til behandling av lån, hentet ut dataene ved å bruke Amazon Textract og bygde et tilpasset Amazon Comprehend-endepunkt for klassifisering. Med det endepunktet klassifiserte vi innkommende dokumenter og delte dem basert på deres respektive klasse. Du kan bruke denne prosessen på nesten ethvert sett med dokumenter med applikasjoner på tvers av en rekke bransjer, for eksempel helsetjenester og finansielle tjenester. For å lære mer om Amazon Textract, besøk hjemmesiden.


Om forfatterne

Aditi Rajnish er en førsteårs programvareingeniørstudent ved University of Waterloo. Hennes interesser inkluderer datasyn, naturlig språkbehandling og edge computing. Hun er også lidenskapelig opptatt av samfunnsbasert STEM-oppsøking og talsmann. På fritiden kan hun bli funnet i fjellklatring, spille piano eller lære å bake den perfekte scones.

Raj Pathak er en løsningsarkitekt og teknisk rådgiver for Fortune 50 og mellomstore FSI-kunder (Banking, Insurance, Capital Markets) over hele Canada og USA. Raj spesialiserer seg på maskinlæring med applikasjoner innen dokumentutvinning, kontaktsentertransformasjon og datasyn.

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

Tidstempel:

Mer fra AWS maskinlæringsblogg