Intelligent dela dokumentpaket i flera format med Amazon Textract och Amazon Comprehend

Källnod: 1372716

Många organisationer som spänner över olika storlekar och branschvertikalar förlitar sig fortfarande på stora volymer dokument för att sköta sin dagliga verksamhet. För att lösa denna affärsutmaning använder kunderna intelligenta dokumentbehandlingstjänster från AWS som t.ex amazontext och Amazon Comprehend att hjälpa till med utvinning och processautomatisering. Innan du kan extrahera text, nyckel-värdepar, tabeller och entiteter måste du kunna dela flersidiga PDF-dokument som ofta innehåller heterogena formulärtyper. Till exempel kan en mäklare eller lånebearbetande individ behöva dela upp ett konsoliderat PDF-lånepaket, som innehåller låneansökan (Fannie Mae-formulär 1003), W2s, inkomstverifiering, 1040-skatteformulär med mera.

För att lösa detta problem använder organisationer regelbaserad bearbetning: identifiera dokumenttyper via formulärtitlar, sidnummer, formulärlängder och så vidare. Dessa tillvägagångssätt är felbenägna och svåra att skala, särskilt när formulärtyperna kan ha flera varianter. Följaktligen går dessa lösningar snabbt sönder i praktiken och ökar behovet av mänskligt ingripande.

I det här inlägget visar vi hur du kan skapa din egen dokumentdelningslösning med lite kod för vilken uppsättning formulär som helst, utan att bygga anpassade regler eller bearbeta arbetsflöden.

Lösningsöversikt

För det här inlägget använder vi en uppsättning vanliga ansökningsformulär för bolån för att visa hur du kan använda Amazon Textract och Amazon Comprehend för att skapa en intelligent dokumentdelare som är mer robust än tidigare tillvägagångssätt. Vid handläggning av dokument för bolåneansökningar lämnar låntagaren en flersidig PDF som är uppbyggd av heterogena dokumenttyper med varierande sidlängder; för att extrahera information måste användaren (till exempel en bank) bryta ner denna PDF.

Även om vi visar ett specifikt exempel för inteckningsformulär, kan du generellt skala och tillämpa detta tillvägagångssätt på nästan alla flersidiga PDF-dokument.

Vi använder Amazon Textract för att extrahera data från dokumentet och bygga en Amazon Comprehend-kompatibel datauppsättning för att träna en dokumentklassificeringsmodell. Därefter tränar vi klassificeringsmodellen och skapar en klassificeringsändpunkt som kan utföra dokumentanalys i realtid. Tänk på att Amazon Textract och Amazon Comprehend klassificeringsslutpunkter medför avgifter, så se Amazon Textract-prissättning och Amazon Comprehend-prissättning för mer information. Slutligen visar vi hur vi kan klassificera dokument med denna slutpunkt och dela upp dokument utifrån klassificeringsresultaten.

Denna lösning använder följande AWS-tjänster:

Förutsättningar

Du måste uppfylla följande förutsättningar för att bygga och distribuera den här lösningen:

  1. installera Python 3.8.x.
  2. installera jq.
  3. installera AWS SAM CLI.
  4. installera Hamnarbetare.
  5. Se till att du har pip installerad.
  6. Installera och konfigurera d AWS-kommandoradsgränssnitt (AWS CLI).
  7. Inställd dina AWS-uppgifter.

Lösningen är designad för att fungera optimalt i us-east-1 och us-west-2 Regioner för att dra nytta av högre standardkvoter för Amazon Textract. För specifika regionala arbetsbelastningar, se Amazon Textract-slutpunkter och kvoter. Se till att du använder en enda region för hela lösningen.

Klona repo

För att komma igång, klona förvaret genom att köra följande kommando; sedan byter vi till arbetskatalogen:

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

Lösningsarbetsflöden

Lösningen består av tre arbetsflöden:

  • workflow1_endpointbuilder – Tar utbildningsdokumenten och bygger en anpassad klassificeringsslutpunkt på Amazon Comprehend.
  • workflow2_docsplitter – Fungerar som dokumentdelningstjänsten, där dokument delas upp efter klass. Den använder klassificeringens slutpunkt som skapats i workflow1.
  • arbetsflöde3_lokalt – Är avsedd för kunder som är i starkt reglerade branscher och inte kan bevara data i Amazon S3. Detta arbetsflöde innehåller lokala versioner av workflow1 och workflow2.

Låt oss ta en djupdykning i varje arbetsflöde och hur de fungerar.

Arbetsflöde 1: Bygg en Amazon Comprehend-klassificerare från PDF-, JPG- eller PNG-dokument

Det första arbetsflödet tar dokument lagrade på Amazon S3 och skickar dem genom en rad steg för att extrahera data från dokumenten via Amazon Textract. Sedan används den extraherade informationen för att skapa en anpassad klassificeringsslutpunkt för Amazon Comprehend. Detta visas i följande arkitekturdiagram.

Att avfyra workflow1, behöver du Amazon S3 URI för mappen som innehåller utbildningsdatafilerna (dessa kan vara bilder, ensidiga PDF-filer eller flersidiga PDF-filer). Strukturen för mappen måste vara följande:

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

Alternativt kan strukturen ha ytterligare kapslade underkataloger:

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

Namnen på klassens underkataloger (den andra katalognivån) blir namnen på klasserna som används i Amazon Comprehends anpassade klassificeringsmodell. Till exempel, i följande filstruktur, klassen för form123.pdf is tax_forms:

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

Utför följande steg för att starta arbetsflödet:

  1. Ladda upp datasetet till en S3-bucket som du äger.

Rekommendationen är att ha över 50 prover för varje klass du vill klassificera på. Följande skärmdump visar ett exempel på denna dokumentklassstruktur.

  1. Bygga sam-app genom att köra följande kommandon (ändra de angivna kommandona 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

Utdata från konstruktionen är en ARN för en tillståndsmaskin för stegfunktioner.

  1. När bygget är klart, navigera till Statliga maskiner sidan på Step Functions-konsolen.
  2. Välj den tillståndsmaskin du skapade.
  3. Välja Starta körning.
  4. Ange följande nödvändiga inmatningsparametrar:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Välja Starta körning.

Tillståndsmaskinen startar arbetsflödet. Detta kan ta flera timmar beroende på datauppsättningens storlek. Följande skärmdump visar vår tillståndsmaskin på gång.

När tillståndsmaskinen är klar är varje steg i grafen grönt, som visas i följande skärmdump.

Du kan navigera till Amazon Comprehend-konsolen för att se slutpunkten utplacerad.

Du har nu byggt din anpassade klassificerare med dina dokument. Detta markerar slutet på workflow1.

Arbetsflöde 2: Bygg en slutpunkt

Det andra arbetsflödet tar slutpunkten du skapade i workflow1 och delar upp dokumenten utifrån de klasser som modellen har tränats med. Detta visas i följande arkitekturdiagram.

Att avfyra workflow2, bygger vi sam-app. Ändra de angivna kommandona 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 att stacken har skapats får du en Load Balancer DNS på Utgångarna fliken i CloudFormation-stacken. Du kan börja göra förfrågningar till denna slutpunkt.

En provförfrågan finns tillgänglig i workflow2_docsplitter/sample_request_folder/sample_s3_request.py fil. API:et tar tre parametrar: S3-bucket-namnet, dokumentet Amazon S3 URI och Amazon Comprehend-klassificeringens slutpunkt ARN. Workflow2 stöder endast PDF-inmatning.

För vårt test använder vi ett 11-sidigt pantdokument med fem olika dokumenttyper.

Svaret för API:t är en Amazon S3 URI för en .zip-fil med alla delade dokument. Du kan också hitta den här filen i hinken som du angav i ditt API-anrop.

Ladda ner objektet och granska dokumenten fördelade baserat på klass.

Detta markerar slutet på workflow2. Vi har nu visat hur vi kan använda en anpassad Amazon Comprehend-klassificeringsslutpunkt för att klassificera och dela dokument.

Arbetsflöde 3: Lokal dokumentdelning

Vårt tredje arbetsflöde följer ett liknande syfte som workflow1 och workflow2 att generera en Amazon Comprehend-slutpunkt; dock görs all bearbetning med din lokala dator för att generera en Amazon Comprehend-kompatibel CSV-fil. Det här arbetsflödet skapades för kunder i starkt reglerade branscher där beständiga PDF-dokument på Amazon S3 kanske inte är möjliga. Följande arkitekturdiagram är en visuell representation av det lokala arbetsflödet för slutpunktsbyggaren.

Följande diagram illustrerar den lokala dokumentdelningsarkitekturen.

All kod för lösningen finns tillgänglig i workflow3_local/local_endpointbuilder.py fil för att bygga Amazon Comprehend-klassificeringsslutpunkten och workflow3_local/local_docsplitter.py att skicka dokument för delning.

Slutsats

Dokumentdelning är nyckeln till att bygga ett framgångsrikt och intelligent arbetsflöde för dokumentbearbetning. Det är fortfarande ett mycket relevant problem för företag, särskilt organisationer som samlar flera dokumenttyper för sin dagliga verksamhet. Några exempel inkluderar behandling av försäkringskravsdokument, försäkringsansökningar, SEC-dokument, skatteformulär och formulär för inkomstverifiering.

I det här inlägget tog vi en uppsättning vanliga dokument som används för lånebearbetning, extraherade data med Amazon Textract och byggde en anpassad klassificeringsslutpunkt för Amazon Comprehend. Med den slutpunkten klassificerade vi inkommande dokument och delade upp dem baserat på deras respektive klass. Du kan tillämpa den här processen på nästan vilken uppsättning dokument som helst med applikationer inom en mängd olika branscher, som sjukvård och finansiella tjänster. För att lära dig mer om Amazon Textract, besök webbsidan.


Om författarna

Aditi Rajnish är en första års programvaruingenjörsstudent vid University of Waterloo. Hennes intressen inkluderar datorseende, naturlig språkbehandling och edge computing. Hon brinner också för samhällsbaserad STEM-uppsökande och opinionsbildning. På fritiden kan hon hittas på att klättra, spela piano eller lära sig att baka den perfekta scones.

Raj Pathak är en lösningsarkitekt och teknisk rådgivare till Fortune 50 och medelstora FSI-kunder (Banking, Insurance, Capital Markets) i Kanada och USA. Raj är specialiserad på maskininlärning med applikationer inom dokumentextraktion, kontaktcentertransformation och datorseende.

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

Tidsstämpel:

Mer från AWS-maskininlärningsblogg