Automatizza la preetichettatura dei PDF per Amazon Comprehend | Servizi Web di Amazon

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Servizi Web di Amazon

Amazon Comprehend è un servizio di elaborazione del linguaggio naturale (NLP) che fornisce API preaddestrate e personalizzate per ricavare informazioni dettagliate da dati testuali. I clienti di Amazon Comprehend possono addestrare modelli personalizzati di riconoscimento delle entità denominate (NER) per estrarre entità di interesse, come posizione, nome di persona e data, che sono univoche per la loro attività.

Per addestrare un modello personalizzato, prepara prima i dati di addestramento annotando manualmente le entità nei documenti. Questo può essere fatto con Comprendere lo strumento di annotazione dei documenti semi-strutturati, che crea an Amazon SageMaker verità fondamentale lavoro con un modello personalizzato, consentendo agli annotatori di disegnare riquadri di delimitazione attorno alle entità direttamente sui documenti PDF. Tuttavia, per le aziende che dispongono già di dati di entità tabulari in sistemi ERP come SAP, l'annotazione manuale può essere ripetitiva e richiedere molto tempo.

Per ridurre lo sforzo di preparazione dei dati di addestramento, abbiamo creato uno strumento di pre-etichettatura utilizzando Funzioni AWS Step che pre-annota automaticamente i documenti utilizzando i dati delle entità tabulari esistenti. Ciò riduce significativamente il lavoro manuale necessario per addestrare modelli accurati di riconoscimento delle entità personalizzate in Amazon Comprehend.

In questo post ti guideremo attraverso i passaggi di configurazione dello strumento di preetichettatura e mostreremo esempi di come annota automaticamente i documenti da un pubblico dataset di esempi di estratti conto in formato PDF. Il codice completo è disponibile su Repository GitHub.

Panoramica della soluzione

In questa sezione, discutiamo gli input e gli output dello strumento di preetichettatura e forniamo una panoramica dell'architettura della soluzione.

Ingressi e uscite

Come input, lo strumento di preetichettatura accetta documenti PDF che contengono testo da annotare. Per la demo, utilizziamo estratti conto simulati come nell'esempio seguente.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Lo strumento accetta anche un file manifest che mappa i documenti PDF con le entità che vogliamo estrarre da questi documenti. Le entità sono costituite da due cose: il expected_text estrarre dal documento (ad esempio, AnyCompany Bank) e il corrispondente entity_type (per esempio, bank_name). Più avanti in questo post, mostreremo come costruire questo file manifest da un documento CSV come nell'esempio seguente.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Lo strumento di preetichettatura utilizza il file manifest per annotare automaticamente i documenti con le entità corrispondenti. Possiamo quindi utilizzare queste annotazioni direttamente per addestrare un modello Amazon Comprehend.

In alternativa, puoi creare un lavoro di etichettatura SageMaker Ground Truth per la revisione e la modifica da parte di persone umane, come mostrato nello screenshot seguente.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Una volta completata la revisione, puoi utilizzare i dati annotati per addestrare un modello di riconoscimento di entità personalizzato Amazon Comprehend.

Architettura

Lo strumento di preetichettatura è costituito da più elementi AWS Lambda funzioni orchestrate da una macchina a stati Step Functions. Ha due versioni che utilizzano tecniche diverse per generare pre-annotazioni.

La prima tecnica è corrispondenza sfocata. Ciò richiede un file pre-manifesto con le entità previste. Lo strumento utilizza l'algoritmo di corrispondenza fuzzy per generare pre-annotazioni confrontando la somiglianza del testo.

La corrispondenza fuzzy cerca le stringhe nel documento che sono simili (ma non necessariamente identiche) alle entità previste elencate nel file pre-manifesto. Innanzitutto calcola i punteggi di somiglianza del testo tra il testo previsto e le parole nel documento, quindi abbina tutte le coppie al di sopra di una soglia. Pertanto, anche se non esistono corrispondenze esatte, la corrispondenza fuzzy può trovare varianti come abbreviazioni ed errori di ortografia. Ciò consente allo strumento di preetichettare i documenti senza richiedere che le entità appaiano parola per parola. Ad esempio, se 'AnyCompany Bank' è elencato come entità prevista, Fuzzy Matching annoterà le occorrenze di 'Any Companys Bank'. Ciò fornisce maggiore flessibilità rispetto alla corrispondenza rigorosa delle stringhe e consente allo strumento di preetichettatura di etichettare automaticamente più entità.

Il diagramma seguente illustra l'architettura di questa macchina a stati Step Functions.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

La seconda tecnica richiede a modello di riconoscimento entità Amazon Comprehend pre-addestrato. Lo strumento genera pre-annotazioni utilizzando il modello Amazon Comprehend, seguendo il flusso di lavoro mostrato nel diagramma seguente.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il diagramma seguente illustra l'architettura completa.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Nelle sezioni seguenti vengono illustrati i passaggi per implementare la soluzione.

Distribuire lo strumento di preetichettatura

Clona il repository sul tuo computer locale:

git clone https://github.com/aws-samples/amazon-comprehend-automated-pdf-prelabeling-tool.git

Questo repository è stato creato sulla base dello strumento di annotazione per documenti semi-strutturati Comprehend e ne estende le funzionalità consentendo di avviare un lavoro di etichettatura di SageMaker Ground Truth con pre-annotazioni già visualizzate nell'interfaccia utente di SageMaker Ground Truth.

Lo strumento di preetichettatura include sia le risorse dello strumento di annotazione per documenti semi-strutturati Comprehend sia alcune risorse specifiche dello strumento di preetichettatura. Puoi distribuire la soluzione con Modello di applicazione serverless AWS (AWS SAM), un framework open source che puoi utilizzare per definire il codice dell'infrastruttura applicativa serverless.

Se in precedenza è stato distribuito lo strumento di annotazione per documenti semi-strutturati, fare riferimento alla sezione Domande frequenti in Pre_labeling_tool/README.md per istruzioni su come distribuire solo le risorse specifiche dello strumento di preetichettatura.

Se non hai mai distribuito lo strumento in precedenza e stai iniziando da capo, procedi come segue per distribuire l'intera soluzione.

Cambia la directory corrente nella cartella dello strumento di annotazione:

cd amazon-comprehend-semi-structured-documents-annotation-tools

Costruisci e distribuisci la soluzione:

make ready-and-deploy-guided

Crea il file pre-manifesto

Prima di poter utilizzare lo strumento di preetichettatura, è necessario preparare i dati. Gli input principali sono documenti PDF e un file pre-manifest. Il file pre-manifesto contiene la posizione di ciascun documento PDF in 'pdf' e la posizione di un file JSON con le entità previste da etichettare 'expected_entities'.

Il notebook generate_premanifest_file.ipynb mostra come creare questo file. Nella demo, il file pre-manifest mostra il seguente codice:

[ { 'pdf': 's3://<bucket>/data_aws_idp_workshop_data/bank_stmt_0.pdf', 'expected_entities': 's3://<bucket>/prelabeling-inputs/expected-entities/example-demo/fuzzymatching_version/file_bank_stmt_0.json' }, ...
]

Ogni file JSON elencato nel file pre-manifest (sotto expected_entities) contiene un elenco di dizionari, uno per ciascuna entità prevista. I dizionari hanno i seguenti tasti:

  • 'testi_attesi' – Un elenco di possibili stringhe di testo che corrispondono all'entità.
  • 'tipo di entità' – Il tipo di entità corrispondente.
  • 'ignore_list' (facoltativo) – L'elenco delle parole che dovrebbero essere ignorate nella partita. Questi parametri dovrebbero essere utilizzati per evitare che la corrispondenza fuzzy corrisponda a combinazioni specifiche di parole che sai essere errate. Questo può essere utile se desideri ignorare alcuni numeri o indirizzi email quando guardi i nomi.

Ad esempio, al cotone biologico viene applicata l'etichetta expected_entities del PDF mostrato in precedenza è simile al seguente:

[ { 'expected_texts': ['AnyCompany Bank'], 'entity_type': 'bank_name', 'ignore_list': [] }, { 'expected_texts': ['JANE DOE'], 'entity_type': 'customer_name', 'ignore_list': ['JANE.DOE@example_mail.com'] }, { 'expected_texts': ['003884257406'], 'entity_type': 'checking_number', 'ignore_list': [] }, ...
]

Esegui lo strumento di preetichettatura

Con il file pre-manifesto creato nel passaggio precedente, inizia a eseguire lo strumento di pre-etichettatura. Per maggiori dettagli consultare il quaderno start_step_functions.ipynb.

Per avviare lo strumento di preetichettatura, fornire un file event con i seguenti tasti:

  • Premanifesto – Mappa ogni documento PDF al suo expected_entities file. Questo dovrebbe contenere il file Servizio di archiviazione semplice Amazon (Amazon S3) secchiello (sotto bucket) e la chiave (sotto key) del fascicolo.
  • Prefisso – Utilizzato per creare il file execution_id, che nomina la cartella S3 per l'archiviazione dell'output e il nome del lavoro di etichettatura SageMaker Ground Truth.
  • tipi_entità – Visualizzato nell'interfaccia utente per consentire agli annotatori di etichettare. Questi dovrebbero includere tutti i tipi di entità nei file delle entità previste.
  • nome_team_lavoro (facoltativo) – Utilizzato per creare il lavoro di etichettatura SageMaker Ground Truth. Corrisponde alla forza lavoro privata da utilizzare. Se non viene fornito, verrà creato solo un file manifest invece di un lavoro di etichettatura SageMaker Ground Truth. È possibile utilizzare il file manifest per creare un lavoro di etichettatura SageMaker Ground Truth in un secondo momento. Tieni presente che al momento della stesura di questo articolo non puoi fornire una forza lavoro esterna durante la creazione del lavoro di etichettatura dal notebook. Tuttavia, puoi clonare il lavoro creato e assegnarlo a una forza lavoro esterna sulla console SageMaker Ground Truth.
  • compren_parametri (facoltativo) – Parametri per addestrare direttamente un modello di riconoscimento di entità personalizzato Amazon Comprehend. Se omesso, questo passaggio verrà saltato.

Per avviare la macchina a stati, esegui il seguente codice Python:

import boto3
stepfunctions_client = boto3.client('stepfunctions')

response = stepfunctions_client.start_execution(
stateMachineArn=fuzzymatching_prelabeling_step_functions_arn,
input=json.dumps(<event-dict>)
)

Ciò avvierà una corsa della macchina a stati. Puoi monitorare l'avanzamento della macchina a stati sulla console Step Functions. Il seguente diagramma illustra il flusso di lavoro della macchina a stati.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Una volta completata la macchina a stati, procedere come segue:

  • Esamina i seguenti output salvati nel file prelabeling/ cartella del file comprehend-semi-structured-docs Benna S3:
    • File di annotazioni individuali per ciascuna pagina dei documenti (uno per pagina per documento) in formato temp_individual_manifests/
    • Un manifest per il lavoro di etichettatura di SageMaker Ground Truth in consolidated_manifest/consolidated_manifest.manifest
    • Un manifest che può essere utilizzato per addestrare un modello Amazon Comprehend personalizzato consolidated_manifest/consolidated_manifest_comprehend.manifest
  • Nella console SageMaker, apri il lavoro di etichettatura SageMaker Ground Truth creato per rivedere le annotazioni
  • Ispeziona e testa il modello Amazon Comprehend personalizzato che è stato addestrato

Come accennato in precedenza, lo strumento può creare solo lavori di etichettatura SageMaker Ground Truth per la forza lavoro privata. Per esternalizzare l'attività di etichettatura umana, puoi clonare il lavoro di etichettatura sulla console SageMaker Ground Truth e assegnare qualsiasi forza lavoro al nuovo lavoro.

ripulire

Per evitare di incorrere in costi aggiuntivi, elimina le risorse che hai creato ed elimina lo stack che hai distribuito con il comando seguente:

make delete

Conclusione

Lo strumento di preetichettatura fornisce alle aziende un modo efficace per utilizzare i dati tabulari esistenti per accelerare il processo di formazione di modelli di riconoscimento delle entità personalizzati in Amazon Comprehend. Pre-annotando automaticamente i documenti PDF, riduce significativamente lo sforzo manuale richiesto nel processo di etichettatura.

Lo strumento ha due versioni: corrispondenza fuzzy e basata su Amazon Comprehend, offrendo flessibilità su come generare le annotazioni iniziali. Dopo che i documenti sono stati preetichettati, puoi rivederli rapidamente in un lavoro di etichettatura di SageMaker Ground Truth o addirittura saltare la revisione e addestrare direttamente un modello personalizzato Amazon Comprehend.

Lo strumento di preetichettatura ti consente di sbloccare rapidamente il valore dei dati storici delle tue entità e di utilizzarli nella creazione di modelli personalizzati su misura per il tuo dominio specifico. Accelerando quella che in genere è la parte più laboriosa del processo, rende il riconoscimento delle entità personalizzate con Amazon Comprehend più accessibile che mai.

Per ulteriori informazioni su come etichettare i documenti PDF utilizzando un lavoro di etichettatura SageMaker Ground Truth, vedere Annotazione del documento personalizzata per l'estrazione di entità denominate nei documenti utilizzando Amazon Comprehend ed Usa Amazon SageMaker Ground Truth per etichettare i dati.


Circa gli autori

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Oskar Schnaack è uno scienziato applicato presso il Generative AI Innovation Center. La sua passione è immergersi nella scienza alla base dell'apprendimento automatico per renderlo accessibile ai clienti. Al di fuori del lavoro, Oskar ama andare in bicicletta e stare al passo con le tendenze della teoria dell'informazione.

Automatizza la preetichettatura dei PDF per Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Romain Besombes è un Deep Learning Architect presso il Generative AI Innovation Center. La sua passione è la creazione di architetture innovative per risolvere i problemi aziendali dei clienti con l'apprendimento automatico.

Timestamp:

Di più da Apprendimento automatico di AWS