Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Elaborazione intelligente dei documenti con i servizi di intelligenza artificiale di AWS: parte 2

L'elaborazione intelligente dei documenti (IDP) di Amazon ti aiuta ad accelerare i cicli decisionali aziendali e a ridurre i costi. In più settori, i clienti devono elaborare milioni di documenti all'anno nel corso della loro attività. Per i clienti che elaborano milioni di documenti, questo è un aspetto critico per l'esperienza dell'utente finale e una priorità assoluta della trasformazione digitale. A causa dei vari formati, la maggior parte delle aziende elabora manualmente documenti come W2, reclami, documenti di identità, fatture e contratti legali, oppure utilizza soluzioni OCR (riconoscimento ottico dei caratteri) legacy che richiedono tempo, sono soggette a errori e sono costose. Una pipeline IDP con i servizi di intelligenza artificiale di AWS ti consente di andare oltre l'OCR con un'estrazione di informazioni più accurata e versatile, elaborare i documenti più velocemente, risparmiare denaro e spostare le risorse verso attività di valore superiore.

In questa serie viene fornita una panoramica della pipeline IDP per ridurre il tempo e lo sforzo necessari per acquisire un documento e ottenere le informazioni chiave nei sistemi a valle. La figura seguente mostra le fasi che in genere fanno parte di un flusso di lavoro IDP.

In questa serie in due parti, discutiamo di come automatizzare ed elaborare in modo intelligente documenti su larga scala utilizzando i servizi di intelligenza artificiale di AWS. In parte 1, abbiamo discusso le prime tre fasi del flusso di lavoro IDP. In questo post, discutiamo le restanti fasi del flusso di lavoro.

Panoramica della soluzione

La seguente architettura di riferimento mostra come utilizzare i servizi di intelligenza artificiale di AWS come Testo Amazon ed Amazon Comprehend, insieme ad altri servizi AWS per implementare il flusso di lavoro IDP. Nella parte 1, abbiamo descritto le fasi di acquisizione dei dati e classificazione dei documenti, in cui abbiamo classificato e contrassegnato documenti come estratti conto, fatture e documenti di ricevuta. Abbiamo anche discusso della fase di estrazione, in cui puoi estrarre informazioni aziendali significative dai tuoi documenti. In questo post, estendiamo la pipeline IDP esaminando Amazon Comprehend entità predefinite e personalizzate nella fase di estrazione, eseguiamo l'arricchimento dei documenti e esaminiamo brevemente anche le capacità di AI aumentata di Amazon (Amazon A2I) per includere una forza lavoro di revisione umana nella fase di revisione e convalida.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Usiamo anche Amazon comprende medica come parte di questa soluzione, che è un servizio per estrarre informazioni da testi medici non strutturati in modo accurato e rapido e identificare le relazioni tra le informazioni sanitarie estratte e collegarsi a ontologie mediche come ICD-10-CM, RxNorm e SNOMED CT.

Amazon A2I è un servizio di machine learning (ML) che semplifica la creazione dei flussi di lavoro necessari per la revisione umana. Amazon A2I offre la revisione umana a tutti gli sviluppatori, eliminando il peso indifferenziato associato alla creazione di sistemi di revisione umana o alla gestione di un gran numero di revisori umani, indipendentemente dal fatto che venga eseguito su AWS o meno. Amazon A2I si integra con Testo Amazon ed Amazon Comprehend per darti la possibilità di introdurre passaggi di revisione umana all'interno del tuo flusso di lavoro IDP.

Prerequisiti

Prima di iniziare, fare riferimento a parte 1 per una panoramica di alto livello dell'IDP e dettagli sulle fasi di acquisizione, classificazione ed estrazione dei dati.

Fase di estrazione

Nella parte 1 di questa serie, abbiamo discusso di come utilizzare le funzionalità di Amazon Textract per un'estrazione accurata dei dati per qualsiasi tipo di documento. Per estendere questa fase, utilizziamo entità pre-addestrate Amazon Comprehend e un riconoscitore di entità personalizzato Amazon Comprehend per un'ulteriore estrazione di documenti. Lo scopo del riconoscimento di entità personalizzato è identificare entità specifiche e generare metadati personalizzati relativi ai nostri documenti in formato CSV o leggibile dall'uomo per essere successivamente analizzati dagli utenti aziendali.

Riconoscimento dell'entità denominata

NamedEntity Recognition (NER) è una sottoattività di elaborazione del linguaggio naturale (NLP) che consiste nel setacciare i dati di testo per individuare le frasi nominali, chiamate entità denominate, e classificare ciascuna con un'etichetta, come marca, data, evento, posizione, organizzazioni , persona, quantità o titolo. Ad esempio, nella dichiarazione "Mi sono abbonato di recente ad Amazon Prime", Amazon Prime è l'entità denominata e può essere classificato come un marchio.

Amazon Comprehend ti consente di rilevare tali entità personalizzate nel tuo documento. Ogni entità ha anche un punteggio del livello di confidenza che Amazon Comprehend restituisce per ogni tipo di entità. Il diagramma seguente illustra il processo di riconoscimento dell'entità.

Riconoscimento di entità nominative con Amazon Comprehend

Per ottenere entità dal documento di testo, chiamiamo il comprehend.detect_entities() metodo e configurare il codice della lingua e il testo come parametri di input:

def get_entities(text):
    try:
        #detect entities
        entities = comprehend.detect_entities(LanguageCode="en", Text=text)  
        df = pd.DataFrame(entities["Entities"], columns = ['Text', 'Type'])
        display(HTML(df.to_html(index=False)))
    except Exception as e:
        print(e)

Corriamo il get_entities() metodo sul documento bancario e ottenere l'elenco delle entità nei risultati.

Risposta dal metodo get_entities di Comprehend.

Sebbene l'estrazione di entità abbia funzionato abbastanza bene nell'identificare i tipi di entità predefiniti per tutto nel documento bancario, vogliamo che le entità specifiche siano riconosciute per il nostro caso d'uso. Nello specifico, dobbiamo identificare nell'estratto conto i numeri di conto corrente e di risparmio del cliente. Possiamo estrarre questi termini aziendali chiave utilizzando il riconoscimento di entità personalizzate di Amazon Comprehend.

Addestrare un modello di riconoscimento entità personalizzato Amazon Comprehend

Per rilevare le entità specifiche che ci interessano dall'estratto conto del cliente, formiamo un riconoscitore di entità personalizzato con due entità personalizzate: SAVINGS_AC ed CHECKING_AC.

Quindi formiamo un modello di riconoscimento delle entità personalizzato. Possiamo scegliere uno dei due modi per fornire dati ad Amazon Comprehend: annotazioni o elenchi di entità.

Il metodo delle annotazioni può spesso portare a risultati più raffinati per file di immagine, PDF o documenti Word perché si addestra un modello inviando un contesto più accurato come annotazioni insieme ai documenti. Tuttavia, il metodo delle annotazioni può richiedere molto tempo e lavoro. Per semplicità di questo post del blog, utilizziamo il metodo degli elenchi di entità, che puoi utilizzare solo per documenti di testo normale. Questo metodo fornisce un file CSV che dovrebbe contenere il testo normale e il tipo di entità corrispondente, come mostrato nell'esempio precedente. Le entità in questo file saranno specifiche per le nostre esigenze aziendali (risparmio e numeri di conto corrente).

Per maggiori dettagli su come preparare i dati di addestramento per diversi casi d'uso utilizzando annotazioni o metodi di elenchi di entità, fare riferimento a Preparazione dei dati di allenamento.

Lo screenshot seguente mostra un esempio del nostro elenco di entità.

Un'istantanea dell'elenco di entità.

Crea un endpoint NER in tempo reale personalizzato Amazon Comprehend

Successivamente, creiamo un endpoint in tempo reale di riconoscimento di entità personalizzato utilizzando il modello che abbiamo addestrato. Noi usiamo il CreaEndpoint API tramite il comprehend.create_endpoint() metodo per creare l'endpoint in tempo reale:

#create comprehend endpoint
model_arn = entity_recognizer_arn
ep_name = 'idp-er-endpoint'

try:
    endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ER_ENDPOINT_ARN=endpoint_response['EndpointArn']
    print(f'Endpoint created with ARN: {ER_ENDPOINT_ARN}')
    %store ER_ENDPOINT_ARN
except Exception as error:
    if error.response['Error']['Code'] == 'ResourceInUseException':
        print(f'An endpoint with the name "{ep_name}" already exists.')
        ER_ENDPOINT_ARN = f'arn:aws:comprehend:{region}:{account_id}:entity-recognizer-endpoint/{ep_name}'
        print(f'The classifier endpoint ARN is: "{ER_ENDPOINT_ARN}"')
        %store ER_ENDPOINT_ARN
    else:
        print(error)

Dopo aver addestrato un riconoscitore di entità personalizzato, utilizziamo l'endpoint in tempo reale personalizzato per estrarre alcune informazioni arricchite dal documento e quindi eseguire la redazione del documento con l'aiuto delle entità personalizzate riconosciute da Amazon Comprehend e le informazioni sul riquadro di delimitazione da Amazon Textract.

Fase di arricchimento

Nella fase di arricchimento del documento, possiamo eseguire l'arricchimento del documento redigendo i dati delle informazioni di identificazione personale (PII), l'estrazione di termini aziendali personalizzati e così via. Il nostro precedente documento di esempio (un estratto conto bancario) contiene i numeri di conto corrente e di risparmio dei clienti, che vogliamo oscurare. Poiché conosciamo già queste entità personalizzate tramite il nostro modello NER personalizzato Amazon Comprehend, possiamo facilmente utilizzare il tipo di dati della geometria Amazon Textract per redigere queste entità PII ovunque appaiano nel documento. Nella seguente architettura, eliminiamo i termini aziendali chiave (risparmio e conti correnti) dal documento dell'estratto conto.

Fase di arricchimento documentale.

Come puoi vedere nell'esempio seguente, i numeri di conto corrente e di risparmio sono ora nascosti nell'estratto conto.

Esempio di estratto conto redatto.

Le soluzioni OCR tradizionali faticano a estrarre i dati in modo accurato dalla maggior parte dei documenti non strutturati e semi-strutturati a causa delle variazioni significative nel modo in cui i dati sono disposti su più versioni e formati di questi documenti. Potrebbe quindi essere necessario implementare una logica di preelaborazione personalizzata o anche estrarre manualmente le informazioni da questi documenti. In questo caso, la pipeline IDP supporta due funzionalità che puoi utilizzare: Amazon Comprehend query NER personalizzate e Amazon Textract. Entrambi questi servizi utilizzano la NLP per estrarre informazioni dettagliate sul contenuto dei documenti.

Estrazione con query Amazon Texttract

Quando elabori un documento con Amazon Textract, puoi aggiungere la nuova funzione di query alla tua analisi per specificare le informazioni di cui hai bisogno. Ciò comporta il passaggio di una domanda NLP, ad esempio "Qual è il numero di previdenza sociale del cliente?" ad Amazon Texttract. Amazon Texttract trova le informazioni nel documento per quella domanda e le restituisce in una struttura di risposta separata dal resto delle informazioni del documento. Le query possono essere elaborate da sole o in combinazione con qualsiasi altra FeatureType, come Tables or Forms.

Estrazione basata su query utilizzando Amazon Texttract.

Con le query Amazon Textract, puoi estrarre informazioni con elevata precisione indipendentemente dal modo in cui i dati sono disposti nella struttura di un documento, come moduli, tabelle e caselle di controllo, o ospitati all'interno di sezioni nidificate in un documento.

Per dimostrare la funzionalità delle query, estraiamo informazioni preziose come il nome e il cognome del paziente, il produttore del dosaggio e così via da documenti come una scheda di vaccinazione COVID-19.

Un esempio di tessera di vaccinazione.

Usiamo il textract.analyze_document() funzione e specificare il FeatureType as QUERIES oltre ad aggiungere le query sotto forma di domande in linguaggio naturale nel file QueriesConfig.

Il codice seguente è stato ridotto per motivi di semplificazione. Per il codice completo, fare riferimento a GitHub Codice d'esempio per analyze_document().

response = None
with open(image_filename, 'rb') as document:
    imageBytes = bytearray(document.read())

# Call Textract
response = textract.analyze_document(
    Document={'Bytes': imageBytes},
    FeatureTypes=["QUERIES"],
    QueriesConfig={
            "Queries": [{
                "Text": "What is the date for the 1st dose covid-19?",
                "Alias": "COVID_VACCINATION_FIRST_DOSE_DATE"
            },
# code trimmed down for simplification
#..
]
}) 

Per la funzione query, il textract.analyze_document() La funzione restituisce tutte le PAROLE e le LINEE OCR, le informazioni sulla geometria e i punteggi di affidabilità nel JSON di risposta. Tuttavia, possiamo semplicemente stampare le informazioni per le quali abbiamo richiesto.

Document è una funzione wrapper utilizzata per analizzare la risposta JSON dall'API. Fornisce un'astrazione di alto livello e rende l'output dell'API iterabile e da cui è facile ottenere informazioni. Per ulteriori informazioni, fare riferimento al Analizzatore di risposta del testo ed Texttractor repository GitHub. Dopo aver elaborato la risposta, otteniamo le seguenti informazioni come mostrato nello screenshot.

import trp.trp2 as t2
from tabulate import tabulate

d = t2.TDocumentSchema().load(response)
page = d.pages[0]

query_answers = d.get_query_answers(page=page)

print(tabulate(query_answers, tablefmt="github"))

Risposta dall'estrazione delle query.

Fase di revisione e validazione

Questa è la fase finale della nostra pipeline IDP. In questa fase, possiamo utilizzare le nostre regole aziendali per verificare la completezza di un documento. Ad esempio, da un documento di sinistro assicurativo, l'ID sinistro viene estratto in modo accurato e corretto. Possiamo utilizzare le tecnologie serverless di AWS come AWS Lambda per un'ulteriore automazione di queste regole aziendali. Inoltre, possiamo includere una forza lavoro umana per le revisioni dei documenti per garantire che le previsioni siano accurate. Amazon A2I accelera i flussi di lavoro di costruzione necessari per la revisione umana per le previsioni di ML.

Con Amazon A2I, puoi consentire ai revisori umani di intervenire quando un modello non è in grado di effettuare una previsione ad alta affidabilità o di verificarne le previsioni su base continuativa. L'obiettivo della pipeline IDP è ridurre la quantità di input umano necessaria per ottenere informazioni accurate nei sistemi decisionali. Con IDP, puoi ridurre la quantità di input umano per i tuoi processi documentali, nonché il costo totale dell'elaborazione dei documenti.

Dopo aver ottenuto tutte le informazioni accurate estratte dai documenti, puoi aggiungere ulteriori regole specifiche per l'azienda utilizzando le funzioni Lambda e infine integrare la soluzione con database o applicazioni a valle.

Fase di revisione e verifica umana.

Per ulteriori informazioni su come creare un flusso di lavoro Amazon A2I, segui le istruzioni di Preparativi per il modulo 4 passo alla fine del 03-idp-document-enrichment.ipynb nel nostro Repository GitHub.

ripulire

Per evitare di incorrere in futuri addebiti sul tuo account AWS, elimina le risorse di cui abbiamo eseguito il provisioning nella configurazione del repository navigando su Sezione pulizia nel nostro repository.

Conclusione

In questo post in due parti, abbiamo visto come creare una pipeline IDP end-to-end con poca o nessuna esperienza di machine learning. Abbiamo discusso le varie fasi della pipeline e una soluzione pratica con i servizi di intelligenza artificiale di AWS come Amazon Textract, Amazon Comprehend, Amazon Comprehend Medical e Amazon A2I per la progettazione e la creazione di casi d'uso specifici del settore. Nel primo post della serie, abbiamo dimostrato come utilizzare Amazon Textract e Amazon Comprehend per estrarre informazioni da vari documenti. In questo post, abbiamo approfondito come addestrare un riconoscitore di entità personalizzate Amazon Comprehend per estrarre entità personalizzate dai nostri documenti. Abbiamo anche eseguito tecniche di arricchimento dei documenti come la redazione utilizzando Amazon Textract e l'elenco di entità di Amazon Comprehend. Infine, abbiamo visto come utilizzare un flusso di lavoro di revisione umana Amazon A2I per Amazon Textract includendo un team di lavoro privato.

Per ulteriori informazioni sugli esempi di codice completo in questo post, fare riferimento a Repository GitHub.

Ti consigliamo di rivedere le sezioni di sicurezza del Testo Amazon, Amazon Comprehende AmazonA2I documentazione e seguire le linee guida fornite. Inoltre, prenditi un momento per rivedere e capire il prezzo per Testo Amazon, Amazon Comprehende AmazonA2I.


Circa gli autori

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Mento Rane è un architetto di soluzioni specializzato in AI/ML presso Amazon Web Services. È appassionata di matematica applicata e machine learning. Si concentra sulla progettazione di soluzioni intelligenti per l'elaborazione dei documenti per i clienti AWS. Al di fuori del lavoro, le piace ballare la salsa e la bachata.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Sonali Sahu è a capo del team di architetti soluzioni AI/ML per l'elaborazione intelligente dei documenti presso Amazon Web Services. È un'appassionata tecnofila e le piace lavorare con i clienti per risolvere problemi complessi utilizzando l'innovazione. Le sue principali aree di interesse sono l'intelligenza artificiale e l'apprendimento automatico per l'elaborazione intelligente dei documenti.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Anjan Biswas è un Senior Solutions Architect specializzato in AI/ML. Anjan lavora con i clienti aziendali ed è appassionato di sviluppo, distribuzione e spiegazione di soluzioni di IA/ML, analisi dei dati e big data. Anjan ha oltre 14 anni di esperienza di lavoro con organizzazioni globali di supply chain, produzione e vendita al dettaglio e aiuta attivamente i clienti a iniziare e scalare su AWS.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Suprakash Dutta è un Solutions Architect presso Amazon Web Services. Si concentra sulla strategia di trasformazione digitale, sulla modernizzazione e migrazione delle applicazioni, sull'analisi dei dati e sull'apprendimento automatico. Fa parte della comunità AI/ML di AWS e progetta soluzioni intelligenti per l'elaborazione dei documenti.

Timestamp:

Di più da Apprendimento automatico di AWS