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

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1

Organisasjoner på tvers av bransjer som helsevesen, finans og utlån, juridisk, detaljhandel og produksjon må ofte håndtere mange dokumenter i sine daglige forretningsprosesser. Disse dokumentene inneholder viktig informasjon som er nøkkelen til å ta avgjørelser i tide for å opprettholde de høyeste nivåene av kundetilfredshet, raskere kundeintroduksjon og lavere kundeavgang. I de fleste tilfeller behandles dokumenter manuelt for å trekke ut informasjon og innsikt, noe som er tidkrevende, feilutsatt, dyrt og vanskelig å skalere. Det er begrenset automatisering tilgjengelig i dag for å behandle og trekke ut informasjon fra disse dokumentene. Intelligent dokumentbehandling (IDP) med AWS-tjenester for kunstig intelligens (AI) hjelper til med å automatisere informasjonsutvinning fra dokumenter av forskjellige typer og formater, raskt og med høy nøyaktighet, uten behov for maskinlæring (ML) ferdigheter. Raskere informasjonsutvinning med høy nøyaktighet hjelper deg med å ta kvalitetsbeslutninger i tide, samtidig som de totale kostnadene reduseres.

Selv om stadiene i en IDP-arbeidsflyt kan variere og påvirkes av brukstilfeller og forretningskrav, viser følgende figur stadiene som vanligvis er en del av en IDP-arbeidsflyt. Behandling av dokumenter som skatteskjemaer, krav, medisinske notater, nye kundeskjemaer, fakturaer, juridiske kontrakter og mer er bare noen av brukssakene for IDP.

I denne todelte serien diskuterer vi hvordan du kan automatisere og intelligent behandle dokumenter i stor skala ved hjelp av AWS AI-tjenester. I dette innlegget diskuterer vi de tre første fasene av IDP-arbeidsflyten. I del 2, diskuterer vi de gjenværende arbeidsflytfasene.

Løsningsoversikt

Følgende arkitekturdiagram viser stadiene i en IDP-arbeidsflyt. Det starter med et datafangststadium for å sikkert lagre og samle forskjellige filformater (PDF, JPEG, PNG, TIFF) og oppsett av dokumenter. Det neste trinnet er klassifisering, hvor du kategoriserer dokumentene dine (som kontrakter, kravskjemaer, fakturaer eller kvitteringer), etterfulgt av dokumentuttrekk. I utvinningsstadiet kan du trekke ut meningsfull forretningsinformasjon fra dokumentene dine. Disse utvunnede dataene brukes ofte til å samle inn innsikt via dataanalyse, eller sendes til nedstrømssystemer som databaser eller transaksjonssystemer. Det følgende trinnet er berikelse, der dokumenter kan berikes ved å redigere beskyttet helseinformasjon (PHI) eller personlig identifiserbar informasjon (PII) data, tilpasset forretningstermutvinning og så videre. Til slutt, i gjennomgangs- og valideringsstadiet, kan du inkludere en menneskelig arbeidsstyrke for dokumentgjennomganger for å sikre at resultatet er nøyaktig.

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

I forbindelse med dette innlegget vurderer vi et sett med eksempeldokumenter som kontoutskrifter, fakturaer og butikkkvitteringer. Dokumenteksemplene, sammen med eksempelkoden, finner du i vår GitHub repository. I de følgende delene leder vi deg gjennom disse kodeeksemplene sammen med virkelig praktisk anvendelse. Vi viser hvordan du kan bruke ML-evner med amazontekst, Amazon Comprehendog Amazon Augmented AI (Amazon A2I) for å behandle dokumenter og validere dataene som er hentet ut fra dem.

Amazon Textract er en ML-tjeneste som automatisk trekker ut tekst, håndskrift og data fra skannede dokumenter. Det går utover enkel optisk tegngjenkjenning (OCR) å identifisere, forstå og trekke ut data fra skjemaer og tabeller. Amazon Textract bruker ML til å lese og behandle alle typer dokumenter, nøyaktig trekke ut tekst, håndskrift, tabeller og andre data uten manuell innsats.

Amazon Comprehend er en NLP-tjeneste (natural-language processing) som bruker ML for å trekke ut innsikt om innholdet i dokumentene. Amazon Comprehend kan identifisere kritiske elementer i dokumenter, inkludert referanser til språk, personer og steder, og klassifisere dem i relevante emner eller klynger. Den kan utføre sentimentanalyse for å bestemme sentimentet til et dokument i sanntid ved å bruke enkeltdokument- eller batchdeteksjon. For eksempel kan den analysere kommentarene på et blogginnlegg for å finne ut om leserne dine liker innlegget eller ikke. Amazon Comprehend oppdager også PII som adresser, bankkontonumre og telefonnumre i tekstdokumenter i sanntid og asynkrone batchjobber. Den kan også redigere PII-enheter i asynkrone batchjobber.

Amazon A2I er en ML-tjeneste som gjør det enkelt å bygge arbeidsflytene som kreves for menneskelig vurdering. Amazon A2I bringer menneskelig anmeldelse til alle utviklere, fjerner de udifferensierte tunge løftene knyttet til å bygge menneskelige vurderingssystemer eller administrerer et stort antall menneskelige anmeldere, enten det kjører på AWS eller ikke. Amazon A2I integrerer begge med amazontekst og Amazon Comprehend for å gi deg muligheten til å introdusere menneskelige gjennomgangstrinn i din intelligente dokumentbehandlingsarbeidsflyt.

Datafangstfase

Du kan lagre dokumenter i en svært skalerbar og holdbar lagring som Amazon enkel lagringstjeneste (Amazon S3). Amazon S3 er en objektlagringstjeneste som tilbyr bransjeledende skalerbarhet, datatilgjengelighet, sikkerhet og ytelse. Amazon S3 er designet for 11 9-talls holdbarhet og lagrer data for millioner av kunder over hele verden. Dokumenter kan komme i forskjellige formater og oppsett, og kan komme fra forskjellige kanaler som nettportaler eller e-postvedlegg.

Klassifiseringsfase

I forrige trinn samlet vi dokumenter av ulike typer og formater. I dette trinnet må vi kategorisere dokumentene før vi kan gjøre ytterligere utvinning. Til det bruker vi Amazon Comprehend tilpasset klassifisering. Dokumentklassifisering er en to-trinns prosess. Først trener du en tilpasset Amazon Comprehend-klassifisering for å gjenkjenne klassene som er av interesse for deg. Deretter distribuerer du modellen med en egendefinert klassifiserer sanntidsendepunkt og sende umerkede dokumenter til sanntidsendepunktet for å bli klassifisert.

Følgende figur representerer en typisk dokumentklassifiseringsarbeidsflyt.

Klassifiseringsfase

For å trene klassifisereren, identifiser klassene du er interessert i og legg inn eksempeldokumenter for hver av klassene som opplæringsmateriell. Basert på alternativene du har angitt, lager Amazon Comprehend en tilpasset ML-modell som den trener basert på dokumentene du har oppgitt. Denne tilpassede modellen (klassifisereren) undersøker hvert dokument du sender inn. Den returnerer enten den spesifikke klassen som best representerer innholdet (hvis du bruker multi-class-modus) eller settet med klasser som gjelder for den (hvis du bruker multi-label-modus).

Forbered treningsdata

Det første trinnet er å trekke ut tekst fra dokumenter som kreves for den tilpassede klassifiseringen Amazon Comprehend. For å trekke ut råtekstinformasjonen for alle dokumentene i Amazon S3 bruker vi Amazon Textract detect_document_text() API. Vi merker også dataene i henhold til dokumenttypen som skal brukes til å trene en tilpasset Amazon Comprehend-klassifiser.

Følgende kode er kuttet ned for forenklingsformål. For hele koden, se GitHub eksempelkode forum textract_extract_text(). Funksjonen call_textract() er en wr4apper-funksjon som kaller Analyser Dokument API internt, og parameterne som sendes til metoden abstraherer noen av konfigurasjonene som APIen trenger for å kjøre utvinningsoppgaven.

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)        

Tren en tilpasset klassifiserer

I dette trinnet bruker vi tilpasset Amazon Comprehend-klassifisering for å trene modellen vår for klassifisering av dokumentene. Vi bruker CreateDocumentClassifier API for å lage en klassifikator som trener en tilpasset modell ved å bruke våre merkede 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'
    )

Distribuer et endepunkt i sanntid

For å bruke den tilpassede klassifiseringen Amazon Comprehend oppretter vi et sanntidsendepunkt ved å bruke 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}')  

Klassifiser dokumenter med sanntidsendepunktet

Etter at Amazon Comprehend-endepunktet er opprettet, kan vi bruke sanntidsendepunktet til å klassifisere dokumenter. Vi bruker comprehend.classify_document() funksjon med den utpakkede dokumentteksten og slutningsendepunktet som inputparametere:

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

Amazon Comprehend returnerer alle klasser av dokumenter med en konfidenspoengsum knyttet til hver klasse i en rekke nøkkelverdi-par (navn-score). Vi velger dokumentklassen med høyest konfidenspoengsum. Følgende skjermbilde er et eksempelsvar.

Klassifiser dokumenter med sanntidsendepunktet

Vi anbefaler å gå gjennom den detaljerte dokumentklassifiseringseksempelkoden på GitHub.

Utvinningsfase

Amazon Textract lar deg trekke ut tekst og strukturert datainformasjon ved hjelp av Amazon Textract Oppdag Dokumenttekst og Analyser Dokument APIer, henholdsvis. Disse API-ene reagerer med JSON-data, som inneholder ORD, LINJER, FORMER, TABELLER, geometri eller avgrensningsboksinformasjon, relasjoner og så videre. Både DetectDocumentText og AnalyzeDocument er synkrone operasjoner. For å analysere dokumenter asynkront, bruk StartDocumentTextDetection.

Strukturert datautvinning

Du kan trekke ut strukturerte data som tabeller fra dokumenter samtidig som du bevarer datastrukturen og relasjonene mellom oppdagede elementer. Du kan bruke Analyser Dokument API med FeatureType as TABLE for å oppdage alle tabeller i et dokument. Følgende figur illustrerer denne prosessen.

Strukturert datautvinning

Se følgende kode:

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

Vi driver analyze_document() metoden med FeatureType as TABLES på ansatthistorikkdokumentet og få tabelluttaket i følgende resultater.

Analyser dokument-API-respons for tabellutvinning

Semistrukturert datautvinning

Du kan trekke ut semistrukturerte data som skjemaer eller nøkkelverdi-par fra dokumenter mens du bevarer datastrukturen og relasjonene mellom oppdagede elementer. Du kan bruke Analyser Dokument API med FeatureType as FORMS for å oppdage alle skjemaer i et dokument. Følgende diagram illustrerer denne prosessen.

Semistrukturert datautvinning

Se følgende kode:

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

Her driver vi analyze_document() metoden med FeatureType as FORMS på arbeidstakers søknadsdokument og få tabelluttaket i resultatene.

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

Ustrukturert datautvinning

Amazon Textract er optimal for tett tekstutvinning med bransjeledende OCR-nøyaktighet. Du kan bruke Oppdag Dokumenttekst API for å oppdage tekstlinjer og ordene som utgjør en tekstlinje, som illustrert i følgende figur.

Ustrukturert datautvinning

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

Nå kjører vi detect_document_text() metode på prøvebildet og få råtekstekstraksjon i resultatene.

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

Fakturaer og kvitteringer

Amazon Textract gir spesialisert støtte for å behandle fakturaer og kvitteringer i stor skala. De AnalyserExpense API kan trekke ut eksplisitt merkede data, underforståtte data og linjeelementer fra en spesifisert liste over varer eller tjenester fra nesten hvilken som helst faktura eller kvittering uten noen maler eller konfigurasjon. Følgende figur illustrerer denne prosessen.

Uttak av fakturaer og kvitteringer

Se følgende kode:

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

Amazon Textract kan finne leverandørnavnet på en kvittering selv om det bare er angitt i en logo på siden uten en eksplisitt etikett kalt "leverandør". Den kan også finne og trekke ut utgiftsposter, mengde og priser som ikke er merket med kolonneoverskrifter for linjeelementer.

Analyser utgifts-API-svar

Identitetsdokumenter

Amazon Textract AnalyseID API kan hjelpe deg automatisk å trekke ut informasjon fra identifikasjonsdokumenter, som førerkort og pass, uten behov for maler eller konfigurasjon. Vi kan trekke ut spesifikk informasjon, for eksempel utløpsdato og fødselsdato, samt intelligent identifisere og trekke ut underforstått informasjon, som navn og adresse. Følgende diagram illustrerer denne prosessen.

Uttrekk av 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 bruke tabulate for å få en pen utskrift:

from tabulate import tabulate

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

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

Vi anbefaler å gå gjennom den detaljerte dokumentutvinningen eksempelkode på GitHub. For mer informasjon om de fullstendige kodeeksemplene i dette innlegget, se GitHub repo.

konklusjonen

I dette første innlegget i en todelt serie diskuterte vi de ulike stadiene av IDP og en løsningsarkitektur. Vi diskuterte også dokumentklassifisering ved å bruke en tilpasset Amazon Comprehend-klassifisering. Deretter utforsket vi måtene du kan bruke Amazon Textract til å trekke ut informasjon fra ustrukturerte, semistrukturerte, strukturerte og spesialiserte dokumenttyper.

In del 2 av denne serien fortsetter vi diskusjonen med ekstrakt- og spørringsfunksjonene til Amazon Textract. Vi ser på hvordan du bruker Amazon Comprehend forhåndsdefinerte enheter og tilpassede enheter for å trekke ut sentrale forretningstermer fra dokumenter med tett tekst, og hvordan du integrerer en Amazon A2I menneske-i-løkken-gjennomgang i IDP-prosessene dine.

Vi anbefaler å gå gjennom sikkerhetsdelene i amazontekst, Amazon Comprehendog Amazon A2I dokumentasjon og følge de gitte retningslinjene. Bruk også litt tid på å se gjennom og forstå prisene for amazontekst, Amazon Comprehendog Amazon A2I.


Om forfatterne

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Suprakash Dutta er løsningsarkitekt hos Amazon Web Services. Han fokuserer på digital transformasjonsstrategi, applikasjonsmodernisering og migrering, dataanalyse og maskinlæring.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Sonali Sahu leder Intelligent Document Processing AI/ML Solutions Architect-teamet hos Amazon Web Services. Hun er en lidenskapelig teknofil og liker å jobbe med kunder for å løse komplekse problemer ved hjelp av innovasjon. Hennes kjernefokusområde er kunstig intelligens og maskinlæring for intelligent dokumentbehandling.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Anjan Biswas er en senior AI Services Solutions Architect med fokus på AI/ML og dataanalyse. Anjan er en del av det verdensomspennende AI-tjenesteteamet og jobber med kunder for å hjelpe dem med å forstå og utvikle løsninger på forretningsproblemer med AI og ML. Anjan har over 14 års erfaring med å jobbe med globale forsyningskjeder, produksjons- og detaljhandelsorganisasjoner, og hjelper aktivt kunder med å komme i gang og skalere på AWS AI-tjenester.

Intelligent dokumentbehandling med AWS AI-tjenester: Del 1 PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Chinmayee Rane er en AI/ML-spesialistløsningsarkitekt hos Amazon Web Services. Hun brenner for anvendt matematikk og maskinlæring. Hun fokuserer på å designe intelligente dokumentbehandlingsløsninger for AWS-kunder. Utenom jobben liker hun salsa og bachata dans.

Tidstempel:

Mer fra AWS maskinlæring