Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract

Text Amazon este un serviciu de învățare automată (ML) care extrage automat text, scris de mână și date din orice document sau imagine. Amazon Textract oferă acum flexibilitatea de a specifica datele pe care trebuie să le extrageți din documente folosind noua caracteristică Interogări din API-ul Analyze Document. Nu trebuie să cunoașteți structura datelor din document (tabel, formular, câmp implicit, date imbricate) sau să vă faceți griji cu privire la variațiile între versiunile și formatele documentului.

În această postare, discutăm următoarele subiecte:

  • Povești de succes de la clienții AWS și beneficiile noii caracteristici Interogări
  • Cum API-ul Analyze Document Queries ajută la extragerea informațiilor din documente
  • O prezentare a consolei Amazon Texttract
  • Exemple de cod pentru a utiliza API-ul Analyze Document Queries
  • Cum să procesați răspunsul cu biblioteca de analiză Amazon Texttract

Beneficiile noii caracteristici Interogări

Soluțiile OCR tradiționale se luptă să extragă datele cu acuratețe din majoritatea documentelor semi-structurate și nestructurate din cauza variațiilor semnificative ale modului în care datele sunt prezentate în mai multe versiuni și formate ale acestor documente. Trebuie să implementați un cod personalizat de postprocesare sau să examinați manual informațiile extrase din aceste documente. Cu funcția Interogări, puteți specifica informațiile de care aveți nevoie sub formă de întrebări în limbaj natural (de exemplu, „Care este numele clientului”) și puteți primi informațiile exacte („John Doe”) ca parte a răspunsului API. Caracteristica folosește o combinație de modele vizuale, spațiale și lingvistice pentru a extrage informațiile pe care le căutați cu o acuratețe ridicată. Caracteristica Interogări este pre-antrenată pe o mare varietate de documente semi-structurate și nestructurate. Unele exemple includ bonuri de plată, extrase de cont bancar, W-2, formulare de cerere de împrumut, note de credit ipotecar și carduri de vaccin și de asigurare.

Amazon Texttract ne permite să automatizăm nevoile de procesare a documentelor ale clienților noștri. Cu funcția Interogări, vom putea extrage date dintr-o varietate de documente cu o flexibilitate și o precizie și mai mari,Matei 22:21 a declarat Robert Jansen, Chief Executive Officer la TekStream Solutions. "Considerăm acest lucru ca un mare câștig de productivitate pentru clienții noștri de afaceri, care vor putea folosi capacitatea Interogări ca parte a soluției noastre IDP pentru a obține rapid informații cheie din documentele lor.Matei 22:21

Amazon Texttract ne permite să extragem text, precum și elemente structurate, cum ar fi formulare și tabele, din imagini cu o precizie ridicată. Amazon Textract Queries ne-a ajutat să îmbunătățim drastic calitatea extragerii informațiilor din mai multe documente esențiale pentru afaceri, cum ar fi fișele cu date de siguranță sau specificațiile materialelorMatei 22:21 a spus Thorsten Warnecke, director | Sef PC Analytics, Camelot Management Consultants. "Sistemul de interogări în limbaj natural oferă o mare flexibilitate și precizie, ceea ce ne-a redus încărcarea post-procesare și ne-a permis să adăugăm mai rapid documente noi la instrumentele noastre de extragere a datelor.Matei 22:21

Cum API-ul Analyze Document Queries ajută la extragerea informațiilor din documente

Companiile și-au sporit gradul de adoptare a platformelor digitale, în special în contextul pandemiei de COVID-19. Majoritatea organizațiilor oferă acum o modalitate digitală de a-și achiziționa serviciile și produsele utilizând smartphone-uri și alte dispozitive mobile, ceea ce oferă flexibilitate utilizatorilor, dar crește și amploarea la care documentele digitale trebuie revizuite, procesate și analizate. În unele sarcini în care, de exemplu, documentele ipotecare, cardurile de vaccinare, talonele de plată, cardurile de asigurare și alte documente trebuie analizate digital, complexitatea extragerii datelor poate deveni exponențial agravată, deoarece aceste documente nu au un format standard sau au variații semnificative în formatul datelor. în diferite versiuni ale documentului.

Chiar și soluțiile OCR puternice se luptă să extragă datele cu acuratețe din aceste documente și poate fi necesar să implementați postprocesare personalizată pentru aceste documente. Aceasta include maparea posibilelor variații ale cheilor de formular cu numele de câmpuri native ale clientului sau includerea învățării automate personalizate pentru a identifica informații specifice într-un document nestructurat.

Noul API Analyze Document Queries din Amazon Texttract poate prelua întrebări scrise în limbaj natural, cum ar fi „Care este rata dobânzii?” și efectuați analize puternice AI și ML pe document pentru a afla informațiile dorite și a le extrage din document fără nicio postprocesare. Caracteristica Interogări nu necesită pregătire personalizată a modelelor sau configurarea de șabloane sau configurații. Puteți începe rapid prin încărcarea documentelor și specificarea întrebărilor pe acele documente prin consola Amazon Texttract, Interfața liniei de comandă AWS (AWS CLI) sau AWS SDK.

În secțiunile ulterioare ale acestei postări, parcurgem exemple detaliate despre cum să utilizați această nouă funcționalitate în cazurile de utilizare obișnuite ale sarcinii de lucru și cum să utilizați API-ul Analyze Document Queries pentru a adăuga agilitate procesului de digitalizare a sarcinii de lucru.

Utilizați funcția Interogări de pe consola Amazon Texttract

Înainte de a începe cu API-ul și mostrele de cod, să revizuim consola Amazon Texttract. Următoarea imagine prezintă un exemplu de card de vaccinare pe Interogări pentru API-ul Analyze Document de pe consola Amazon Texttract. După ce încărcați documentul în consola Amazon Texttract, alegeți Interogări în Configurați documentul secțiune. Apoi puteți adăuga interogări sub formă de întrebări în limbaj natural. După ce ați adăugat toate interogările, alegeți Aplicați configurația. Răspunsurile la întrebări se află pe Interogări tab.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Exemple de cod

În această secțiune, explicăm cum să invocați API-ul Analyze Document cu parametrul Interogări pentru a obține răspunsuri la întrebările în limbaj natural despre document. Documentul de intrare este fie într-un format de matrice de octeți, fie situat într-un Serviciul Amazon de stocare simplă (Amazon S3) găleată. Transmiteți octeți de imagine unei operații API Amazon Texttract utilizând proprietatea Bytes. De exemplu, puteți utiliza Bytes proprietate pentru a transmite un document încărcat dintr-un sistem de fișiere local. Octeți de imagine trecuți prin utilizarea Bytes proprietatea trebuie să fie codificată base64. Este posibil ca codul dvs. să nu fie necesar să codifice octeții de fișier de document dacă utilizați un SDK AWS pentru a apela operațiunile API Amazon Texttract. Ca alternativă, puteți trece imaginile stocate într-o găleată S3 unei operații API Amazon Texttract utilizând S3Object proprietate. Documentele stocate într-o găleată S3 nu trebuie să fie codificate în base64.

Puteți utiliza funcția Interogări pentru a obține răspunsuri din diferite tipuri de documente, cum ar fi bonuri de plată, carduri de vaccinare, documente ipotecare, extrase bancare, formulare W-2, formulare 1099 și altele. În secțiunile următoare, trecem peste unele dintre aceste documente și arătăm cum funcționează funcția Interogări.

Talonul de plată

În acest exemplu, parcurgem pașii pentru a analiza un talon de plată folosind funcția Interogări, așa cum se arată în imaginea de exemplu următoare.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Folosim următorul exemplu de cod Python:

import boto3
import json #create a Textract Client
textract = boto3.client('textract') image_filename = "paystub.jpg" response = None
with open(image_filename, 'rb') as document: imageBytes = bytearray(document.read()) # Call Textract AnalyzeDocument by passing a document from local disk
response = textract.analyze_document( Document={'Bytes': imageBytes}, FeatureTypes=["QUERIES"], QueriesConfig={ "Queries": [{ "Text": "What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS" }, { "Text": "What is the current gross pay?", "Alias": "PAYSTUB_CURRENT_GROSS" }] })

Următorul cod este un exemplu de comandă AWS CLI:

aws textract analyze-document —document '{"S3Object":{"Bucket":"your-s3-bucket","Name":"paystub.jpg"}}' —feature-types '["QUERIES"]' —queries-config '{"Queries":[{"Text":"What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS"}]}' 

Să analizăm răspunsul pe care îl primim pentru cele două interogări pe care le-am transmis API-ului Analyze Document în exemplul precedent. Următorul răspuns a fost tăiat pentru a afișa numai părțile relevante:

{ "BlockType":"QUERY", "Id":"cbbba2fa-45be-452b-895b-adda98053153", #id of first QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT ] } ], "Query":{ "Text":"What is the year to date gross pay", #First Query "Alias":"PAYSTUB_YTD_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":87.0, "Text":"23,526.80", #Answer to the first Query "Geometry":{...}, "Id":"f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT }, { "BlockType":"QUERY", "Id":"4e2a17f0-154f-4847-954c-7c2bf2670c52", #id of second QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "350ab92c-4128-4aab-a78a-f1c6f6718959"#id of second QUERY_RESULT ] } ], "Query":{ "Text":"What is the current gross pay?", #Second Query "Alias":"PAYSTUB_CURRENT_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":95.0, "Text":"$ 452.43", #Answer to the Second Query "Geometry":{...}, "Id":"350ab92c-4128-4aab-a78a-f1c6f6718959" #id of second QUERY_RESULT }

Răspunsul are un BlockType of QUERY care arată întrebarea care a fost pusă și a Relationships secțiunea care are ID-ul blocului care are răspunsul. Răspunsul este în BlockType of QUERY_RESULT. Aliasul care este transmis ca intrare în API-ul Analyze Document este returnat ca parte a răspunsului și poate fi folosit pentru a eticheta răspunsul.

Noi folosim Analizator de răspunsuri Amazon Text pentru a extrage doar întrebările, pseudonimul și răspunsurile corespunzătoare la acele întrebări:

import trp.trp2 as t2 d = t2.TDocumentSchema().load(response)
page = d.pages[0] # get_query_answers returns a list of [query, alias, answer]
query_answers = d.get_query_answers(page=page)
for x in query_answers: print(f"{image_filename},{x[1]},{x[2]}") from tabulate import tabulate
print(tabulate(query_answers, tablefmt="github"))

Codul precedent returnează următoarele rezultate:

|------------------------------------|-----------------------|-----------|
| What is the current gross pay? | PAYSTUB_CURRENT_GROSS | $ 452.43 |
| What is the year to date gross pay | PAYSTUB_YTD_GROSS | 23,526.80 |

Mai multe întrebări și codul complet pot fi găsite în caietul de pe site-ul GitHub repo.

Nota de ipoteca

API-ul Analyze Document Queries funcționează bine și cu notele ipotecare precum următoarele.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Procesul de apelare a API-ului și a rezultatelor procesului este același cu exemplul anterior. Puteți găsi exemplul de cod complet pe GitHub repo.

Următorul cod arată exemplele de răspunsuri obținute folosind API:

|------------------------------------------------------------|----------------------------------|---------------|
| When is this document dated? | MORTGAGE_NOTE_DOCUMENT_DATE | March 4, 2022 |
| What is the note date? | MORTGAGE_NOTE_DATE | March 4, 2022 |
| When is the Maturity date the borrower has to pay in full? | MORTGAGE_NOTE_MATURITY_DATE | April, 2032 |
| What is the note city and state? | MORTGAGE_NOTE_CITY_STATE | Anytown, ZZ |
| what is the yearly interest rate? | MORTGAGE_NOTE_YEARLY_INTEREST | 4.150% |
| Who is the lender? | MORTGAGE_NOTE_LENDER | AnyCompany |
| When does payments begin? | MORTGAGE_NOTE_BEGIN_PAYMENTS | April, 2022 |
| What is the beginning date of payment? | MORTGAGE_NOTE_BEGIN_DATE_PAYMENT | April, 2022 |
| What is the initial monthly payments? | MORTGAGE_NOTE_MONTHLY_PAYMENTS | $ 2500 |
| What is the interest rate? | MORTGAGE_NOTE_INTEREST_RATE | 4.150% |
| What is the principal amount borrower has to pay? | MORTGAGE_NOTE_PRINCIPAL_PAYMENT | $ 500,000 |

Card de vaccinare

Funcția de interogări Amazon Texttract funcționează, de asemenea, foarte bine pentru a extrage informații de pe carduri de vaccinare sau carduri care seamănă cu aceasta, ca în exemplul următor.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Procesul de a apela API-ul și de a analiza rezultatele este același cu cel folosit pentru un talon de plată. După ce procesăm răspunsul, obținem următoarele informații:

|------------------------------------------------------------|--------------------------------------|--------------|
| What is the patients first name | PATIENT_FIRST_NAME | Major |
| What is the patients last name | PATIENT_LAST_NAME | Mary |
| Which clinic site was the 1st dose COVID-19 administrated? | VACCINATION_FIRST_DOSE_CLINIC_SITE | XYZ |
| Who is the manufacturer for 1st dose of COVID-19? | VACCINATION_FIRST_DOSE_MANUFACTURER | Pfizer |
| What is the date for the 2nd dose covid-19? | VACCINATION_SECOND_DOSE_DATE | 2/8/2021 |
| What is the patient number | PATIENT_NUMBER | 012345abcd67 |
| Who is the manufacturer for 2nd dose of COVID-19? | VACCINATION_SECOND_DOSE_MANUFACTURER | Pfizer |
| Which clinic site was the 2nd dose covid-19 administrated? | VACCINATION_SECOND_DOSE_CLINIC_SITE | CVS |
| What is the lot number for 2nd dose covid-19? | VACCINATION_SECOND_DOSE_LOT_NUMBER | BB5678 |
| What is the date for the 1st dose covid-19? | VACCINATION_FIRST_DOSE_DATE | 1/18/21 |
| What is the lot number for 1st dose covid-19? | VACCINATION_FIRST_DOSE_LOT_NUMBER | AA1234 |
| What is the MI? | MIDDLE_INITIAL | M |

Codul complet poate fi găsit în caietul de pe site-ul GitHub repo.

Card de asigurare

Funcția Interogări funcționează bine și cu carduri de asigurare precum următoarele.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Procesul de apelare a API-ului și a rezultatelor procesului este același ca cel prezentat mai devreme. Exemplul complet de cod este disponibil în blocnotesul de pe GitHub repo.

Următoarele sunt exemple de răspunsuri obținute folosind API:

|-------------------------------------|-----------------------------------|---------------|
| What is the insured name? | INSURANCE_CARD_NAME | Jacob Michael |
| What is the level of benefits? | INSURANCE_CARD_LEVEL_BENEFITS | SILVER |
| What is medical insurance provider? | INSURANCE_CARD_PROVIDER | Anthem |
| What is the OOP max? | INSURANCE_CARD_OOP_MAX | $6000/$12000 |
| What is the effective date? | INSURANCE_CARD_EFFECTIVE_DATE | 11/02/2021 |
| What is the office visit copay? | INSURANCE_CARD_OFFICE_VISIT_COPAY | $55/0% |
| What is the specialist visit copay? | INSURANCE_CARD_SPEC_VISIT_COPAY | $65/0% |
| What is the member id? | INSURANCE_CARD_MEMBER_ID | XZ 9147589652 |
| What is the plan type? | INSURANCE_CARD_PLAN_TYPE | Pathway X-EPO |
| What is the coinsurance amount? | INSURANCE_CARD_COINSURANCE | 30% |

Cele mai bune practici pentru elaborarea interogărilor

Când creați interogările, luați în considerare următoarele bune practici:

  • În general, puneți o întrebare în limbaj natural care începe cu „Ce este”, „Unde este” sau „Cine este”. Excepția este atunci când încercați să extrageți perechi cheie-valoare standard, caz în care puteți transmite numele cheii ca interogare.
  • Evitați întrebările prost formulate sau incorecte din punct de vedere gramatical, deoarece acestea pot duce la răspunsuri neașteptate. De exemplu, o interogare prost formată este „Când?” întrucât o întrebare bine formată este „Când a fost administrată prima doză de vaccin?”
  • Acolo unde este posibil, utilizați cuvinte din document pentru a construi interogarea. Deși funcția Interogări încearcă să facă potrivirea acronimelor și a sinonimelor pentru anumiți termeni obișnuiți din industrie, cum ar fi „SSN”, „ID fiscal” și „Număr de securitate socială”, utilizarea limbajului direct din document îmbunătățește rezultatele. De exemplu, dacă documentul spune „progresul locului de muncă”, încercați să evitați să utilizați variații precum „progresul proiectului”, „progresul programului” sau „starea jobului”.
  • Construiți o interogare care conține cuvinte atât din antetul rândului, cât și din antetul coloanei. De exemplu, în exemplul de card de vaccinare precedent, pentru a cunoaște data celei de-a doua vaccinări, puteți încadra interogarea ca „La ce dată a fost administrată a doua doză?”
  • Răspunsurile lungi cresc latența răspunsului și pot duce la expirări. Încercați să puneți întrebări care răspund cu răspunsuri mai mici de 100 de cuvinte.
  • Transmiterea numai a numelui cheie ca întrebare funcționează atunci când încercați să extrageți perechi standard cheie-valoare dintr-un formular. Vă recomandăm să încadrați întrebări complete pentru toate celelalte cazuri de utilizare a extracției.
  • Fii cât mai specific posibil. De exemplu:
    • Când documentul conține mai multe secțiuni (cum ar fi „Împrumutatul” și „Coîmprumutatul”) și ambele secțiuni au un câmp numit „SSN”, întrebați „Ce este SSN-ul pentru împrumutat?” și „Ce este SSN-ul pentru co-împrumutați?”
    • Când documentul are mai multe câmpuri legate de dată, fiți specific în limbajul de interogare și întrebați „Care este data la care a fost semnat documentul?” sau „Care este data nașterii cererii?” Evitați să puneți întrebări ambigue precum „Care este data?”
  • Dacă cunoașteți în prealabil aspectul documentului, oferiți indicii de locație pentru a îmbunătăți acuratețea rezultatelor. De exemplu, întrebați „Care este data de sus?” sau „Care este data din stânga?” sau „Care este data de jos?”

Pentru mai multe informații despre caracteristica Interogări, consultați Textul documentaţie.

Concluzie

În această postare, am oferit o prezentare generală a noii funcții de interogări a Amazon Texttract pentru a prelua rapid și ușor informații din documente precum talonele de plată, note de credit ipotecar, carduri de asigurare și carduri de vaccinare pe baza întrebărilor în limbaj natural. De asemenea, am descris cum puteți analiza răspunsul JSON.

Pentru mai multe informații, consultați Analizarea documentelor , sau verificați consola Amazon Texttract și încercați această funcție.


Despre Autori

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Uday Narayanan este arhitect senior de soluții la AWS. Îi place să ajute clienții să găsească soluții inovatoare la provocările complexe de afaceri. Domeniile sale principale de interes sunt analiza datelor, sistemele de date mari și învățarea automată. În timpul liber, îi place să facă sport, să se uite la emisiuni TV și să călătorească.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Rafael Caixeta este arhitect senior de soluții la AWS cu sediul în California. Are peste 10 ani de experiență în dezvoltarea de arhitecturi pentru cloud. Domeniile sale principale sunt serverless, containere și machine learning. În timpul liber, îi place să citească cărți de ficțiune și să călătorească prin lume.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai. Navneeth Nair este Senior Product Manager, Tehnic cu echipa Amazon Texttract. El se concentrează pe construirea de servicii bazate pe machine learning pentru clienții AWS.

Specificați și extrageți informații din documente folosind noua funcție Interogări din Amazon Texttract PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Martin Schade este Senior ML Product SA cu echipa Amazon Texttract. Are peste 20 de ani de experiență în tehnologii, soluții de inginerie și arhitectură legate de internet. S-a alăturat AWS în 2014, îndrumându-i mai întâi pe unii dintre cei mai mari clienți AWS cu privire la cea mai eficientă și scalabilă utilizare a serviciilor AWS, iar ulterior sa concentrat pe AI/ML, cu accent pe viziunea computerizată. În prezent, este obsedat de a extrage informații din documente.

Timestamp-ul:

Mai mult de la Învățare automată AWS