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

Intelligent dokumentbehandling med AWS AI-tjenester: Del 2

Amazons intelligente dokumentbehandling (IDP) hjælper dig med at fremskynde dine forretningsbeslutningscyklusser og reducere omkostningerne. På tværs af flere brancher skal kunder behandle millioner af dokumenter om året i løbet af deres virksomhed. For kunder, der behandler millioner af dokumenter, er dette et kritisk aspekt for slutbrugeroplevelsen og en topprioritet for digital transformation. På grund af de forskellige formater behandler de fleste firmaer manuelt dokumenter såsom W2'er, krav, ID-dokumenter, fakturaer og juridiske kontrakter eller bruger ældre OCR-løsninger (optisk tegngenkendelse), der er tidskrævende, fejltilbøjelige og dyre. En IDP-pipeline med AWS AI-tjenester giver dig mulighed for at gå ud over OCR med mere nøjagtig og alsidig informationsudtrækning, behandle dokumenter hurtigere, spare penge og flytte ressourcer til opgaver af højere værdi.

I denne serie giver vi et overblik over IDP-pipelinen for at reducere mængden af ​​tid og kræfter, det tager at indtage et dokument og få nøgleinformationen ind i downstream-systemer. Følgende figur viser de faser, der typisk er en del af en IDP-arbejdsgang.

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 del 1, diskuterede vi de første tre faser af IDP-arbejdsgangen. I dette indlæg diskuterer vi de resterende arbejdsprocesfaser.

Løsningsoversigt

Følgende referencearkitektur viser, hvordan du kan bruge AWS AI-tjenester som amazontekst , Amazon Comprehend, sammen med andre AWS-tjenester for at implementere IDP-workflowet. I del 1 beskrev vi datafangst- og dokumentklassificeringsstadierne, hvor vi kategoriserede og taggede dokumenter såsom kontoudtog, fakturaer og kvitteringsdokumenter. Vi diskuterede også ekstraktionsstadiet, hvor du kan udtrække meningsfuld forretningsinformation fra dine dokumenter. I dette indlæg udvider vi IDP-pipelinen ved at se på Amazon Comprehend standard- og brugerdefinerede entiteter i udtrækningsfasen, udføre dokumentberigelse og også kort se på mulighederne for Amazon Augmented AI (Amazon A2I) for at inkludere en menneskelig gennemgangsarbejdsstyrke i gennemgangs- og valideringsfasen.

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

Vi bruger også Amazon Comprehend Medical som en del af denne løsning, som er en service til at udtrække information fra ustruktureret medicinsk tekst præcist og hurtigt og identificere sammenhænge mellem udtrukne sundhedsoplysninger og linke til medicinske ontologier som ICD-10-CM, RxNorm og SNOMED CT.

Amazon A2I er en maskinlæringstjeneste (ML), 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 integreres med amazontekst , Amazon Comprehend for at give dig mulighed for at introducere menneskelige gennemgangstrin i din IDP-workflow.

Forudsætninger

Inden du går i gang, henvises til del 1 for et overblik over IDP på ​​højt niveau og detaljer om datafangst, klassificering og ekstraktionsstadier.

Udvindingsfase

I del 1 af denne serie diskuterede vi, hvordan vi kan bruge Amazon Textract-funktioner til nøjagtig dataudtræk for enhver type dokumenter. For at forlænge denne fase bruger vi Amazon Comprehend præ-trænede entiteter og en Amazon Comprehend brugerdefineret enhedsgenkendelse til yderligere dokumentudtrækning. Formålet med den brugerdefinerede enhedsgenkendelse er at identificere specifikke enheder og generere brugerdefinerede metadata vedrørende vores dokumenter i CSV eller menneskeligt læsbart format, som senere kan analyseres af forretningsbrugerne.

Navngivet enhedsgenkendelse

Named entity recognition (NER) er en naturlig sprogbehandling (NLP) underopgave, der involverer signing gennem tekstdata for at lokalisere navneord, kaldet navngivne enheder, og kategorisere hver med en etiket, såsom brand, dato, begivenhed, lokation, organisationer , person, mængde eller titel. For eksempel, i erklæringen "Jeg har for nylig abonneret på Amazon Prime", er Amazon Prime den navngivne enhed og kan kategoriseres som et brand.

Amazon Comprehend giver dig mulighed for at opdage sådanne brugerdefinerede enheder i dit dokument. Hver enhed har også en konfidensniveauscore, som Amazon Comprehend returnerer for hver enhedstype. Følgende diagram illustrerer enhedens anerkendelsesprocessen.

Navngivet enhedsgenkendelse med Amazon Comprehend

For at få enheder fra tekstdokumentet kalder vi comprehend.detect_entities() metode og konfigurer sprogkoden og teksten som inputparametre:

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)

Vi kører get_entities() metode på bankdokumentet og få entitetslisten i resultaterne.

Svar fra get_entities-metoden fra Comprehend.

Selvom enhedsudtrækning fungerede ret godt til at identificere standardentitetstyperne for alt i bankdokumentet, ønsker vi, at specifikke enheder skal genkendes for vores use case. Mere specifikt skal vi identificere kundens opsparing og checkkontonumre på kontoudtoget. Vi kan udtrække disse vigtige forretningsudtryk ved hjælp af Amazon Comprehend tilpasset enhedsgenkendelse.

Træn en Amazon Comprehend brugerdefineret enhedsgenkendelsesmodel

For at finde de specifikke enheder, som vi er interesserede i fra kundens kontoudtog, træner vi en tilpasset enhedsgenkender med to tilpassede enheder: SAVINGS_AC , CHECKING_AC.

Derefter træner vi en tilpasset enhedsgenkendelsesmodel. Vi kan vælge en af ​​to måder at levere data til Amazon Comprehend på: annoteringer eller entitetslister.

Annotationsmetoden kan ofte føre til mere raffinerede resultater for billedfiler, PDF'er eller Word-dokumenter, fordi du træner en model ved at indsende mere nøjagtig kontekst som annoteringer sammen med dine dokumenter. Annotationsmetoden kan dog være tidskrævende og arbejdskrævende. For at gøre dette blogindlæg nemmere, bruger vi metoden med entitetslister, som du kun kan bruge til almindelige tekstdokumenter. Denne metode giver os en CSV-fil, der skal indeholde den almindelige tekst og dens tilsvarende enhedstype, som vist i det foregående eksempel. Enhederne i denne fil vil være specifikke for vores forretningsbehov (opsparing og checkkontonumre).

For flere detaljer om, hvordan man forbereder træningsdataene til forskellige anvendelsestilfælde ved hjælp af annoteringer eller entitetslister metoder, se Forberedelse af træningsdata.

Følgende skærmbillede viser et eksempel på vores enhedsliste.

Et øjebliksbillede af enhedslisten.

Opret et Amazon Comprehend-tilpasset NER-slutpunkt i realtid

Dernæst opretter vi et brugerdefineret enhedsgenkendelses-endepunkt i realtid ved hjælp af den model, vi trænede. Vi bruger Opret slutpunkt API via comprehend.create_endpoint() metode til at oprette realtidsslutpunktet:

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

Efter at vi har trænet en brugerdefineret enhedsgenkender, bruger vi det brugerdefinerede realtidsslutpunkt til at udtrække nogle berigede oplysninger fra dokumentet og udfører derefter dokumentredigering ved hjælp af de brugerdefinerede entiteter, der genkendes af Amazon Comprehend og afgrænsningsboksoplysninger fra Amazon Textract.

Berigelsesfase

I dokumentberigelsesstadiet kan vi udføre dokumentberigelse ved at redigere personligt identificerbare oplysninger (PII) data, tilpasset forretningsudtræk og så videre. Vores tidligere eksempeldokument (et kontoudtog) indeholder kundernes opsparings- og checkkontonumre, som vi ønsker at redigere. Fordi vi allerede kender disse brugerdefinerede entiteter ved hjælp af vores Amazon Comprehend brugerdefinerede NER-model, kan vi nemt bruge Amazon Textract-geometridatatypen til at redigere disse PII-enheder, uanset hvor de vises i dokumentet. I den følgende arkitektur redigerer vi vigtige forretningsbetingelser (opsparing og checkkonti) fra kontoudtogsdokumentet.

Dokument berigelse fase.

Som du kan se i det følgende eksempel, er check- og opsparingskontonumrene gemt på kontoudtoget nu.

Redigeret prøve på kontoudtog.

Traditionelle OCR-løsninger har svært ved at udtrække data nøjagtigt fra de fleste ustrukturerede og semistrukturerede dokumenter på grund af betydelige variationer i, hvordan dataene er lagt ud på tværs af flere versioner og formater af disse dokumenter. Du skal derefter muligvis implementere tilpasset forbehandlingslogik eller endda manuelt udtrække oplysningerne fra disse dokumenter. I dette tilfælde understøtter IDP-pipelinen to funktioner, som du kan bruge: Amazon Comprehend custom NER og Amazon Textract-forespørgsler. Begge disse tjenester bruger NLP til at udtrække indsigt om indholdet af dokumenter.

Udvinding med Amazon Textract-forespørgsler

Når du behandler et dokument med Amazon Textract, kan du tilføje den nye forespørgselsfunktion til din analyse for at specificere, hvilke oplysninger du har brug for. Dette involverer videregivelse af et NLP-spørgsmål, såsom "Hvad er kundens cpr-nummer?" til Amazon Textract. Amazon Textract finder oplysningerne i dokumentet for det pågældende spørgsmål og returnerer dem i en svarstruktur adskilt fra resten af ​​dokumentets information. Forespørgsler kan behandles alene eller i kombination med andre FeatureType, Såsom Tables or Forms.

Forespørgselsbaseret udvinding ved hjælp af Amazon Textract.

Med Amazon Textract-forespørgsler kan du udtrække information med høj nøjagtighed, uanset hvordan dataene er lagt ud i en dokumentstruktur, såsom formularer, tabeller og afkrydsningsfelter, eller placeret i indlejrede sektioner i et dokument.

For at demonstrere forespørgselsfunktionen udtrækker vi værdifulde oplysninger såsom patientens for- og efternavne, doseringsproducenten og så videre fra dokumenter såsom et COVID-19-vaccinationskort.

Et prøvevaccinationskort.

Vi bruger textract.analyze_document() funktion og angiv FeatureType as QUERIES samt tilføje forespørgslerne i form af naturlige sprogspørgsmål i QueriesConfig.

Følgende kode er blevet trimmet ned for at forenkle. For den fulde kode, se GitHub prøvekode forum 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
#..
]
}) 

For forespørgselsfunktionen er textract.analyze_document() funktionen udsender alle OCR-ORD og LINJER, geometriinformation og konfidensscore i svaret JSON. Vi kan dog bare udskrive de oplysninger, vi har bedt om.

Document er en indpakningsfunktion, der bruges til at hjælpe med at analysere JSON-svaret fra API'en. Det giver en abstraktion på højt niveau og gør API-outputtet iterabelt og nemt at få information ud af. For mere information, se Textract Response Parser , Teksttraktor GitHub repos. Efter at vi har behandlet svaret, får vi følgende oplysninger som vist på skærmbilledet.

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

Svar fra udtræk af forespørgsler.

Gennemgang og valideringsfase

Dette er den sidste fase af vores IDP-pipeline. I denne fase kan vi bruge vores forretningsregler til at kontrollere, om et dokument er fuldstændigt. For eksempel fra et forsikringsskadedokument udtrækkes skades-id'et nøjagtigt og med succes. Vi kan bruge AWS serverløse teknologier som f.eks AWS Lambda for yderligere automatisering af disse forretningsregler. Desuden kan vi inkludere en menneskelig arbejdsstyrke til dokumentgennemgange for at sikre, at forudsigelserne er nøjagtige. Amazon A2I accelererer opbygning af arbejdsgange, der kræves til menneskelig gennemgang af ML-forudsigelser.

Med Amazon A2I kan du give menneskelige anmeldere mulighed for at træde til, når en model ikke er i stand til at lave en forudsigelse med høj tillid eller til at revidere sine forudsigelser løbende. Målet med IDP-pipelinen er at reducere mængden af ​​menneskelig input, der kræves for at få præcis information ind i dine beslutningssystemer. Med IDP kan du reducere mængden af ​​menneskelig input til dine dokumentprocesser såvel som de samlede omkostninger ved dokumentbehandling.

Når du har udtrukket alle de nøjagtige oplysninger fra dokumenterne, kan du yderligere tilføje forretningsspecifikke regler ved hjælp af Lambda-funktioner og til sidst integrere løsningen med downstream-databaser eller applikationer.

Menneskelig gennemgang og verifikationsfase.

For mere information om, hvordan du opretter en Amazon A2I-arbejdsgang, skal du følge instruktionerne fra Forberedelse til modul 4 trin i slutningen af 03-idp-document-enrichment.ipynb i vores GitHub repo.

Ryd op

For at forhindre fremtidige debiteringer på din AWS-konto skal du slette de ressourcer, som vi leverede i opsætningen af ​​lageret ved at navigere til Oprydningssektion i vores repo.

Konklusion

I dette todelte indlæg så vi, hvordan man bygger en end-to-end IDP-pipeline med ringe eller ingen ML-erfaring. Vi diskuterede de forskellige stadier af pipelinen og en praktisk løsning med AWS AI-tjenester såsom Amazon Textract, Amazon Comprehend, Amazon Comprehend Medical og Amazon A2I til at designe og bygge branchespecifikke use cases. I den første indlæg af serien demonstrerede vi, hvordan man bruger Amazon Textract og Amazon Comprehend til at udtrække information fra forskellige dokumenter. I dette indlæg foretog vi et dybt dyk i, hvordan man træner en Amazon Comprehend-tilpasset enhedsgenkender til at udtrække brugerdefinerede enheder fra vores dokumenter. Vi udførte også dokumentberigelsesteknikker som redaktion ved hjælp af Amazon Textract samt entitetslisten fra Amazon Comprehend. Endelig så vi, hvordan du kan bruge en Amazon A2I menneskelig gennemgang arbejdsgang til Amazon Textract ved at inkludere et privat arbejdsteam.

For mere information om de fulde kodeeksempler i dette indlæg, se GitHub repo.

Vi anbefaler, at du gennemgår sikkerhedsafsnittene i amazontekst, Amazon Comprehendog Amazon A2I dokumentation og følg de angivne retningslinjer. 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 2 PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Chin 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.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 2 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åder er kunstig intelligens og maskinlæring til intelligent dokumentbehandling.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 2 PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Anjan Biswas er en AI/ML specialist Senior Solutions Architect. Anjan arbejder med virksomhedskunder og brænder for at udvikle, implementere og forklare AI/ML, dataanalyse og big data-løsninger. 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.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 2 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. Han er en del af AI/ML-fællesskabet hos AWS og designer intelligente dokumentbehandlingsløsninger.

Tidsstempel:

Mere fra AWS maskinindlæring