Estrai automaticamente i contenuti dai file PDF utilizzando Amazon Textract - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Estrai automaticamente i contenuti dai file PDF utilizzando Amazon Textract

Creato da Tianxia Jia (AWS)

Ambiente: produzione

Tecnologie: apprendimento automatico e intelligenza artificiale; analisi; Big data

Servizi AWS: Amazon S3; Amazon Textract; Amazon SageMaker

Riepilogo

Molte organizzazioni devono estrarre informazioni dai file PDF caricati nelle loro applicazioni aziendali. Ad esempio, un'organizzazione potrebbe aver bisogno di estrarre con precisione le informazioni dai file PDF fiscali o medici per l'analisi fiscale o l'elaborazione delle richieste mediche.

Sul cloud Amazon Web Services (AWS), Amazon Textract estrae automaticamente le informazioni (ad esempio testo stampato, moduli e tabelle) dai file PDF e produce un file in formato JSON che contiene informazioni dal file PDF originale. Puoi utilizzare Amazon Textract nella Console di gestione AWS o implementando chiamate API. Ti consigliamo di utilizzare chiamate API programmatiche per scalare ed elaborare automaticamente un gran numero di file PDF.

Quando Amazon Textract elabora un file, crea il seguente elenco di Block oggetti: pagine, righe e parole di testo, moduli (coppie chiave-valore), tabelle e celle ed elementi di selezione. Sono incluse anche altre informazioni sugli oggetti, ad esempio riquadri di delimitazione, intervalli di confidenza, ID e relazioni. Amazon Textract estrae le informazioni sul contenuto sotto forma di stringhe. I valori dei dati correttamente identificati e trasformati sono necessari perché possono essere utilizzati più facilmente dalle applicazioni downstream. 

Questo modello descrive un step-by-step flusso di lavoro per l'utilizzo di Amazon Textract per estrarre automaticamente il contenuto dai file PDF ed elaborarlo in un output pulito. Il modello utilizza una tecnica di abbinamento dei modelli per identificare correttamente il campo, il nome chiave e le tabelle richiesti, quindi applica le correzioni post-elaborazione a ciascun tipo di dati. È possibile utilizzare questo modello per elaborare diversi tipi di file PDF e quindi ridimensionare e automatizzare questo flusso di lavoro per elaborare file PDF con un formato identico.   

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • Un bucket Amazon Simple Storage Service (Amazon S3) esistente per archiviare i file PDF dopo la conversione in formato JPEG per l'elaborazione da parte di Amazon Textract. Per ulteriori informazioni sui bucket S3, consulta la panoramica dei bucket nella documentazione di Amazon S3.

  • Il notebook Textract_PostProcessing.ipynb Jupyter (allegato), installato e configurato. Per ulteriori informazioni sui notebook Jupyter, consulta Creare un notebook Jupyter nella documentazione di Amazon. SageMaker

  • File PDF esistenti con un formato identico.

  • Una comprensione di Python.

Limitazioni

Architettura

Il flusso di lavoro di questo pattern esegue prima Amazon Textract su un file PDF di esempio (prima esecuzione) e poi lo esegue su file PDF con un formato identico al primo PDF (esecuzione ripetuta). Il diagramma seguente mostra il flusso di lavoro combinato First-time run e Repeat run che estrae automaticamente e ripetutamente il contenuto da file PDF con formati identici.

Utilizzo di Amazon Textract per estrarre contenuti da file PDF

Il diagramma mostra il seguente flusso di lavoro per questo modello:

  1. Converti un file PDF in formato JPEG e archivialo in un bucket S3. 

  2. Chiama l'API Amazon Textract e analizza il file JSON di risposta Amazon Textract. 

  3. Modifica il file JSON aggiungendo la KeyName:DataType coppia corretta per ogni campo obbligatorio. Crea un TemplateJSON file per la fase Repeat run.

  4. Definite le funzioni di correzione post-elaborazione per ogni tipo di dati (ad esempio, float, integer e date).

  5. Prepara i file PDF con un formato identico al tuo primo file PDF.

  6. Chiama l'API Amazon Textract e analizza il codice JSON di risposta Amazon Textract.

  7. Abbina il file JSON analizzato al file. TemplateJSON

  8. Implementa le correzioni successive all'elaborazione.

Il file di output JSON finale contiene i campi corretti KeyName e Value per ogni campo obbligatorio.

Stack tecnologico Target

  • Amazon SageMaker 

  • Amazon S3 

  • Amazon Textract

Automazione e scalabilità

Puoi automatizzare il flusso di lavoro Repeat run utilizzando una funzione AWS Lambda che avvia Amazon Textract quando viene aggiunto un nuovo file PDF ad Amazon S3. Amazon Textract esegue quindi gli script di elaborazione e l'output finale può essere salvato in una posizione di archiviazione. Per ulteriori informazioni su questo argomento, consulta Usare un trigger di Amazon S3 per richiamare una funzione Lambda nella documentazione Lambda.

Strumenti

  • Amazon SageMaker è un servizio di machine learning completamente gestito che ti aiuta a creare e addestrare modelli di machine learning in modo rapido e semplice, per poi distribuirli direttamente in un ambiente ospitato pronto per la produzione.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • Amazon Textract semplifica l'aggiunta del rilevamento e dell'analisi del testo dei documenti alle tue applicazioni.

Epiche

AttivitàDescrizioneCompetenze richieste

Convertire il file PDF.

Prepara il file PDF per la prima esecuzione suddividendolo in un'unica pagina e convertendolo in formato JPEG per il funzionamento sincrono di Amazon Textract (). Syn API

Nota: puoi anche utilizzare l'operazione asincrona di Amazon Textract (Asyn API) per file PDF multipagina.

Scienziato dei dati, sviluppatore

Analizza il codice JSON della risposta Amazon Textract.

Apri il notebook Textract_PostProcessing.ipynb Jupyter (allegato) e richiama l'API Amazon Textract utilizzando il seguente codice:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])

Analizza la risposta JSON in un modulo e in una tabella utilizzando il codice seguente:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
Scienziato dei dati, sviluppatore

Modifica il file TemplateJSON.

Modifica il codice JSON analizzato per tutte le intestazioni di tabella corrispondenti DataType (ad esempio, string, float, integer o date) KeyName e per le relative intestazioni di tabella (ad esempio e). ColumnNames RowNames

Questo modello viene utilizzato per ogni singolo tipo di file PDF, il che significa che può essere riutilizzato per file PDF con un formato identico.

Scienziato dei dati, sviluppatore

Definire le funzioni di correzione post-elaborazione.

I valori nella risposta di Amazon Textract per il TemplateJSON file sono stringhe. Non vi è alcuna differenziazione per data, float, numero intero o valuta. Questi valori devono essere convertiti nel tipo di dati corretto per il caso d'uso a valle. 

Correggi ogni tipo di dati in base al TemplateJSON file utilizzando il codice seguente:

finalJSON=postprocessingCorrection(parsedJSON,templateJSON)
Scienziato dei dati, sviluppatore
AttivitàDescrizioneCompetenze richieste

Prepara i file PDF.

Prepara i file PDF dividendoli in un'unica pagina e convertendoli in formato JPEG per il funzionamento sincrono di Amazon Textract (). Syn API

Nota: puoi anche utilizzare l'operazione asincrona di Amazon Textract (Asyn API) per file PDF multipagina.

Scienziato dei dati, sviluppatore

Chiama l'API Amazon Textract.

Chiama l'API Amazon Textract utilizzando il codice seguente:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])
Scienziato dei dati, sviluppatore

Analizza il codice JSON della risposta Amazon Textract.

Analizza la risposta JSON in un modulo e in una tabella utilizzando il codice seguente:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
Scienziato dei dati, sviluppatore

Carica il file TemplateJSON e abbinalo al JSON analizzato.

Utilizzate il TemplateJSON file per estrarre le coppie chiave-valore corrette e la tabella utilizzando i seguenti comandi:

form_kv_corrected=form_kv_correction(parseformKV,templateJSON) form_table_corrected=form_Table_correction(parseformTables, templateJSON) form_kv_table_corrected_final={**form_kv_corrected , **form_table_corrected}
Scienziato dei dati, sviluppatore

Correzioni successive all'elaborazione.

Utilizza DataType le funzioni di TemplateJSON file e post-elaborazione per correggere i dati utilizzando il codice seguente: 

finalJSON=postprocessingCorrection(form_kv_table_corrected_final,templateJSON)
Scienziato dei dati, sviluppatore

Risorse correlate

Allegati

Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip