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

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

Le organizzazioni di tutti i settori come sanità, finanza e prestito, legale, vendita al dettaglio e produzione spesso devono gestire molti documenti nei loro processi aziendali quotidiani. Questi documenti contengono informazioni critiche che sono fondamentali per prendere decisioni in tempo al fine di mantenere i massimi livelli di soddisfazione dei clienti, un più rapido inserimento dei clienti e una minore abbandono dei clienti. Nella maggior parte dei casi, i documenti vengono elaborati manualmente per estrarre informazioni e approfondimenti, attività che richiedono tempo, sono soggette a errori, sono costose e difficili da scalare. Oggi è disponibile un'automazione limitata per elaborare ed estrarre informazioni da questi documenti. L'elaborazione intelligente dei documenti (IDP) con i servizi di intelligenza artificiale (AI) di AWS aiuta ad automatizzare l'estrazione di informazioni da documenti di diversi tipi e formati, in modo rapido e con elevata precisione, senza la necessità di competenze di machine learning (ML). L'estrazione delle informazioni più rapida con elevata precisione aiuta a prendere decisioni aziendali di qualità in tempo, riducendo i costi complessivi.

Sebbene le fasi di un flusso di lavoro IDP possano variare ed essere influenzate dal caso d'uso e dai requisiti aziendali, la figura seguente mostra le fasi che in genere fanno parte di un flusso di lavoro IDP. L'elaborazione di documenti come moduli fiscali, reclami, note mediche, moduli per nuovi clienti, fatture, contratti legali e altro sono solo alcuni dei casi d'uso per 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 questo post, discutiamo le prime tre fasi del flusso di lavoro IDP. In parte 2, discutiamo le restanti fasi del flusso di lavoro.

Panoramica della soluzione

Il diagramma dell'architettura seguente mostra le fasi di un flusso di lavoro IDP. Inizia con una fase di acquisizione dei dati per archiviare e aggregare in modo sicuro diversi formati di file (PDF, JPEG, PNG, TIFF) e layout di documenti. La fase successiva è la classificazione, in cui si classificano i documenti (come contratti, moduli di richiesta, fatture o ricevute), seguita dall'estrazione dei documenti. Nella fase di estrazione, puoi estrarre informazioni aziendali significative dai tuoi documenti. Questi dati estratti vengono spesso utilizzati per raccogliere informazioni dettagliate tramite l'analisi dei dati o inviati a sistemi a valle come database o sistemi transazionali. La fase successiva è l'arricchimento, in cui i documenti possono essere arricchiti mediante la redazione di informazioni sanitarie protette (PHI) o dati di identificazione personale (PII), l'estrazione di termini aziendali personalizzati e così via. Infine, nella fase di revisione e convalida, puoi includere una forza lavoro umana per le revisioni dei documenti per garantire che il risultato sia accurato.

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

Ai fini di questo post, prendiamo in considerazione una serie di documenti campione come estratti conto bancari, fatture e ricevute di negozio. Gli esempi di documenti, insieme al codice di esempio, sono disponibili nel ns Repository GitHub. Nelle sezioni seguenti, ti guideremo attraverso questi esempi di codice insieme a una vera applicazione pratica. Dimostriamo come utilizzare le funzionalità di ML con Testo Amazon, Amazon Comprehende AI aumentata di Amazon (Amazon A2I) per elaborare documenti e validare i dati da essi estratti.

Amazon Textract è un servizio ML che estrae automaticamente testo, scrittura a mano e dati dai documenti scansionati. Va oltre il semplice riconoscimento ottico dei caratteri (OCR) per identificare, comprendere ed estrarre dati da moduli e tabelle. Amazon Textract utilizza il ML per leggere ed elaborare qualsiasi tipo di documento, estraendo con precisione testo, grafia, tabelle e altri dati senza alcuno sforzo manuale.

Amazon Comprehend è un servizio di elaborazione del linguaggio naturale (NLP) che utilizza il machine learning per estrarre informazioni dettagliate sul contenuto dei documenti. Amazon Comprehend può identificare gli elementi critici nei documenti, inclusi i riferimenti a lingua, persone e luoghi, e classificarli in argomenti o cluster pertinenti. Può eseguire analisi del sentiment per determinare il sentiment di un documento in tempo reale utilizzando il rilevamento di un singolo documento o batch. Ad esempio, può analizzare i commenti su un post del blog per sapere se ai tuoi lettori piace o meno il post. Amazon Comprehend rileva anche PII come indirizzi, numeri di conto bancario e numeri di telefono in documenti di testo in tempo reale e processi batch asincroni. Può anche redigere entità PII in lavori batch asincroni.

Amazon A2I è un servizio 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 entrambi con Testo Amazon ed Amazon Comprehend per darti la possibilità di introdurre le fasi di revisione umana all'interno del tuo flusso di lavoro di elaborazione intelligente dei documenti.

Fase di acquisizione dei dati

Puoi archiviare i documenti in uno spazio di archiviazione altamente scalabile e durevole come Servizio di archiviazione semplice Amazon (Amazon S3). Amazon S3 è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni leader del settore. Amazon S3 è progettato per 11 9 di durabilità e archivia i dati per milioni di clienti in tutto il mondo. I documenti possono essere di vari formati e layout e possono provenire da diversi canali come portali Web o allegati e-mail.

Fase di classificazione

Nel passaggio precedente, abbiamo raccolto documenti di vario tipo e formato. In questo passaggio, dobbiamo classificare i documenti prima di poter eseguire un'ulteriore estrazione. Per questo, utilizziamo Amazon Comprehend classificazione personalizzata. La classificazione dei documenti è un processo in due fasi. Innanzitutto, addestrerai un classificatore personalizzato Amazon Comprehend per riconoscere le classi che ti interessano. Quindi, distribuisci il modello con a endpoint in tempo reale del classificatore personalizzato e inviare documenti senza etichetta all'endpoint in tempo reale da classificare.

La figura seguente rappresenta un tipico flusso di lavoro di classificazione dei documenti.

Fase di classificazione

Per addestrare il classificatore, identifica le classi che ti interessano e fornisci documenti di esempio per ciascuna delle classi come materiale di formazione. Sulla base delle opzioni che hai indicato, Amazon Comprehend crea un modello ML personalizzato che addestra in base ai documenti che hai fornito. Questo modello personalizzato (il classificatore) esamina ogni documento inviato. Restituisce la classe specifica che rappresenta al meglio il contenuto (se si utilizza la modalità multiclasse) o l'insieme di classi ad essa applicabili (se si utilizza la modalità multi-etichetta).

Prepara i dati di allenamento

Il primo passaggio consiste nell'estrarre il testo dai documenti richiesti per il classificatore personalizzato Amazon Comprehend. Per estrarre le informazioni di testo grezzo per tutti i documenti in Amazon S3, utilizziamo Amazon Texttract detect_document_text() API. Etichettiamo anche i dati in base al tipo di documento da utilizzare per addestrare un classificatore Amazon Comprehend personalizzato.

Il codice seguente è stato ridotto per motivi di semplificazione. Per il codice completo, fare riferimento a GitHub Codice d'esempio per textract_extract_text(). La funzione call_textract() è una funzione wr4apper che chiama il AnalizzaDocumento API internamente e i parametri passati al metodo astraggono alcune delle configurazioni necessarie all'API per eseguire l'attività di estrazione.

def textract_extract_text(document, bucket=data_bucket):        
    try:
        print(f'Processing document: {document}')
        lines = ""
        row = []
        
        # using amazon-textract-caller
        response = call_textract(input_document=f's3://{bucket}/{document}') 
        # using pretty printer to get all the lines
        lines = get_string(textract_json=response, output_type=[Textract_Pretty_Print.LINES])
        
        label = [name for name in names if(name in document)]  
        row.append(label[0])
        row.append(lines)        
        return row
    except Exception as e:
        print (e)        

Addestra un classificatore personalizzato

In questo passaggio, utilizziamo la classificazione personalizzata di Amazon Comprehend per addestrare il nostro modello per la classificazione dei documenti. Noi usiamo il CreaDocumentClassifier API per creare un classificatore che addestra un modello personalizzato utilizzando i nostri dati etichettati. Vedere il codice seguente:

create_response = comprehend.create_document_classifier(
        InputDataConfig={
            'DataFormat': 'COMPREHEND_CSV',
            'S3Uri': f's3://{data_bucket}/{key}'
        },
        DataAccessRoleArn=role,
        DocumentClassifierName=document_classifier_name,
        VersionName=document_classifier_version,
        LanguageCode='en',
        Mode='MULTI_CLASS'
    )

Distribuisci un endpoint in tempo reale

Per utilizzare il classificatore personalizzato Amazon Comprehend, creiamo un endpoint in tempo reale utilizzando il CreateEndpoint API:

endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ENDPOINT_ARN=endpoint_response['EndpointArn']
print(f'Endpoint created with ARN: {ENDPOINT_ARN}')  

Classifica i documenti con l'endpoint in tempo reale

Dopo aver creato l'endpoint Amazon Comprehend, possiamo utilizzare l'endpoint in tempo reale per classificare i documenti. Noi usiamo il comprehend.classify_document() funzione con il testo del documento estratto e l'endpoint di inferenza come parametri di input:

response = comprehend.classify_document(
      Text= document,
      EndpointArn=ENDPOINT_ARN
      )

Amazon Comprehend restituisce tutte le classi di documenti con un punteggio di affidabilità collegato a ciascuna classe in una matrice di coppie chiave-valore (punteggio nome). Scegliamo la classe del documento con il punteggio di affidabilità più alto. Lo screenshot seguente è una risposta di esempio.

Classifica i documenti con l'endpoint in tempo reale

Si consiglia di esaminare il codice di esempio di classificazione del documento dettagliato su GitHub.

Fase di estrazione

Amazon Texttract ti consente di estrarre testo e informazioni sui dati strutturati utilizzando Amazon Texttract RilevaDocumentoTesto ed AnalizzaDocumento API, rispettivamente. Queste API rispondono con dati JSON, che contengono WORDS, LINES, FORMS, TABLES, informazioni sulla geometria o sul riquadro di delimitazione, relazioni e così via. Tutti e due DetectDocumentText ed AnalyzeDocument sono operazioni sincrone. Per analizzare i documenti in modo asincrono, utilizzare Avvia DocumentTextDetection.

Estrazione dati strutturata

È possibile estrarre dati strutturati come tabelle dai documenti preservando la struttura dei dati e le relazioni tra gli elementi rilevati. Puoi usare il AnalizzaDocumento API con il FeatureType as TABLE per rilevare tutte le tabelle in un documento. La figura seguente illustra questo processo.

Estrazione dati strutturata

Vedi il seguente codice:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["TABLES"])

Corriamo il analyze_document() metodo con il FeatureType as TABLES sul documento di storia del dipendente e ottenere l'estrazione della tabella nei risultati seguenti.

Analizza la risposta dell'API del documento per l'estrazione delle tabelle

Estrazione dati semistrutturata

È possibile estrarre dati semistrutturati come moduli o coppie chiave-valore dai documenti preservando la struttura dei dati e le relazioni tra gli elementi rilevati. Puoi usare il AnalizzaDocumento API con il FeatureType as FORMS per rilevare tutti i moduli in un documento. Il diagramma seguente illustra questo processo.

Estrazione dati semistrutturata

Vedi il seguente codice:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["FORMS"])

Qui, eseguiamo il analyze_document() metodo con il FeatureType as FORMS sul documento di domanda del dipendente e ottenere l'estrazione della tabella nei risultati.

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

Estrazione di dati non strutturati

Amazon Textract è ottimale per l'estrazione di testo denso con una precisione OCR leader del settore. Puoi usare il RilevaDocumentoTesto API per rilevare le righe di testo e le parole che compongono una riga di testo, come illustrato nella figura seguente.

Estrazione di dati non strutturati

Vedi il seguente codice:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

Ora eseguiamo il detect_document_text() metodo sull'immagine campione e ottenere l'estrazione di testo grezzo nei risultati.

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

Fatture e ricevute

Amazon Texttract fornisce supporto specializzato per elaborare fatture e ricevute su larga scala. Il Analizza spese L'API può estrarre dati etichettati in modo esplicito, dati impliciti ed elementi pubblicitari da un elenco dettagliato di beni o servizi da quasi tutte le fatture o ricevute senza alcun modello o configurazione. La figura seguente illustra questo processo.

Estrazione fatture e ricevute

Vedi il seguente codice:

response = textract.analyze_expense(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

Amazon Textract può trovare il nome del venditore su una ricevuta anche se è indicato solo all'interno di un logo sulla pagina senza un'etichetta esplicita chiamata "fornitore". Può anche trovare ed estrarre voci di spesa, quantità e prezzi che non sono etichettati con intestazioni di colonna per le voci.

Analizza la risposta dell'API di spesa

Documenti d'identità

L'Amazzonia Texttract Analizza ID L'API può aiutarti a estrarre automaticamente le informazioni dai documenti di identità, come patenti di guida e passaporti, senza la necessità di modelli o configurazioni. Possiamo estrarre informazioni specifiche, come data di scadenza e data di nascita, nonché identificare ed estrarre in modo intelligente informazioni implicite, come nome e indirizzo. Il diagramma seguente illustra questo processo.

Estrazione documenti di identità

Vedi il seguente codice:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

Possiamo usare tabulate per ottenere un bel risultato stampato:

from tabulate import tabulate

print(tabulate([x[1:3] for x in result]))

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

Si consiglia di eseguire l'estrazione dettagliata del documento Codice d'esempio su GitHub. Per ulteriori informazioni sugli esempi di codice completo in questo post, fare riferimento a Repository GitHub.

Conclusione

In questo primo post di una serie in due parti, abbiamo discusso le varie fasi di IDP e un'architettura di soluzione. Abbiamo anche discusso della classificazione dei documenti utilizzando un classificatore personalizzato Amazon Comprehend. Successivamente, abbiamo esplorato i modi in cui puoi utilizzare Amazon Textract per estrarre informazioni da tipi di documenti non strutturati, semistrutturati, strutturati e specializzati.

In parte 2 di questa serie, continuiamo la discussione con le funzionalità di estrazione e query di Amazon Texttract. Esaminiamo come utilizzare le entità predefinite di Amazon Comprehend e le entità personalizzate per estrarre termini aziendali chiave da documenti con testo denso e come integrare una revisione Amazon A2I human-in-the-loop nei tuoi processi IDP.

Si consiglia di rivedere le sezioni di sicurezza del Testo Amazon, Amazon Comprehende AmazonA2I documentazione e seguendo 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 1 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.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 1 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. La sua principale area di interesse è l'intelligenza artificiale e l'apprendimento automatico per l'elaborazione intelligente dei documenti.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 1 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Anjan Biswas è un Senior AI Services Solutions Architect con un focus su AI/ML e analisi dei dati. Anjan fa parte del team mondiale dei servizi di intelligenza artificiale e lavora con i clienti per aiutarli a comprendere e sviluppare soluzioni ai problemi aziendali con intelligenza artificiale e ML. Anjan ha oltre 14 anni di esperienza nella collaborazione con organizzazioni globali di supply chain, produzione e vendita al dettaglio e aiuta attivamente i clienti a iniziare e scalare i servizi di intelligenza artificiale di AWS.

Elaborazione intelligente dei documenti con i servizi AWS AI: Parte 1 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Chinmayee 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.

Timestamp:

Di più da Apprendimento automatico di AWS