Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1

Organisationer på tværs af brancher såsom sundhedspleje, finans og udlån, jura, detailhandel og fremstilling skal ofte håndtere en masse dokumenter i deres daglige forretningsprocesser. Disse dokumenter indeholder kritisk information, der er nøglen til at træffe beslutninger til tiden for at opretholde det højeste niveau af kundetilfredshed, hurtigere kundeonboarding og lavere kundeafgang. I de fleste tilfælde behandles dokumenter manuelt for at udtrække information og indsigt, hvilket er tidskrævende, fejlbehæftet, dyrt og svært at skalere. Der er begrænset automatisering tilgængelig i dag til at behandle og udtrække information fra disse dokumenter. Intelligent dokumentbehandling (IDP) med AWS kunstig intelligens (AI)-tjenester hjælper med at automatisere informationsudtrækning fra dokumenter af forskellige typer og formater, hurtigt og med høj nøjagtighed uden behov for maskinlæring (ML) færdigheder. Hurtigere informationsudtrækning med høj nøjagtighed hjælper med at træffe forretningsmæssige beslutninger af høj kvalitet til tiden, samtidig med at de samlede omkostninger reduceres.

Selvom stadierne i en IDP-arbejdsgang kan variere og være påvirket af use case og forretningskrav, viser følgende figur de stadier, der typisk er en del af en IDP-workflow. Behandling af dokumenter såsom skatteformularer, krav, lægenotater, nye kundeformularer, fakturaer, juridiske kontrakter og mere er blot nogle få af anvendelsesmulighederne for IDP.

I denne todelte serie diskuterer vi, hvordan du kan automatisere og intelligent behandle dokumenter i stor skala ved hjælp af AWS AI-tjenester. I dette indlæg diskuterer vi de første tre faser af IDP-arbejdsgangen. I del 2, diskuterer vi de resterende arbejdsgange.

Løsningsoversigt

Det følgende arkitekturdiagram viser stadierne i en IDP-arbejdsgang. Det starter med et datafangsttrin for sikkert at gemme og samle forskellige filformater (PDF, JPEG, PNG, TIFF) og layout af dokumenter. Næste trin er klassificering, hvor du kategoriserer dine dokumenter (såsom kontrakter, kravsformularer, fakturaer eller kvitteringer), efterfulgt af dokumentudtræk. I udtræksfasen kan du udtrække meningsfuld forretningsinformation fra dine dokumenter. Disse udtrukne data bruges ofte til at indsamle indsigt via dataanalyse eller sendes til downstream-systemer såsom databaser eller transaktionssystemer. Det følgende trin er berigelse, hvor dokumenter kan beriges ved at redigere beskyttede sundhedsoplysninger (PHI) eller personligt identificerbare oplysninger (PII) data, brugerdefineret forretningsudtræk og så videre. Til sidst, i gennemgangs- og valideringsfasen, kan du inkludere en menneskelig arbejdsstyrke til dokumentgennemgange for at sikre, at resultatet er nøjagtigt.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I forbindelse med dette indlæg betragter vi et sæt eksempler på dokumenter såsom kontoudtog, fakturaer og butikskvitteringer. Dokumenteksemplerne kan sammen med prøvekoden findes i vores GitHub repository. I de følgende afsnit leder vi dig gennem disse kodeeksempler sammen med virkelig praktisk anvendelse. Vi demonstrerer, hvordan du kan udnytte ML-kapaciteter med amazontekst, Amazon Comprehendog Amazon Augmented AI (Amazon A2I) til at behandle dokumenter og validere de data, der er udtrukket fra dem.

Amazon Textract er en ML-tjeneste, der automatisk udtrækker tekst, håndskrift og data fra scannede dokumenter. Det går ud over simpel optisk tegngenkendelse (OCR) at identificere, forstå og udtrække data fra formularer og tabeller. Amazon Textract bruger ML til at læse og behandle enhver type dokumenter, præcist udtrække tekst, håndskrift, tabeller og andre data uden manuel indsats.

Amazon Comprehend er en NLP-tjeneste (natural-language processing), der bruger ML til at udtrække indsigt om indholdet af dokumenterne. Amazon Comprehend kan identificere kritiske elementer i dokumenter, herunder referencer til sprog, personer og steder, og klassificere dem i relevante emner eller klynger. Den kan udføre stemningsanalyse for at bestemme stemningen af ​​et dokument i realtid ved hjælp af enkeltdokument eller batch-detektion. For eksempel kan den analysere kommentarerne på et blogindlæg for at vide, om dine læsere kan lide indlægget eller ej. Amazon Comprehend registrerer også PII-lignende adresser, bankkontonumre og telefonnumre i tekstdokumenter i realtid og asynkrone batchjobs. Det kan også redigere PII-enheder i asynkrone batchjobs.

Amazon A2I er en ML-tjeneste, der gør det nemt at opbygge de arbejdsgange, der kræves til menneskelig gennemgang. Amazon A2I bringer menneskelig anmeldelse til alle udviklere, fjerner de udifferentierede tunge løft forbundet med at bygge menneskelige anmeldelsessystemer eller administrerer et stort antal menneskelige anmeldere, uanset om det kører på AWS eller ej. Amazon A2I integrerer begge med amazontekst , Amazon Comprehend for at give dig muligheden for at introducere menneskelige gennemgangstrin i din intelligente dokumentbehandlingsarbejdsgang.

Dataopsamlingsfase

Du kan gemme dokumenter i en meget skalerbar og holdbar opbevaring som Amazon Simple Storage Service (Amazon S3). Amazon S3 er en objektlagringstjeneste, der tilbyder brancheførende skalerbarhed, datatilgængelighed, sikkerhed og ydeevne. Amazon S3 er designet til 11 9'ers holdbarhed og gemmer data for millioner af kunder over hele verden. Dokumenter kan komme i forskellige formater og layouter og kan komme fra forskellige kanaler som webportaler eller vedhæftede filer i e-mail.

Klassifikationsfase

I det foregående trin samlede vi dokumenter af forskellige typer og formater. I dette trin skal vi kategorisere dokumenterne, før vi kan foretage yderligere udtræk. Til det bruger vi Amazon Comprehend tilpasset klassificering. Dokumentklassificering er en to-trins proces. Først træner du en tilpasset Amazon Comprehend-klassifikator til at genkende de klasser, der er af interesse for dig. Dernæst implementerer du modellen med en brugerdefineret klassificering i realtid slutpunkt og sende umærkede dokumenter til realtidsslutpunktet for at blive klassificeret.

Følgende figur repræsenterer en typisk dokumentklassificeringsarbejdsgang.

Klassifikationsfase

For at træne klassificereren skal du identificere de klasser, du er interesseret i, og give eksempler på dokumenter for hver af klasserne som træningsmateriale. Baseret på de muligheder, du har angivet, opretter Amazon Comprehend en tilpasset ML-model, som den træner baseret på de dokumenter, du har leveret. Denne brugerdefinerede model (klassifikatoren) undersøger hvert dokument, du indsender. Den returnerer enten den specifikke klasse, der bedst repræsenterer indholdet (hvis du bruger multi-class mode) eller det sæt klasser, der gælder for den (hvis du bruger multi-label mode).

Forbered træningsdata

Det første trin er at udtrække tekst fra dokumenter, der kræves til Amazon Comprehend brugerdefinerede klassificering. For at udtrække den rå tekstinformation for alle dokumenter i Amazon S3 bruger vi Amazon Textract detect_document_text() API. Vi mærker også dataene i henhold til den dokumenttype, der skal bruges til at træne en tilpasset Amazon Comprehend-klassifikator.

Følgende kode er blevet trimmet ned for at forenkle. For den fulde kode henvises til GitHub prøvekode forum textract_extract_text(). Funktionen call_textract() er en wr4apper funktion, der kalder AnalyserDokument API internt, og de parametre, der sendes til metoden, abstraherer nogle af de konfigurationer, som API'en har brug for for at køre ekstraktionsopgaven.

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æn en brugerdefineret klassificering

I dette trin bruger vi tilpasset Amazon Comprehend-klassificering til at træne vores model til klassificering af dokumenterne. Vi bruger CreateDocumentClassifier API til at skabe en klassifikator, der træner en tilpasset model ved hjælp af vores mærkede data. Se følgende kode:

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

Implementer et slutpunkt i realtid

For at bruge Amazon Comprehend brugerdefinerede klassificering, opretter vi et slutpunkt i realtid ved hjælp af CreateEndpoint API'er:

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

Klassificer dokumenter med realtidsslutpunktet

Efter Amazon Comprehend-slutpunktet er oprettet, kan vi bruge realtidsslutpunktet til at klassificere dokumenter. Vi bruger comprehend.classify_document() funktion med den udtrukne dokumenttekst og inferensslutpunkt som inputparametre:

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

Amazon Comprehend returnerer alle klasser af dokumenter med en konfidensscore knyttet til hver klasse i en række nøgleværdi-par (navn-score). Vi vælger den dokumentklasse med den højeste konfidensscore. Følgende skærmbillede er et eksempel på svar.

Klassificer dokumenter med realtidsslutpunktet

Vi anbefaler at gennemgå den detaljerede dokumentklassifikationseksempelkode på GitHub.

Udvindingsfase

Amazon Textract lader dig udtrække tekst og strukturerede dataoplysninger ved hjælp af Amazon Textract DetectDocumentText , AnalyserDokument API'er. Disse API'er reagerer med JSON-data, som indeholder ORD, LINJER, FORMER, TABELLER, information om geometri eller afgrænsningsfelter, relationer og så videre. Begge DetectDocumentText , AnalyzeDocument er synkrone operationer. For at analysere dokumenter asynkront, brug StartDocumentTextDetection.

Struktureret dataudtræk

Du kan udtrække strukturerede data, såsom tabeller, fra dokumenter, samtidig med at datastrukturen og relationerne mellem registrerede elementer bevares. Du kan bruge AnalyserDokument API med FeatureType as TABLE at finde alle tabeller i et dokument. Følgende figur illustrerer denne proces.

Struktureret dataudtræk

Se følgende kode:

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

Vi kører analyze_document() metode med FeatureType as TABLES på medarbejderhistorikdokumentet og få tabeludtrækket i følgende resultater.

Analyser dokument-API-svar til tabeludtræk

Semistruktureret dataudtræk

Du kan udtrække semi-strukturerede data såsom formularer eller nøgleværdi-par fra dokumenter, mens du bevarer datastrukturen og relationerne mellem registrerede elementer. Du kan bruge AnalyserDokument API med FeatureType as FORMS at finde alle formularer i et dokument. Følgende diagram illustrerer denne proces.

Semistruktureret dataudtræk

Se følgende kode:

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

Her kører vi analyze_document() metode med FeatureType as FORMS på medarbejderansøgningsdokumentet og indhent tabeludtrækket i resultaterne.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Ustruktureret dataudtræk

Amazon Textract er optimal til tæt tekstudtrækning med brancheførende OCR-nøjagtighed. Du kan bruge DetectDocumentText API til at detektere tekstlinjer og de ord, der udgør en tekstlinje, som illustreret i den følgende figur.

Ustruktureret dataudtræk

Se følgende kode:

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ører vi detect_document_text() metode på prøvebilledet og opnå rå tekstudtræk i resultaterne.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Fakturaer og kvitteringer

Amazon Textract giver specialiseret support til at behandle fakturaer og kvitteringer i stor skala. Det Analyser Udgift API kan udtrække eksplicit mærkede data, underforståede data og linjeposter fra en specificeret liste over varer eller tjenester fra næsten enhver faktura eller kvittering uden nogen skabeloner eller konfiguration. Følgende figur illustrerer denne proces.

Udtræk af fakturaer og kvitteringer

Se følgende kode:

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

Amazon Textract kan finde leverandørens navn på en kvittering, selvom det kun er angivet i et logo på siden uden en eksplicit etiket kaldet "leverandør". Det kan også finde og udtrække udgiftsposter, antal og priser, der ikke er mærket med kolonneoverskrifter for linjeposter.

Analyser udgifts API-svar

Identitetsdokumenter

Amazon Textract AnalyseID API kan hjælpe dig med automatisk at udtrække information fra identifikationsdokumenter, såsom kørekort og pas, uden behov for skabeloner eller konfiguration. Vi kan udtrække specifikke oplysninger, såsom udløbsdato og fødselsdato, samt intelligent identificere og udtrække underforståede oplysninger, såsom navn og adresse. Følgende diagram illustrerer denne proces.

Udtræk af identitetsdokumenter

Se følgende kode:

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 bruge tabulate for at få et smukt trykt output:

from tabulate import tabulate

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

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vi anbefaler at gennemgå den detaljerede dokumentudtrækning prøvekode på GitHub. For mere information om de fulde kodeeksempler i dette indlæg, se GitHub repo.

Konklusion

I dette første indlæg i en todelt serie diskuterede vi de forskellige stadier af IDP og en løsningsarkitektur. Vi diskuterede også dokumentklassificering ved hjælp af en tilpasset Amazon Comprehend-klassificering. Dernæst undersøgte vi, hvordan du kan bruge Amazon Textract til at udtrække information fra ustrukturerede, semi-strukturerede, strukturerede og specialiserede dokumenttyper.

In del 2 i denne serie fortsætter vi diskussionen med ekstrakt- og forespørgselsfunktionerne i Amazon Textract. Vi ser på, hvordan man bruger Amazon Comprehend foruddefinerede entiteter og brugerdefinerede enheder til at udtrække vigtige forretningsudtryk fra dokumenter med tæt tekst, og hvordan man integrerer en Amazon A2I human-in-the-loop gennemgang i dine IDP-processer.

Vi anbefaler at gennemgå sikkerhedsafsnittene i amazontekst, Amazon Comprehendog Amazon A2I dokumentation og følge retningslinjerne. Brug også et øjeblik på at gennemgå og forstå priserne for amazontekst, Amazon Comprehendog Amazon A2I.


Om forfatterne

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Suprakash Dutta er Solutions Architect hos Amazon Web Services. Han fokuserer på digital transformationsstrategi, applikationsmodernisering og -migrering, dataanalyse og maskinlæring.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sonali Sahu leder Intelligent Document Processing AI/ML Solutions Architect team hos Amazon Web Services. Hun er en passioneret teknofil og nyder at arbejde med kunder for at løse komplekse problemer ved hjælp af innovation. Hendes kernefokusområde er kunstig intelligens og maskinlæring til intelligent dokumentbehandling.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Anjan Biswas er Senior AI Services Solutions Architect med fokus på AI/ML og dataanalyse. Anjan er en del af det verdensomspændende AI-serviceteam og arbejder med kunder for at hjælpe dem med at forstå og udvikle løsninger på forretningsproblemer med AI og ML. Anjan har over 14 års erfaring med at arbejde med globale forsyningskæder, fremstillings- og detailorganisationer og hjælper aktivt kunder med at komme i gang og skalere på AWS AI-tjenester.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Chinmayee Rane er AI/ML Specialist Solutions Architect hos Amazon Web Services. Hun brænder for anvendt matematik og maskinlæring. Hun fokuserer på at designe intelligente dokumentbehandlingsløsninger til AWS-kunder. Uden for arbejdet nyder hun salsa og bachata dans.

Tidsstempel:

Mere fra AWS maskinindlæring