Împărțiți inteligent pachetele de documente cu mai multe forme cu Amazon Texttract și Amazon Comprehend

Nodul sursă: 1372716

Multe organizații care acoperă dimensiuni diferite și verticale din industrie încă se bazează pe volume mari de documente pentru a-și desfășura operațiunile de zi cu zi. Pentru a rezolva această provocare de afaceri, clienții folosesc servicii inteligente de procesare a documentelor de la AWS, cum ar fi Text Amazon și Amazon Comprehend pentru a ajuta extracția și automatizarea proceselor. Înainte de a putea extrage text, perechi cheie-valoare, tabele și entități, trebuie să puteți împărți documente PDF cu mai multe pagini care conțin adesea tipuri de formulare eterogene. De exemplu, în procesul de procesare a creditelor ipotecare, un broker sau o persoană care procesează împrumuturi poate avea nevoie să divizeze un pachet de împrumut PDF consolidat, care conține cererea de credit ipotecar (formularul Fannie Mae 1003), W2s, verificarea veniturilor, 1040 de formulare fiscale și multe altele.

Pentru a rezolva această problemă, organizațiile folosesc procesarea bazată pe reguli: identificarea tipurilor de documente prin titlurile formularelor, numerele paginilor, lungimile formularelor și așa mai departe. Aceste abordări sunt predispuse la erori și dificil de scalat, mai ales atunci când tipurile de formulare pot avea mai multe variații. În consecință, aceste soluții se defectează rapid în practică și cresc nevoia de intervenție umană.

În această postare, vă arătăm cum vă puteți crea propria soluție de împărțire a documentelor cu puțin cod pentru orice set de formulare, fără a construi reguli personalizate sau a procesa fluxuri de lucru.

Prezentare generală a soluțiilor

Pentru această postare, folosim un set de formulare comune de cerere de credit ipotecar pentru a demonstra cum puteți utiliza Amazon Texttract și Amazon Comprehend pentru a crea un divizor inteligent de documente, care este mai robust decât abordările anterioare. Atunci când procesează documente pentru cererile de credit ipotecar, împrumutatul trimite un PDF cu mai multe pagini care este format din tipuri de documente eterogene, cu lungimi de pagini diferite; pentru a extrage informații, utilizatorul (de exemplu, o bancă) trebuie să descompună acest PDF.

Deși arătăm un exemplu specific pentru formularele de credit ipotecar, puteți, în general, să scalați și să aplicați această abordare la aproape orice set de documente PDF cu mai multe pagini.

Utilizăm Amazon Texttract pentru a extrage date din document și pentru a construi un set de date compatibil Amazon Comprehend pentru a instrui a model de clasificare a documentelor. Apoi, antrenăm modelul de clasificare și creăm un punct final de clasificare care poate efectua analiza documentelor în timp real. Rețineți că punctele finale de clasificare Amazon Texttract și Amazon Comprehend implică taxe, deci consultați Prețuri Amazon Text și Prețurile Amazon Comprehend pentru mai multe informatii. În cele din urmă, arătăm cum putem clasifica documentele cu acest punct final și împărțim documentele pe baza rezultatelor clasificării.

Această soluție utilizează următoarele servicii AWS:

Cerințe preliminare

Trebuie să îndepliniți următoarele cerințe preliminare pentru a construi și a implementa această soluție:

  1. Instala Python 3.8.x.
  2. Instala jq.
  3. Instala CLI AWS SAM.
  4. Instala Docher.
  5. Asigura-te ca ai pip instalat.
  6. Instalați și configurați il Interfața liniei de comandă AWS (CLI AWS).
  7. Configurare acreditările dvs. AWS.

Soluția este concepută pentru a funcționa optim în us-east-1 și us-west-2 Regiunile să profite de cote implicite mai mari pentru Amazon Text. Pentru sarcini regionale specifice, consultați Puncte finale și cote Amazon Texttract. Asigurați-vă că utilizați o singură regiune pentru întreaga soluție.

Clonați repo

Pentru a începe, clonați depozitul rulând următoarea comandă; apoi trecem în directorul de lucru:

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

Fluxurile de lucru ale soluției

Soluția constă din trei fluxuri de lucru:

  • workflow1_endpointbuilder – Preia documentele de instruire și creează un punct final de clasificare personalizat pe Amazon Comprehend.
  • workflow2_docsplitter – Acționează ca serviciu de împărțire a documentelor, unde documentele sunt împărțite pe clasă. Utilizează punctul final de clasificare creat în workflow1.
  • workflow3_local – Este destinat clienților care se află în industrii foarte reglementate și nu pot persista date în Amazon S3. Acest flux de lucru conține versiuni locale ale workflow1 și workflow2.

Să analizăm în profunzime fiecare flux de lucru și modul în care funcționează.

Flux de lucru 1: creați un clasificator Amazon Comprehend din documente PDF, JPG sau PNG

Primul flux de lucru preia documentele stocate pe Amazon S3 și le trimite printr-o serie de pași pentru a extrage datele din documente prin Amazon Texttract. Apoi, datele extrase sunt folosite pentru a crea un punct final de clasificare personalizat Amazon Comprehend. Acest lucru este demonstrat în următoarea diagramă de arhitectură.

A lansa workflow1, aveți nevoie de URI-ul Amazon S3 al folderului care conține fișierele setului de date de antrenament (acestea pot fi imagini, PDF-uri cu o singură pagină sau PDF-uri cu mai multe pagini). Structura folderului trebuie să fie după cum urmează:

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

Alternativ, structura poate avea subdirectoare imbricate suplimentare:

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

Numele subdirectoarelor de clasă (al doilea nivel de director) devin numele claselor utilizate în modelul de clasificare personalizat Amazon Comprehend. De exemplu, în următoarea structură de fișiere, clasa for form123.pdf is tax_forms:

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

Pentru a lansa fluxul de lucru, parcurgeți următorii pași:

  1. Încărcați setul de date într-un compartiment S3 pe care îl dețineți.

Recomandarea este să aveți peste 50 de mostre pentru fiecare clasă în care doriți să vă clasificați. Următoarea captură de ecran arată un exemplu al acestei structuri de clasă de document.

  1. Construiți sam-app rulând următoarele comenzi (modificați comenzile furnizate după cum este necesar):
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

Ieșirea build-ului este un ARN pentru o mașină de stare Step Functions.

  1. Când construirea este completă, navigați la Mașini de stat pagina de pe consola Step Functions.
  2. Alegeți mașina de stare creată de dvs.
  3. Alege Începeți execuția.
  4. Introduceți următorii parametri de intrare necesari:
{
“folder_uri”: “s3://{your dataset}”
}

  1. Alege Începeți execuția.

Mașina de stare pornește fluxul de lucru. Acest lucru poate dura mai multe ore, în funcție de dimensiunea setului de date. Următoarea captură de ecran arată mașina noastră de stat în desfășurare.

Când mașina de stare este completă, fiecare pas din grafic este verde, așa cum se arată în următoarea captură de ecran.

Puteți naviga la consola Amazon Comprehend pentru a vedea punctul final implementat.

Acum ați creat clasificatorul personalizat folosind documentele dvs. Acesta marchează sfârșitul workflow1.

Fluxul de lucru 2: construiți un punct final

Al doilea flux de lucru preia punctul final în care l-ați creat workflow1 și împarte documentele în funcție de clasele cu care modelul a fost antrenat. Acest lucru este demonstrat în următoarea diagramă de arhitectură.

A lansa workflow2, construim sam-app. Modificați comenzile furnizate după cum este necesar:

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

După ce stiva este creată, primiți un DNS Load Balancer pe ieşiri fila din stiva CloudFormation. Puteți începe să faceți solicitări către acest punct final.

O cerere de eșantion este disponibilă în workflow2_docsplitter/sample_request_folder/sample_s3_request.py fişier. API-ul acceptă trei parametri: numele compartimentului S3, URI-ul Amazon S3 al documentului și ARN-ul punctului final de clasificare Amazon Comprehend. Workflow2 acceptă doar introducerea PDF.

Pentru testul nostru, folosim un document ipotecar de 11 pagini cu cinci tipuri diferite de documente.

Răspunsul pentru API este un URI Amazon S3 pentru un fișier .zip cu toate documentele împărțite. De asemenea, puteți găsi acest fișier în compartimentul pe care l-ați furnizat în apelul API.

Descărcați obiectul și revizuiți documentele împărțite în funcție de clasă.

Aceasta marchează sfârșitul workflow2. Am arătat acum cum putem folosi un punct final de clasificare Amazon Comprehend personalizat pentru a clasifica și împărți documentele.

Flux de lucru 3: Divizarea documentelor locale

Al treilea flux de lucru urmează un scop similar cu workflow1 și workflow2 pentru a genera un punct final Amazon Comprehend; totuși, toată procesarea se face folosind mașina dvs. locală pentru a genera un fișier CSV compatibil Amazon Comprehend. Acest flux de lucru a fost creat pentru clienții din industrii foarte reglementate în care documentele PDF persistente pe Amazon S3 ar putea să nu fie posibilă. Următoarea diagramă de arhitectură este o reprezentare vizuală a fluxului de lucru local al generatorului de puncte finale.

Următoarea diagramă ilustrează arhitectura locală a separatorului de documente.

Tot codul pentru soluție este disponibil în workflow3_local/local_endpointbuilder.py fișier pentru a construi punctul final de clasificare Amazon Comprehend și workflow3_local/local_docsplitter.py pentru a trimite documente pentru divizare.

Concluzie

Divizarea documentelor este cheia pentru construirea unui flux de lucru de procesare a documentelor de succes și inteligent. Este încă o problemă foarte relevantă pentru afaceri, în special pentru organizațiile care agreg mai multe tipuri de documente pentru operațiunile lor de zi cu zi. Unele exemple includ procesarea documentelor de daune de asigurare, cereri de poliță de asigurare, documente SEC, formulare fiscale și formulare de verificare a veniturilor.

În această postare, am luat un set de documente comune utilizate pentru procesarea împrumuturilor, am extras datele folosind Amazon Texttract și am construit un punct final de clasificare personalizat Amazon Comprehend. Cu acest punct final, am clasificat documentele primite și le-am împărțit în funcție de clasa respectivă. Puteți aplica acest proces la aproape orice set de documente cu aplicații dintr-o varietate de industrii, cum ar fi asistența medicală și serviciile financiare. Pentru a afla mai multe despre Amazon Text, vizitați pagina web.


Despre Autori

Aditi Rajnish este student în primul an de inginerie software la Universitatea din Waterloo. Interesele ei includ viziunea computerizată, procesarea limbajului natural și edge computing. De asemenea, este pasionată de sensibilizarea și advocacy STEM la nivel comunitar. În timpul ei liber, ea poate fi găsită cățărând pe stâncă, cântând la pian sau învățând cum să coace scone-ul perfect.

Raj Pathak este arhitect de soluții și consilier tehnic pentru clienții Fortune 50 și Mid-Size FSI (bancare, asigurări, piețe de capital) din Canada și Statele Unite. Raj este specializat în învățare automată cu aplicații în extragerea documentelor, transformarea centrului de contact și viziunea computerizată.

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

Timestamp-ul:

Mai mult de la Blog de AWS Machine Learning