Personalizza Amazon Textract con documenti specifici per l’attività utilizzando Query personalizzate

Personalizza Amazon Textract con query personalizzate per adattarsi ai documenti specifici dell'attività

Amazon Textract è un servizio di apprendimento automatico (ML) che estrae automaticamente testo, scrittura a mano e dati da documenti digitalizzati. Queries è una funzionalità che consente di estrarre informazioni specifiche da documenti complessi e variegati utilizzando il linguaggio naturale. Custom Queries offre un modo per personalizzare la funzionalità Queries per documenti non standard specifici del tuo business, come contratti di prestito auto, assegni e estratti conto, in modo self-service. Personalizzando la funzionalità per riconoscere i termini unici, le strutture e le informazioni chiave specifiche di questi tipi di documenti, puoi soddisfare le tue esigenze di elaborazione successive con maggiore precisione e minima intervento umano. Custom Queries è facile da integrare nel tuo flusso di lavoro esistente di Textract e continui a beneficiare delle funzionalità di elaborazione intelligente dei documenti completamente gestite di Amazon Textract senza dover investire in competenze di ML o gestione dell’infrastruttura.

In questo post, mostriamo come Custom Queries può estrarre con precisione i dati da assegni che sono documenti complessi e non standard. Inoltre, discutiamo dei vantaggi di Custom Queries e condividiamo le migliori pratiche per utilizzare efficacemente questa funzionalità.

Panoramica della soluzione

Quando si inizia con un nuovo caso d’uso, è possibile valutare le performance di Textract Queries sui propri documenti navigando alla console di Textract e utilizzando la Demo di Analisi del Documento o l’Uploader di Documenti in Blocco. Fare riferimento alle Best practices per le Queries per redigere query applicabili al tuo caso d’uso. Se si identificano errori nelle risposte delle query dovuti alla natura dei documenti aziendali, è possibile utilizzare Custom Queries per migliorare l’accuratezza. In poche ore, è possibile annotare i propri documenti di esempio utilizzando la console di gestione di AWS e addestrare un adattatore. Gli adattatori sono componenti che si collegano al modello di deep learning pre-addestrato di Amazon Textract, personalizzando la sua uscita in base ai documenti annotati. È possibile utilizzare l’adattatore per l’elaborazione passando l’identificativo dell’adattatore come parametro aggiuntivo alla richiesta API Analyze Document Queries.

Esaminiamo come Custom Queries può migliorare l’accuratezza dell’estrazione in uno scenario sfidante del mondo reale, come l’estrazione di dati dagli assegni. La sfida principale nella lavorazione degli assegni deriva dal loro alto grado di variazione in base al tipo (ad esempio, assegni personali o bancari), all’istituto finanziario e al paese (ad esempio, formato della linea MICR). Queste variazioni possono includere la posizione del nome del beneficiario, l’importo in cifre e in parole, la data e la firma. Riconoscere e adattarsi a queste variazioni può essere un compito complesso durante l’estrazione dei dati. Per migliorare l’estrazione dei dati, le organizzazioni spesso impiegano processi manuali di verifica e convalida, aumentando il costo e il tempo di elaborazione.

Custom Queries affronta queste sfide consentendoti di personalizzare le funzionalità Queries pre-addestrate sulle diverse variazioni degli assegni. La personalizzazione della funzionalità pre-addestrata ti aiuta a ottenere un’alta accuratezza di estrazione dei dati sulla varietà specifica di layout che elabori.

Nel nostro caso d’uso, un’istituzione finanziaria desidera estrarre i seguenti campi da un assegno: nome del beneficiario, nome del pagatore, numero di conto, numero di routing, importo del pagamento (in cifre), importo del pagamento (in parole), numero dell’assegno, data e memo.

Esploriamo il processo di generazione di un adattatore (componente che personalizza l’output) per la lavorazione degli assegni. Gli adattatori possono essere creati tramite la console o tramite API in modo programmato. Questo post dettaglia l’esperienza della console; tuttavia, se si desidera creare l’adattatore in modo programmato, fare riferimento agli esempi di codice nel notebook Jupyter custom-queries-checks-blog.ipynb (Opzione 2).

Il processo di generazione dell’adattatore coinvolge cinque passaggi di alto livello: creare un adattatore, caricare documenti di esempio, annotare i documenti, addestrare l’adattatore e valutare i metric.

Crea un adattatore

Nella console di Amazon Textract, crea un nuovo adattatore fornendo un nome, una descrizione e tag opzionali che possono aiutarti a identificare l’adattatore. Hai la possibilità di abilitare gli aggiornamenti automatici, che consentono ad Amazon Textract di aggiornare il tuo adattatore quando la funzione Sottoquery sottostante viene aggiornata con nuove funzionalità.

Dopo aver creato l’adattatore, vedrai una pagina dei dettagli dell’adattatore con un elenco di passaggi nella sezione Come funziona. Questa sezione attiverà i tuoi passaggi successivi man mano che li completi sequenzialmente.

Carica documenti di esempio

La fase iniziale nella generazione dell’adattatore comporta la selezione attenta di un appropriato set di documenti di esempio per l’annotazione, l’addestramento e il testing. Abbiamo l’opzione di dividere automaticamente i documenti in set di dati di test e addestramento; tuttavia, per questo processo, dividiamo manualmente il set di dati.

È importante notare che è possibile costruire un adattatore con solo cinque campioni di test e cinque campioni di addestramento, ma è essenziale assicurarsi che questo set di campioni sia vario e rappresentativo del carico di lavoro riscontrato in un ambiente di produzione.

Per questo tutorial, abbiamo selezionato dataset di controllo di esempio che puoi scaricare. Il nostro dataset include variazioni come assegni personali, assegni di cassa, assegni di stimolo e assegni incorporati nei cedolini di pagamento. Abbiamo incluso anche assegni scritti a mano e stampati; insieme a variazioni nei campi come la riga memo.

Annota i documenti di esempio

Come prossimo passo, annota i documenti di esempio associando le query alle loro risposte corrispondenti tramite la console. Puoi avviare l’annotazione tramite etichettatura automatica o manuale. L’etichettatura automatica utilizza le Sottoquery di Amazon Textract per etichettare in modo automatico il dataset. Consigliamo di utilizzare l’etichettatura automatica per accelerare il processo di annotazione.

Per questo caso di utilizzo di elaborazione degli assegni, utilizziamo le seguenti query. Se il tuo caso di utilizzo coinvolge altri tipi di documenti, consulta Best Practices for Queries per redigere query applicabili al tuo caso di utilizzo.

  • Chi è il beneficiario?
  • Qual è il numero dell’assegno?
  • Qual è l’indirizzo del beneficiario?
  • Qual è la data?
  • Qual è il numero di conto?
  • Qual è l’importo dell’assegno in parole?
  • Qual è il nome del conto/mittente?
  • Qual è l’importo in dollari?
  • Qual è il nome della banca/trattatario?
  • Qual è il numero di routing della banca?
  • Qual è la linea MICR?
  • Qual è la nota?

Quando il processo di etichettatura automatica è completo, hai la possibilità di visionare e apportare modifiche alle risposte fornite per ciascun documento. Scegli Inizia la revisione per controllare le annotazioni per ogni immagine.

Se la risposta a una query manca o è errata, puoi aggiungere o modificare la risposta sia disegnando un bounding box che inserendo manualmente la risposta.

Per accelerare la tua procedura guidata, abbiamo preannotato i campioni di controllo affinché tu possa copiarli nel tuo account AWS. Esegui il notebook Jupyter custom-queries-checks-blog.ipynb all’interno della libreria Amazon Textract code samples per aggiornare automaticamente le tue annotazioni.

Allenare l’adattatore

Dopo aver esaminato tutti i documenti di esempio per garantire l’accuratezza delle annotazioni, puoi iniziare il processo di addestramento dell’adattatore. Durante questa fase, devi designare una posizione di archiviazione dove l’adattatore verrà salvato. La durata del processo di addestramento varierà a seconda delle dimensioni del dataset utilizzato per l’addestramento. L’API di addestramento può anche essere invocata in modo programmatico se decidi di utilizzare un tool di annotazione a tua scelta e passare i file di input pertinenti all’API. Consulta Custom Queries per ulteriori dettagli.

Valutare le metriche delle prestazioni

Dopo che l’adattatore ha completato l’addestramento, puoi valutarne le prestazioni esaminando le metriche di valutazione come punteggio F1, precisione e richiamo. Puoi analizzare queste metriche in modo collettivo o su base per documento. Utilizzando il nostro dataset di controlli di esempio, vedrai l’incremento dell’accuratezza metrica (punteggio F1) dal 68% al 92% con l’adattatore addestrato.

Inoltre, puoi testare l’output dell’adattatore su nuovi documenti selezionando Prova adattatore.

Dopo la valutazione, puoi scegliere di migliorare le prestazioni dell’adattatore incorporando ulteriori documenti di esempio nel dataset di addestramento o rieseguendo l’annotazione dei documenti con punteggi inferiori alla tua soglia. Per rieseguire l’annotazione dei documenti, scegli Verifica documenti nella pagina dei dettagli dell’adattatore, seleziona il documento e scegli Revisiona annotazioni.

Testare l’adattatore in modo programmativo

Concluso con successo l’addestramento, puoi ora utilizzare l’adattatore nelle tue chiamate API di AnalyzeDocument. La richiesta API è simile alla richiesta API di Amazon Textract Queries, con l’aggiunta dell’oggetto AdaptersConfig.

Puoi eseguire il codice di esempio seguente oppure eseguirlo direttamente all’interno del notebook Jupyter custom-queries-checks-blog.ipynb. Il notebook di esempio fornisce anche il codice per confrontare i risultati tra Amazon Textract Queries e Amazon Textract Custom Queries.

Crea un oggetto AdaptersConfig con l’ID dell’adattatore e la versione dell’adattatore e opzionalmente includi le pagine a cui desideri applicare l’adattatore:

!python -m pip install amazon-textract-caller --upgrade!python -m pip install amazon-textract-response-parser –upgradeimport boto3from textractcaller.t_call import call_textract, Textract_Features, Query, QueriesConfig, Adapter, AdaptersConfigimport trp.trp2 as t2from tabulate import tabulate#Crea AdaptersConfigadapter1 = Adapter(adapter_id=”111111111”, version="1", pages=["*"])adapters_config = AdaptersConfig(adapters=[adapter1])

Crea un oggetto QueriesConfig con le query con cui hai addestrato l’adattatore e chiama l’API di Amazon Textract. Nota che puoi anche includere query addizionali su cui l’adattatore non è stato addestrato. Amazon Textract utilizzerà automaticamente la funzione Queries per queste domande e non Custom Queries, fornendoti così la flessibilità di utilizzare Custom Queries solo quando necessario.

# Crea QueriesConfigqueries = []queries.append(Query(text="Qual è il numero del controllo?", alias="CHECK_NUMBER", pages=["*"]))queries.append(Query(text="Qual è la data?", alias="DATE", pages=["*"]))queries.append(Query(text="Qual è l'importo del controllo in lettere?", alias="CHECK_AMOUNT_WORDS", pages=["*"]))queries.append(Query(text="Qual è l'importo in dollari?", alias="DOLLAR_AMOUNT", pages=["*"]))queries.append(Query(text="Chi è il beneficiario?", alias="PAYEE_NAME", pages=["*"]))queries.append(Query(text="Qual è il numero di conto cliente?", alias="ACCOUNT_NUMBER", pages=["*"]))queries.append(Query(text="Qual è l'indirizzo del beneficiario?", alias="PAYEE_ADDRESS", pages=["*"]))queries.append(Query(text="Qual è il numero di routing bancario?", alias="BANK_ROUTING_NUMBER", pages=["*"]))queries.append(Query(text="Qual è la nota", alias="MEMO", pages=["*"]))queries.append(Query(text="Qual è il nome del conto/pagatore/rimettente?", alias="ACCOUNT_NAME", pages=["*"]))queries.append(Query(text="Qual è il nome della banca/traggente?", alias="BANK_NAME", pages=["*"]))queries_config = QueriesConfig(queries=queries)document_name = "<image_name>"textract_json_with_adapter = call_textract(input_document=document_name,                  boto3_textract_client=textract_client,                  features=[Textract_Features.QUERIES],                  queries_config=queries_config,                  adapters_config=adapters_config)

Infine, tabuliamo i nostri risultati per una migliore leggibilità:

def tabulate_query_answers(textract_json):    d = t2.TDocumentSchema().load(textract_json)    for page in d.pages:        query_answers = d.get_query_answers(page=page)        print(tabulate(query_answers, tablefmt="github"))tabulate_query_answers(textract_json_with_adapter)

Pulizia

Per pulire le risorse, segui i passaggi seguenti:

  1. Sulla console di Amazon Textract, scegli Custom Queries nel riquadro di navigazione.
  2. Seleziona l’adattatore che desideri eliminare.
  3. Scegli Elimina.

Gestione dell’adattatore

Puoi migliorare regolarmente i tuoi adattatori creando nuove versioni di un adattatore precedentemente generato. Per creare una nuova versione di un adattatore, aggiungi nuovi documenti di esempio a un adattatore esistente, etichetta i documenti e esegui l’addestramento. Puoi mantenere contemporaneamente più versioni di un adattatore per l’uso nei tuoi flussi di sviluppo. Per aggiornare i tuoi adattatori in modo trasparente, non apportare modifiche o cancellare il tuo Amazon Simple Storage Service (Amazon S3) bucket in cui sono salvati i file necessari per la generazione dell’adattatore.

Pratiche consigliate

Quando si utilizzano Query personalizzate sui propri documenti, fare riferimento alle pratiche consigliate per le Query personalizzate di Amazon Textract per ulteriori considerazioni e pratiche consigliate.

Benefici delle Query personalizzate

Le Query personalizzate offrono i seguenti vantaggi:

  • Miglior comprensione dei documenti – Grazie alla sua capacità di estrarre e normalizzare i dati con elevata precisione, le Query personalizzate riducono la dipendenza dalle revisioni manuali e le verifiche e consentono di creare automazioni più affidabili per i flussi di lavoro di elaborazione intelligente dei documenti.
  • Maggiore rapidità nel raggiungere il valore – Quando si incontrano nuovi tipi di documenti in cui è necessaria una maggiore precisione, è possibile utilizzare le Query personalizzate per generare un adattatore in modo autonomo in poche ore. Non è necessario attendere un aggiornamento del modello preaddestrato quando si incontrano nuovi tipi di documenti o varianti di quelli esistenti nel proprio flusso di lavoro. Si ha il completo controllo del proprio pipeline e non è necessario dipendere da Amazon Textract per supportare i nuovi tipi di documenti.
  • Privacy dei dati – Le Query personalizzate non conservano né utilizzano i dati utilizzati per generare adattatori per migliorare i nostri modelli preaddestrati generali disponibili per tutti i clienti. L’adattatore è limitato all’account del cliente o ad altri account espressamente designati dal cliente, garantendo che solo tali account possano accedere ai miglioramenti ottenuti utilizzando i dati del cliente.
  • Comodità – Le Query personalizzate offrono un’esperienza di inferenza completamente gestita simile alle Query. L’addestramento dell’adattatore è gratuito e si pagherà solo per l’inferenza. Le Query personalizzate permettono di risparmiare sugli oneri e le spese di addestramento e gestione dei modelli personalizzati.

Conclusione

In questo post, abbiamo discusso dei benefici delle Query personalizzate, mostrato come le Query personalizzate possano estrarre accuratamente i dati dai controlli e condiviso le pratiche consigliate per utilizzare efficacemente questa funzionalità. In poche ore, è possibile creare un adattatore utilizzando la console e utilizzarlo nell’API AnalyzeDocument per le proprie esigenze di estrazione dati. Per ulteriori informazioni, fare riferimento a Query personalizzate.