Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1

Organisationer över branscher som sjukvård, finans och utlåning, juridik, detaljhandel och tillverkning måste ofta hantera många dokument i sina dagliga affärsprocesser. Dessa dokument innehåller viktig information som är nyckeln till att fatta beslut i tid för att upprätthålla högsta nivå av kundnöjdhet, snabbare kundintroduktion och lägre kundförlust. I de flesta fall bearbetas dokument manuellt för att extrahera information och insikter, vilket är tidskrävande, felbenäget, dyrt och svårt att skala. Det finns begränsad automatisering tillgänglig idag för att bearbeta och extrahera information från dessa dokument. Intelligent dokumentbehandling (IDP) med AWS-tjänster för artificiell intelligens (AI) hjälper till att automatisera informationsextraktion från dokument av olika typer och format, snabbt och med hög noggrannhet, utan behov av maskininlärning (ML)-kunskaper. Snabbare informationsutvinning med hög noggrannhet hjälper till att fatta affärsbeslut av hög kvalitet i tid, samtidigt som de totala kostnaderna minskar.

Även om stadierna i ett IDP-arbetsflöde kan variera och påverkas av användningsfall och affärskrav, visar följande figur de stadier som vanligtvis är en del av ett IDP-arbetsflöde. Bearbetning av dokument som skatteformulär, anspråk, medicinska anteckningar, nya kundformulär, fakturor, juridiska kontrakt och mer är bara några av användningsfallen för IDP.

I denna tvådelade serie diskuterar vi hur du kan automatisera och intelligent bearbeta dokument i stor skala med hjälp av AWS AI-tjänster. I det här inlägget diskuterar vi de tre första faserna av IDP-arbetsflödet. I del 2diskuterar vi de återstående arbetsflödesfaserna.

Lösningsöversikt

Följande arkitekturdiagram visar stadierna i ett IDP-arbetsflöde. Det börjar med ett datainsamlingssteg för att säkert lagra och sammanställa olika filformat (PDF, JPEG, PNG, TIFF) och layouter av dokument. Nästa steg är klassificering, där du kategoriserar dina dokument (såsom kontrakt, reklamationsformulär, fakturor eller kvitton), följt av dokumentextraktion. I utvinningsstadiet kan du extrahera meningsfull affärsinformation från dina dokument. Denna extraherade data används ofta för att samla in insikter via dataanalys, eller skickas till nedströmssystem som databaser eller transaktionssystem. Följande steg är anrikning, där dokument kan berikas genom att redigera skyddad hälsoinformation (PHI) eller personligt identifierbar information (PII), extrahering av anpassade affärstermer och så vidare. Slutligen, i gransknings- och valideringsstadiet, kan du inkludera en mänsklig arbetsstyrka för dokumentgranskningar för att säkerställa att resultatet är korrekt.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

I det här inlägget överväger vi en uppsättning exempeldokument som kontoutdrag, fakturor och butikskvitton. Dokumentexemplen, tillsammans med exempelkoden, finns i vår GitHub repository. I följande avsnitt går vi igenom dessa kodexempel tillsammans med verklig praktisk tillämpning. Vi visar hur du kan använda ML-kapacitet med amazontext, Amazon Comprehendoch Amazon Augmented AI (Amazon A2I) för att bearbeta dokument och validera data som extraherats från dem.

Amazon Textract är en ML-tjänst som automatiskt extraherar text, handstil och data från skannade dokument. Det går utöver enkel optisk teckenigenkänning (OCR) för att identifiera, förstå och extrahera data från formulär och tabeller. Amazon Textract använder ML för att läsa och bearbeta alla typer av dokument, extrahera text, handstil, tabeller och annan data korrekt utan manuell ansträngning.

Amazon Comprehend är en NLP-tjänst (natural-language processing) som använder ML för att extrahera insikter om innehållet i dokumenten. Amazon Comprehend kan identifiera kritiska element i dokument, inklusive referenser till språk, personer och platser, och klassificera dem i relevanta ämnen eller kluster. Den kan utföra sentimentanalys för att bestämma sentimentet för ett dokument i realtid med hjälp av enstaka dokument eller batchdetektering. Den kan till exempel analysera kommentarerna på ett blogginlägg för att veta om dina läsare gillar inlägget eller inte. Amazon Comprehend upptäcker också PII som adresser, bankkontonummer och telefonnummer i textdokument i realtid och asynkrona batchjobb. Den kan också redigera PII-entiteter i asynkrona batchjobb.

Amazon A2I är en ML-tjänst som gör det enkelt att bygga de arbetsflöden som krävs för mänsklig granskning. Amazon A2I ger mänsklig granskning till alla utvecklare, tar bort de odifferentierade tunga lyften i samband med att bygga mänskliga granskningssystem eller hanterar ett stort antal mänskliga granskare, oavsett om det körs på AWS eller inte. Amazon A2I integrerar båda med amazontext och Amazon Comprehend för att ge dig möjligheten att introducera mänskliga granskningssteg i ditt intelligenta dokumentbearbetningsarbetsflöde.

Datainsamlingsfas

Du kan lagra dokument i en mycket skalbar och hållbar lagring som Amazon enkel lagringstjänst (Amazon S3). Amazon S3 är en objektlagringstjänst som erbjuder branschledande skalbarhet, datatillgänglighet, säkerhet och prestanda. Amazon S3 är designad för 11 9:or av hållbarhet och lagrar data för miljontals kunder över hela världen. Dokument kan komma i olika format och layouter och kan komma från olika kanaler som webbportaler eller e-postbilagor.

Klassificeringsfas

I föregående steg samlade vi dokument av olika typer och format. I det här steget måste vi kategorisera dokumenten innan vi kan göra ytterligare extraktion. För det använder vi Amazon Comprehend anpassad klassificering. Dokumentklassificering är en process i två steg. Först tränar du en anpassad klassificerare från Amazon Comprehend för att känna igen de klasser som är av intresse för dig. Därefter distribuerar du modellen med en anpassad klassificerare i realtid slutpunkt och skicka omärkta dokument till realtidsslutpunkten för att klassificeras.

Följande figur representerar ett typiskt arbetsflöde för dokumentklassificering.

Klassificeringsfas

För att träna klassificeraren, identifiera de klasser du är intresserad av och tillhandahåll exempeldokument för var och en av klasserna som utbildningsmaterial. Baserat på alternativen du angav skapar Amazon Comprehend en anpassad ML-modell som den tränar baserat på de dokument du tillhandahållit. Den här anpassade modellen (klassificeraren) undersöker varje dokument du skickar in. Den returnerar antingen den specifika klass som bäst representerar innehållet (om du använder multi-class mode) eller uppsättningen klasser som gäller för den (om du använder multi-label mode).

Förbered träningsdata

Det första steget är att extrahera text från dokument som krävs för den anpassade klassificeraren Amazon Comprehend. För att extrahera råtextinformationen för alla dokument i Amazon S3 använder vi Amazon Textract detect_document_text() API. Vi märker också data enligt den dokumenttyp som ska användas för att träna en anpassad Amazon Comprehend-klassificerare.

Följande kod har trimmats ned för att förenkla. För hela koden, se GitHub Exempelkod för textract_extract_text(). Funktionen call_textract() är en wr4apper-funktion som anropar Analysera dokument API internt, och parametrarna som skickas till metoden abstraherar några av de konfigurationer som API:n behöver för att köra extraktionsuppgiften.

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)        

Träna en anpassad klassificerare

I det här steget använder vi anpassad klassificering från Amazon Comprehend för att träna vår modell för att klassificera dokumenten. Vi använder CreateDocumentClassifier API för att skapa en klassificerare som tränar en anpassad modell med hjälp av våra märkta data. Se följande kod:

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'
    )

Distribuera en slutpunkt i realtid

För att använda den anpassade klassificeraren Amazon Comprehend skapar vi en slutpunkt i realtid med hjälp av 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}')  

Klassificera dokument med realtidsslutpunkten

Efter att Amazon Comprehend-slutpunkten har skapats kan vi använda realtidsslutpunkten för att klassificera dokument. Vi använder comprehend.classify_document() funktion med den extraherade dokumenttexten och slutpunktens slutpunkt som indataparametrar:

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

Amazon Comprehend returnerar alla klasser av dokument med en konfidenspoäng kopplad till varje klass i en uppsättning nyckel-värdepar (namn-poäng). Vi väljer den dokumentklass som har högst konfidenspoäng. Följande skärmdump är ett exempel på svar.

Klassificera dokument med realtidsslutpunkten

Vi rekommenderar att du går igenom den detaljerade dokumentklassificeringsexempelkoden på GitHub.

Extraktionsfas

Amazon Textract låter dig extrahera text och strukturerad datainformation med Amazon Textract DetectDocumentText och Analysera dokument API:er. Dessa API:er svarar med JSON-data, som innehåller ORD, LINJER, FORMER, TABELLER, information om geometri eller begränsningsruta, relationer och så vidare. Både DetectDocumentText och AnalyzeDocument är synkrona operationer. För att analysera dokument asynkront, använd StartDocumentTextDetection.

Strukturerad dataextraktion

Du kan extrahera strukturerad data såsom tabeller från dokument samtidigt som datastrukturen och relationerna mellan upptäckta objekt bevaras. Du kan använda Analysera dokument API med FeatureType as TABLE för att upptäcka alla tabeller i ett dokument. Följande figur illustrerar denna process.

Strukturerad dataextraktion

Se följande kod:

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

Vi kör analyze_document() metoden med FeatureType as TABLES på anställds historikdokument och få tabellextraktionen i följande resultat.

Analysera dokument-API-svar för tabellextraktion

Semistrukturerad dataextraktion

Du kan extrahera semistrukturerade data som formulär eller nyckel-värdepar från dokument samtidigt som datastrukturen och relationerna mellan upptäckta objekt bevaras. Du kan använda Analysera dokument API med FeatureType as FORMS för att upptäcka alla formulär i ett dokument. Följande diagram illustrerar denna process.

Semistrukturerad dataextraktion

Se följande kod:

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

Här kör vi analyze_document() metoden med FeatureType as FORMS på anställningsdokumentet för anställda och få tabellutdraget i resultaten.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Ostrukturerad dataextraktion

Amazon Textract är optimal för tät textextraktion med branschledande OCR-noggrannhet. Du kan använda DetectDocumentText API för att upptäcka textrader och orden som utgör en textrad, som illustreras i följande figur.

Ostrukturerad dataextraktion

Se följande kod:

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

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

Nu kör vi detect_document_text() metod på provbilden och få råtextextraktion i resultaten.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Fakturor och kvitton

Amazon Textract tillhandahåller specialiserat stöd för att hantera fakturor och kvitton i stor skala. De AnalyseraExpense API kan extrahera explicit märkta data, underförstådda data och rader från en specificerad lista över varor eller tjänster från nästan alla fakturor eller kvitton utan några mallar eller konfigurationer. Följande figur illustrerar denna process.

Utvinning av fakturor och kvitton

Se följande kod:

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

Amazon Textract kan hitta säljarens namn på ett kvitto även om det bara anges i en logotyp på sidan utan en explicit etikett som kallas "leverantör". Det kan också hitta och extrahera utgiftsposter, kvantitet och priser som inte är märkta med kolumnrubriker för rader.

Analysera kostnads-API-svar

Identitetshandlingar

Amazon Textract Analysera ID API kan hjälpa dig att automatiskt extrahera information från identifieringsdokument, såsom körkort och pass, utan behov av mallar eller konfiguration. Vi kan extrahera specifik information, såsom utgångsdatum och födelsedatum, samt intelligent identifiera och extrahera underförstådd information, såsom namn och adress. Följande diagram illustrerar denna process.

Utvinning av identitetshandlingar

Se följande kod:

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

Vi kan använda tabulate för att få en snygg utskrift:

from tabulate import tabulate

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

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi rekommenderar att du går igenom den detaljerade dokumentextraktionen Exempelkod på GitHub. För mer information om de fullständiga kodexemplen i det här inlägget, se GitHub repo.

Slutsats

I det här första inlägget i en serie i två delar diskuterade vi de olika stadierna av IDP och en lösningsarkitektur. Vi diskuterade också dokumentklassificering med hjälp av en anpassad klassificerare från Amazon Comprehend. Därefter undersökte vi hur du kan använda Amazon Textract för att extrahera information från ostrukturerade, semistrukturerade, strukturerade och specialiserade dokumenttyper.

In del 2 i den här serien fortsätter vi diskussionen med extrakt- och frågefunktionerna i Amazon Textract. Vi tittar på hur man använder Amazon Comprehend fördefinierade entiteter och anpassade entiteter för att extrahera viktiga affärstermer från dokument med tät text, och hur man integrerar en Amazon A2I människa-i-slingan granskning i dina IDP-processer.

Vi rekommenderar att du granskar säkerhetsdelarna i amazontext, Amazon Comprehendoch Amazon A2I dokumentation och följa de riktlinjer som tillhandahålls. Ta också en stund att granska och förstå prissättningen för amazontext, Amazon Comprehendoch Amazon A2I.


Om författarna

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Suprakash Dutta är en lösningsarkitekt på Amazon Web Services. Han fokuserar på digital transformationsstrategi, applikationsmodernisering och migrering, dataanalys och maskininlärning.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sonali Sahu leder Intelligent Document Processing AI/ML Solutions Architect team på Amazon Web Services. Hon är en passionerad tenofil och tycker om att arbeta med kunder för att lösa komplexa problem med hjälp av innovation. Hennes kärnfokus är artificiell intelligens och maskininlärning för intelligent dokumentbehandling.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Anjan Biswas är Senior AI Services Solutions Architect med fokus på AI/ML och dataanalys. Anjan är en del av det världsomspännande AI-serviceteamet och arbetar med kunder för att hjälpa dem att förstå och utveckla lösningar på affärsproblem med AI och ML. Anjan har över 14 års erfarenhet av att arbeta med globala supply chain-, tillverknings- och detaljhandelsorganisationer och hjälper aktivt kunder att komma igång och skala på AWS AI-tjänster.

Intelligent dokumentbehandling med AWS AI-tjänster: Del 1 PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Chinmayee Rane är en AI/ML Specialist Solutions Architect på Amazon Web Services. Hon brinner för tillämpad matematik och maskininlärning. Hon fokuserar på att designa intelligenta dokumentbehandlingslösningar för AWS-kunder. Utanför jobbet tycker hon om att dansa salsa och bachata.

Tidsstämpel:

Mer från AWS maskininlärning