Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzione Query in Amazon Texttract

Testo Amazon è un servizio di machine learning (ML) che estrae automaticamente testo, grafia e dati da qualsiasi documento o immagine. Amazon Texttract ora offre la flessibilità per specificare i dati necessari per estrarre dai documenti utilizzando la nuova funzione Query all'interno dell'API Analyze Document. Non è necessario conoscere la struttura dei dati nel documento (tabella, modulo, campo implicito, dati nidificati) o preoccuparsi delle variazioni tra versioni e formati del documento.

In questo post, trattiamo i seguenti argomenti:

  • Storie di successo dei clienti AWS e vantaggi della nuova funzione Query
  • In che modo l'API Analyze Document Query aiuta a estrarre informazioni dai documenti
  • Una panoramica della console di Amazon Text
  • Esempi di codice per utilizzare l'API Analyze Document Query
  • Come elaborare la risposta con la libreria del parser di Amazon Text

Vantaggi della nuova funzione Query

Le soluzioni OCR tradizionali faticano a estrarre i dati in modo accurato dalla maggior parte dei documenti semistrutturati e non strutturati a causa delle variazioni significative nel modo in cui i dati sono disposti su più versioni e formati di questi documenti. È necessario implementare un codice di post-elaborazione personalizzato o rivedere manualmente le informazioni estratte da questi documenti. Con la funzione Query, puoi specificare le informazioni di cui hai bisogno sotto forma di domande in linguaggio naturale (ad esempio, "Qual è il nome del cliente") e ricevere le informazioni esatte ("John Doe") come parte della risposta API. La funzione utilizza una combinazione di modelli visivi, spaziali e linguistici per estrarre le informazioni che cerchi con elevata precisione. La funzione Query è pre-addestrata su un'ampia varietà di documenti semistrutturati e non strutturati. Alcuni esempi includono buste paga, estratti conto bancari, W-2, moduli di richiesta di prestito, note di mutuo e vaccini e tessere assicurative.

"Amazon Texttract ci consente di automatizzare le esigenze di elaborazione dei documenti dei nostri clienti. Con la funzione Query, saremo in grado di estrarre dati da una varietà di documenti con flessibilità e precisione ancora maggiori," ha affermato Robert Jansen, amministratore delegato di TekStream Solutions. "Consideriamo questo un grande vantaggio in termini di produttività per i nostri clienti aziendali, che potranno utilizzare la funzionalità Query come parte della nostra soluzione IDP per ottenere rapidamente le informazioni chiave dai loro documenti."

"Amazon Texttract ci consente di estrarre testo ed elementi strutturati come moduli e tabelle dalle immagini con elevata precisione. Amazon Textract Query ci ha aiutato a migliorare drasticamente la qualità dell'estrazione delle informazioni da diversi documenti business-critical come schede di sicurezza o specifiche dei materiali" ha detto Thorsten Warnecke, preside | Responsabile PC Analytics, Camelot Management Consultants. "Il sistema di query in linguaggio naturale offre grande flessibilità e precisione che ha ridotto il nostro carico di post-elaborazione e ci ha consentito di aggiungere più rapidamente nuovi documenti ai nostri strumenti di estrazione dei dati."

In che modo l'API Analyze Document Query aiuta a estrarre informazioni dai documenti

Le aziende hanno aumentato l'adozione di piattaforme digitali, soprattutto alla luce della pandemia di COVID-19. La maggior parte delle organizzazioni ora offre un modo digitale per acquisire i propri servizi e prodotti utilizzando smartphone e altri dispositivi mobili, il che offre flessibilità agli utenti ma aumenta anche la scala in cui i documenti digitali devono essere rivisti, elaborati e analizzati. In alcuni carichi di lavoro in cui, ad esempio, è necessario analizzare digitalmente documenti ipotecari, tessere vaccinazioni, buste paga, tessere assicurative e altri documenti, la complessità dell'estrazione dei dati può aggravarsi esponenzialmente perché questi documenti mancano di un formato standard o presentano variazioni significative nel formato dei dati in diverse versioni del documento.

Anche le potenti soluzioni OCR faticano a estrarre i dati in modo accurato da questi documenti e potrebbe essere necessario implementare la postelaborazione personalizzata per questi documenti. Ciò include la mappatura di possibili variazioni delle chiavi del modulo sui nomi dei campi nativi del cliente o l'inclusione dell'apprendimento automatico personalizzato per identificare informazioni specifiche in un documento non strutturato.

La nuova API Analyze Document Query in Amazon Textract può rispondere a domande scritte in linguaggio naturale come "Qual è il tasso di interesse?" ed eseguire potenti analisi AI e ML sul documento per capire le informazioni desiderate ed estrarle dal documento senza alcuna post-elaborazione. La funzionalità Query non richiede alcun addestramento del modello personalizzato o configurazione di modelli o configurazioni. Puoi iniziare rapidamente caricando i tuoi documenti e specificando domande su tali documenti tramite la console Amazon Textract, il Interfaccia della riga di comando di AWS (AWS CLI) o SDK AWS.

Nelle sezioni successive di questo post, esamineremo esempi dettagliati di come utilizzare questa nuova funzionalità su casi d'uso comuni del carico di lavoro e come utilizzare l'API Analyze Document Query per aggiungere agilità al processo di digitalizzazione del carico di lavoro.

Utilizza la funzione Query sulla console Amazon Texttract

Prima di iniziare con l'API e gli esempi di codice, esaminiamo la console Amazon Textract. L'immagine seguente mostra un esempio di scheda di vaccinazione sul Query scheda per l'API Analizza documento sulla console Amazon Texttract. Dopo aver caricato il documento sulla console Amazon Texttract, scegli Query nel Configura documento sezione. È quindi possibile aggiungere query sotto forma di domande in linguaggio naturale. Dopo aver aggiunto tutte le tue query, scegli Applica configurazione. Le risposte alle domande si trovano sul Query scheda.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Esempi di codice

In questa sezione, spieghiamo come richiamare l'API Analyze Document con il parametro Query per ottenere risposte a domande in linguaggio naturale sul documento. Il documento di input è in un formato array di byte o si trova in un Servizio di archiviazione semplice Amazon Secchio (Amazon S3). Passi i byte dell'immagine a un'operazione API Amazon Textract utilizzando la proprietà Bytes. Ad esempio, puoi usare il Bytes proprietà per passare un documento caricato da un file system locale. Byte di immagine passati utilizzando il file Bytes la proprietà deve essere codificata in base64. Il codice potrebbe non dover codificare i byte del file del documento se utilizzi un SDK AWS per chiamare le operazioni API di Amazon Textract. In alternativa, puoi passare le immagini archiviate in un bucket S3 a un'operazione API Amazon Textract utilizzando il file S3Object proprietà. I documenti archiviati in un bucket S3 non devono essere codificati in base64.

Puoi utilizzare la funzione Query per ottenere risposte da diversi tipi di documenti come buste paga, tessere di vaccinazione, documenti ipotecari, estratti conto bancari, moduli W-2, moduli 1099 e altri. Nelle sezioni seguenti esamineremo alcuni di questi documenti e mostreremo come funziona la funzione Query.

busta paga

In questo esempio, esaminiamo i passaggi per analizzare una busta paga utilizzando la funzione Query, come mostrato nell'immagine di esempio seguente.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Usiamo il seguente codice Python di esempio:

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" }] })

Il codice seguente è un comando AWS CLI di esempio:

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"}]}' 

Analizziamo la risposta che otteniamo per le due query che abbiamo passato all'API Analyze Document nell'esempio precedente. La seguente risposta è stata tagliata per mostrare solo le parti rilevanti:

{ "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 }

La risposta ha un BlockType of QUERY che mostra la domanda che è stata posta e a Relationships sezione che ha l'ID per il blocco che ha la risposta. La risposta è nel BlockType of QUERY_RESULT. L'alias passato come input all'API Analyze Document viene restituito come parte della risposta e può essere utilizzato per etichettare la risposta.

Usiamo il Parser risposta Amazon Textract per estrarre solo le domande, l'alias e le risposte corrispondenti a tali domande:

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"))

Il codice precedente restituisce i seguenti risultati:

|------------------------------------|-----------------------|-----------|
| 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 |

Altre domande e il codice completo possono essere trovati nel taccuino sul Repository GitHub.

Nota di mutuo

L'API Analyze Document Query funziona bene anche con note di mutuo come le seguenti.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il processo per chiamare l'API ed elaborare i risultati è lo stesso dell'esempio precedente. Puoi trovare l'esempio di codice completo su Repository GitHub.

Il codice seguente mostra le risposte di esempio ottenute utilizzando l'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 |

Tessera vaccinale

La funzione Amazon Texttract Query funziona molto bene anche per estrarre informazioni da schede di vaccinazione o schede simili, come nell'esempio seguente.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il processo per chiamare l'API e analizzare i risultati è lo stesso utilizzato per una busta paga. Dopo aver elaborato la risposta, otteniamo le seguenti informazioni:

|------------------------------------------------------------|--------------------------------------|--------------|
| 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 |

Il codice completo può essere trovato nel taccuino sul Repository GitHub.

Tessera dell'assicurazione

La funzione Query funziona bene anche con carte assicurative come le seguenti.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il processo per chiamare l'API ed elaborare i risultati è lo stesso mostrato in precedenza. L'esempio di codice completo è disponibile nel blocco appunti su Repository GitHub.

Di seguito sono riportate le risposte di esempio ottenute utilizzando l'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% |

Procedure consigliate per la creazione di query

Quando crei le tue query, considera le seguenti best practice:

  • In generale, poni una domanda in linguaggio naturale che inizi con "Cos'è", "Dov'è" o "Chi è". L'eccezione è quando si tenta di estrarre coppie chiave-valore standard, nel qual caso è possibile passare il nome della chiave come query.
  • Evita domande mal formate o grammaticalmente errate, perché potrebbero dare risposte inaspettate. Ad esempio, una query in formato errato è "Quando?" mentre una domanda ben formulata è "Quando è stata somministrata la prima dose di vaccino?"
  • Ove possibile, utilizzare le parole del documento per costruire la query. Sebbene la funzione Query tenti di fare corrispondere acronimi e sinonimi per alcuni termini comuni del settore come "SSN", "ID fiscale" e "Numero di previdenza sociale", l'utilizzo della lingua direttamente dal documento migliora i risultati. Ad esempio, se il documento dice "avanzamento del lavoro", cerca di evitare di utilizzare variazioni come "avanzamento del progetto", "avanzamento del programma" o "stato del lavoro".
  • Costruisci una query che contenga parole sia dall'intestazione di riga che dall'intestazione di colonna. Ad esempio, nell'esempio della scheda di vaccinazione precedente, per conoscere la data della seconda vaccinazione, è possibile inquadrare la domanda come "In quale data è stata somministrata la 2a dose?"
  • Le risposte lunghe aumentano la latenza della risposta e possono portare a timeout. Prova a porre domande che rispondono con meno di 100 parole.
  • Passando solo il nome della chiave mentre la domanda funziona quando si tenta di estrarre coppie chiave-valore standard da un modulo. Ti consigliamo di inquadrare domande complete per tutti gli altri casi d'uso di estrazione.
  • Essere il più specifici possibile. Per esempio:
    • Quando il documento contiene più sezioni (come "Mutuatario" e "Co-mutuatario") ed entrambe le sezioni hanno un campo chiamato "SSN", chiedi "Qual è il SSN per il mutuatario?" e "Qual è il SSN per il co-mutuatario?"
    • Quando il documento ha più campi relativi alla data, sii specifico nella lingua della query e chiedi "Qual è la data in cui è stato firmato il documento?" o "Qual è la data di nascita della domanda?" Evita di fare domande ambigue come "Qual è la data?"
  • Se conosci in anticipo il layout del documento, fornisci suggerimenti sulla posizione per migliorare la precisione dei risultati. Ad esempio, chiedi "Qual è la data in alto?" o "Qual è la data a sinistra?" o "Qual è la data in fondo?"

Per ulteriori informazioni sulla funzione Query, fare riferimento al Texttract documentazione.

Conclusione

In questo post, abbiamo fornito una panoramica della nuova funzione Query di Amazon Textract per recuperare rapidamente e facilmente informazioni da documenti come buste paga, note di mutuo, tessere assicurative e tessere di vaccinazione in base a domande in linguaggio naturale. Abbiamo anche descritto come analizzare la risposta JSON.

Per ulteriori informazioni, vedere Analisi dei documenti oppure controlla la console Amazon Textract e prova questa funzione.


Informazioni sugli autori

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Uday Narayan è Sr. Solutions Architect presso AWS. Gli piace aiutare i clienti a trovare soluzioni innovative per sfide aziendali complesse. Le sue principali aree di interesse sono l'analisi dei dati, i sistemi di big data e l'apprendimento automatico. Nel tempo libero gli piace fare sport, guardare programmi TV e viaggiare.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Raffaele Caixeta è Sr. Solutions Architect presso AWS con sede in California. Ha oltre 10 anni di esperienza nello sviluppo di architetture per il cloud. Le sue aree principali sono serverless, container e machine learning. Nel tempo libero ama leggere libri di narrativa e viaggiare per il mondo.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Navneeth Nair è Senior Product Manager, Technical con il team di Amazon Texttract. È concentrato sulla creazione di servizi basati sull'apprendimento automatico per i clienti AWS.

Specifica ed estrai informazioni dai documenti utilizzando la nuova funzionalità Query in Amazon Textract PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Martin Schade è una Senior ML Product SA con il team di Amazon Texttract. Ha oltre 20 anni di esperienza con tecnologie, soluzioni ingegneristiche e di architettura relative a Internet. È entrato in AWS nel 2014, prima guidando alcuni dei più grandi clienti AWS sull'uso più efficiente e scalabile dei servizi AWS, e successivamente si è concentrato su AI/ML con particolare attenzione alla visione artificiale. Attualmente è ossessionato dall'estrazione di informazioni dai documenti.

Timestamp:

Di più da Apprendimento automatico di AWS