Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract

amazontekst er en maskinlæringstjeneste (ML) som automatisk trekker ut tekst, håndskrift og data fra ethvert dokument eller bilde. Amazon Textract tilbyr nå fleksibiliteten til å spesifisere dataene du trenger for å trekke ut fra dokumenter ved å bruke den nye Queries-funksjonen i Analyze Document API. Du trenger ikke å kjenne strukturen til dataene i dokumentet (tabell, skjema, implisitt felt, nestede data) eller bekymre deg for variasjoner på tvers av dokumentversjoner og formater.

I dette innlegget diskuterer vi følgende emner:

  • Suksesshistorier fra AWS-kunder og fordelene med den nye Queries-funksjonen
  • Hvordan Analyser Document Queries API hjelper til med å trekke ut informasjon fra dokumenter
  • En gjennomgang av Amazon Textract-konsollen
  • Kodeeksempler for å bruke Analyser Document Queries API
  • Hvordan behandle svaret med Amazon Textract-parserbiblioteket

Fordeler med den nye Queries-funksjonen

Tradisjonelle OCR-løsninger sliter med å trekke ut data nøyaktig fra de fleste semistrukturerte og ustrukturerte dokumenter på grunn av betydelige variasjoner i hvordan dataene er lagt ut på tvers av flere versjoner og formater av disse dokumentene. Du må implementere tilpasset etterbehandlingskode eller manuelt gjennomgå den utpakkede informasjonen fra disse dokumentene. Med Queries-funksjonen kan du spesifisere informasjonen du trenger i form av naturlig språkspørsmål (for eksempel «Hva er kundenavnet») og motta nøyaktig informasjon («John Doe») som en del av API-svaret. Funksjonen bruker en kombinasjon av visuelle, romlige og språkmodeller for å trekke ut informasjonen du søker med høy nøyaktighet. Spørringsfunksjonen er forhåndsopplært på et stort utvalg av semistrukturerte og ustrukturerte dokumenter. Noen eksempler inkluderer lønnsslipper, kontoutskrifter, W-2-er, lånesøknadsskjemaer, pantsedler og vaksine- og forsikringskort.

"Amazon Textract gjør det mulig for oss å automatisere dokumentbehandlingsbehovene til kundene våre. Med Queries-funksjonen vil vi kunne trekke ut data fra en rekke dokumenter med enda større fleksibilitet og nøyaktighet," sa Robert Jansen, administrerende direktør i TekStream Solutions. 'Vi ser på dette som en stor produktivitetsgevinst for våre bedriftskunder, som vil kunne bruke Queries-funksjonen som en del av vår IDP-løsning for raskt å få nøkkelinformasjon ut av dokumentene sine."

"Amazon Textract lar oss trekke ut tekst så vel som strukturerte elementer som skjemaer og tabeller fra bilder med høy nøyaktighet. Amazon Textract Queries har hjulpet oss drastisk å forbedre kvaliteten på informasjonsutvinning fra flere forretningskritiske dokumenter som sikkerhetsdatablad eller materialspesifikasjoner" sa Thorsten Warnecke, rektor | Leder for PC Analytics, Camelot Management Consultants. 'Spørringssystemet for naturlig språk tilbyr stor fleksibilitet og nøyaktighet som har redusert etterbehandlingsbelastningen vår og gjort det mulig for oss å legge til nye dokumenter til datautvinningsverktøyene våre raskere."

Hvordan Analyser Document Queries API hjelper til med å trekke ut informasjon fra dokumenter

Bedrifter har økt bruken av digitale plattformer, spesielt i lys av COVID-19-pandemien. De fleste organisasjoner tilbyr nå en digital måte å skaffe sine tjenester og produkter ved å bruke smarttelefoner og andre mobile enheter, noe som gir brukerne fleksibilitet, men som også øker omfanget der digitale dokumenter må gjennomgås, behandles og analyseres. I noen arbeidsbelastninger der for eksempel pantedokumenter, vaksinasjonskort, lønnsslipper, forsikringskort og andre dokumenter må analyseres digitalt, kan kompleksiteten ved datautvinning bli eksponentielt forverret fordi disse dokumentene mangler et standardformat eller har betydelige variasjoner i dataformat. på tvers av ulike versjoner av dokumentet.

Selv kraftige OCR-løsninger sliter med å trekke ut data nøyaktig fra disse dokumentene, og du må kanskje implementere tilpasset etterbehandling for disse dokumentene. Dette inkluderer kartlegging av mulige varianter av skjemanøkler til kundebaserte feltnavn eller inkludert tilpasset maskinlæring for å identifisere spesifikk informasjon i et ustrukturert dokument.

Den nye Analyser Document Queries API i Amazon Textract kan ta skriftlige spørsmål på naturlig språk som "Hva er renten?" og utfør kraftig AI- og ML-analyse på dokumentet for å finne ut ønsket informasjon og trekke den ut fra dokumentet uten etterbehandling. Spørringsfunksjonen krever ingen tilpasset modellopplæring eller oppsett av maler eller konfigurasjoner. Du kan raskt komme i gang ved å laste opp dokumentene dine og spesifisere spørsmål om disse dokumentene via Amazon Textract-konsollen, AWS kommandolinjegrensesnitt (AWS CLI), eller AWS SDK.

I påfølgende deler av dette innlegget går vi gjennom detaljerte eksempler på hvordan du bruker denne nye funksjonaliteten på vanlige arbeidsbelastninger og hvordan du bruker Analyser Document Queries API for å legge til smidighet i prosessen med å digitalisere arbeidsmengden.

Bruk Queries-funksjonen på Amazon Textract-konsollen

Før vi begynner med API og kodeeksempler, la oss se gjennom Amazon Textract-konsollen. Følgende bilde viser et eksempel på et vaksinasjonskort på Spørringer fanen for Analyser Document API på Amazon Textract-konsollen. Etter at du har lastet opp dokumentet til Amazon Textract-konsollen, velger du Spørringer i Konfigurer dokument seksjon. Du kan deretter legge til spørsmål i form av spørsmål om naturlig språk. Når du har lagt til alle søkene dine, velger du Bruk konfigurasjon. Svarene på spørsmålene finner du på Spørringer fanen.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Kodeeksempler

I denne delen forklarer vi hvordan du aktiverer Analyze Document API med Queries-parameteren for å få svar på naturlig språkspørsmål om dokumentet. Inndatadokumentet er enten i et byte-array-format eller plassert i en Amazon enkel lagringstjeneste (Amazon S3) bøtte. Du sender bildebytes til en Amazon Textract API-operasjon ved å bruke Bytes-egenskapen. Du kan for eksempel bruke Bytes egenskap for å sende et dokument lastet fra et lokalt filsystem. Bildebytes sendt ved hjelp av Bytes egenskapen må være base64-kodet. Koden din trenger kanskje ikke å kode dokumentfilbytes hvis du bruker en AWS SDK for å kalle Amazon Textract API-operasjoner. Alternativt kan du sende bilder som er lagret i en S3-bøtte til en Amazon Textract API-operasjon ved å bruke S3Object eiendom. Dokumenter som er lagret i en S3-bøtte trenger ikke være base64-kodet.

Du kan bruke Queries-funksjonen for å få svar fra ulike typer dokumenter som lønnsslipper, vaksinasjonskort, pantedokumenter, kontoutskrifter, W-2-skjemaer, 1099-skjemaer og andre. I de følgende delene går vi gjennom noen av disse dokumentene og viser hvordan Spørringsfunksjonen fungerer.

Lønnsslipp

I dette eksemplet går vi gjennom trinnene for å analysere en utbetalingsslipp ved å bruke Spørringsfunksjonen, som vist i følgende eksempelbilde.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Vi bruker følgende eksempel på Python-kode:

import boto3
import json #create a Textract Client
textract = boto3.client('textract') image_filename = "paystub.jpg" response = None
with open(image_filename, 'rb') as document: imageBytes = bytearray(document.read()) # Call Textract AnalyzeDocument by passing a document from local disk
response = textract.analyze_document( Document={'Bytes': imageBytes}, FeatureTypes=["QUERIES"], QueriesConfig={ "Queries": [{ "Text": "What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS" }, { "Text": "What is the current gross pay?", "Alias": "PAYSTUB_CURRENT_GROSS" }] })

Følgende kode er et eksempel på AWS CLI-kommando:

aws textract analyze-document —document '{"S3Object":{"Bucket":"your-s3-bucket","Name":"paystub.jpg"}}' —feature-types '["QUERIES"]' —queries-config '{"Queries":[{"Text":"What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS"}]}' 

La oss analysere svaret vi får for de to spørringene vi sendte til Analyze Document API i det foregående eksemplet. Følgende svar er trimmet til å kun vise de relevante delene:

{ "BlockType":"QUERY", "Id":"cbbba2fa-45be-452b-895b-adda98053153", #id of first QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT ] } ], "Query":{ "Text":"What is the year to date gross pay", #First Query "Alias":"PAYSTUB_YTD_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":87.0, "Text":"23,526.80", #Answer to the first Query "Geometry":{...}, "Id":"f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT }, { "BlockType":"QUERY", "Id":"4e2a17f0-154f-4847-954c-7c2bf2670c52", #id of second QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "350ab92c-4128-4aab-a78a-f1c6f6718959"#id of second QUERY_RESULT ] } ], "Query":{ "Text":"What is the current gross pay?", #Second Query "Alias":"PAYSTUB_CURRENT_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":95.0, "Text":"$ 452.43", #Answer to the Second Query "Geometry":{...}, "Id":"350ab92c-4128-4aab-a78a-f1c6f6718959" #id of second QUERY_RESULT }

Svaret har en BlockType of QUERY som viser spørsmålet som ble stilt og en Relationships seksjon som har ID for blokken som har svaret. Svaret er i BlockType of QUERY_RESULT. Aliaset som sendes inn som input til Analysis Document API, returneres som en del av svaret og kan brukes til å merke svaret.

Vi bruker Amazon Textract Response Parser for å trekke ut spørsmålene, aliaset og de tilsvarende svarene på disse spørsmålene:

import trp.trp2 as t2 d = t2.TDocumentSchema().load(response)
page = d.pages[0] # get_query_answers returns a list of [query, alias, answer]
query_answers = d.get_query_answers(page=page)
for x in query_answers: print(f"{image_filename},{x[1]},{x[2]}") from tabulate import tabulate
print(tabulate(query_answers, tablefmt="github"))

Den foregående koden returnerer følgende resultater:

|------------------------------------|-----------------------|-----------|
| What is the current gross pay? | PAYSTUB_CURRENT_GROSS | $ 452.43 |
| What is the year to date gross pay | PAYSTUB_YTD_GROSS | 23,526.80 |

Flere spørsmål og hele koden finner du i notatboken på GitHub repo.

Panteseddel

Analyze Document Queries API fungerer også bra med pantebrev som følgende.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Prosessen for å kalle opp API og behandle resultater er den samme som i forrige eksempel. Du kan finne det fullstendige kodeeksemplet på GitHub repo.

Følgende kode viser eksempelsvarene oppnådd ved bruk av API:

|------------------------------------------------------------|----------------------------------|---------------|
| When is this document dated? | MORTGAGE_NOTE_DOCUMENT_DATE | March 4, 2022 |
| What is the note date? | MORTGAGE_NOTE_DATE | March 4, 2022 |
| When is the Maturity date the borrower has to pay in full? | MORTGAGE_NOTE_MATURITY_DATE | April, 2032 |
| What is the note city and state? | MORTGAGE_NOTE_CITY_STATE | Anytown, ZZ |
| what is the yearly interest rate? | MORTGAGE_NOTE_YEARLY_INTEREST | 4.150% |
| Who is the lender? | MORTGAGE_NOTE_LENDER | AnyCompany |
| When does payments begin? | MORTGAGE_NOTE_BEGIN_PAYMENTS | April, 2022 |
| What is the beginning date of payment? | MORTGAGE_NOTE_BEGIN_DATE_PAYMENT | April, 2022 |
| What is the initial monthly payments? | MORTGAGE_NOTE_MONTHLY_PAYMENTS | $ 2500 |
| What is the interest rate? | MORTGAGE_NOTE_INTEREST_RATE | 4.150% |
| What is the principal amount borrower has to pay? | MORTGAGE_NOTE_PRINCIPAL_PAYMENT | $ 500,000 |

Vaksinasjonskort

Amazon Textract Queries-funksjonen fungerer også veldig bra for å trekke ut informasjon fra vaksinasjonskort eller kort som ligner den, som i følgende eksempel.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Prosessen for å kalle opp API og analysere resultatene er den samme som brukes for en betalingsslipp. Etter at vi har behandlet svaret, får vi følgende informasjon:

|------------------------------------------------------------|--------------------------------------|--------------|
| What is the patients first name | PATIENT_FIRST_NAME | Major |
| What is the patients last name | PATIENT_LAST_NAME | Mary |
| Which clinic site was the 1st dose COVID-19 administrated? | VACCINATION_FIRST_DOSE_CLINIC_SITE | XYZ |
| Who is the manufacturer for 1st dose of COVID-19? | VACCINATION_FIRST_DOSE_MANUFACTURER | Pfizer |
| What is the date for the 2nd dose covid-19? | VACCINATION_SECOND_DOSE_DATE | 2/8/2021 |
| What is the patient number | PATIENT_NUMBER | 012345abcd67 |
| Who is the manufacturer for 2nd dose of COVID-19? | VACCINATION_SECOND_DOSE_MANUFACTURER | Pfizer |
| Which clinic site was the 2nd dose covid-19 administrated? | VACCINATION_SECOND_DOSE_CLINIC_SITE | CVS |
| What is the lot number for 2nd dose covid-19? | VACCINATION_SECOND_DOSE_LOT_NUMBER | BB5678 |
| What is the date for the 1st dose covid-19? | VACCINATION_FIRST_DOSE_DATE | 1/18/21 |
| What is the lot number for 1st dose covid-19? | VACCINATION_FIRST_DOSE_LOT_NUMBER | AA1234 |
| What is the MI? | MIDDLE_INITIAL | M |

Den fullstendige koden finner du i notatboken på GitHub repo.

Forsikringskort

Spørringsfunksjonen fungerer også bra med forsikringskort som følgende.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Prosessen for å kalle API og prosessresultater er den samme som vist tidligere. Hele kodeeksemplet er tilgjengelig i notatboken på GitHub repo.

Følgende er eksempelsvarene oppnådd ved bruk av API:

|-------------------------------------|-----------------------------------|---------------|
| What is the insured name? | INSURANCE_CARD_NAME | Jacob Michael |
| What is the level of benefits? | INSURANCE_CARD_LEVEL_BENEFITS | SILVER |
| What is medical insurance provider? | INSURANCE_CARD_PROVIDER | Anthem |
| What is the OOP max? | INSURANCE_CARD_OOP_MAX | $6000/$12000 |
| What is the effective date? | INSURANCE_CARD_EFFECTIVE_DATE | 11/02/2021 |
| What is the office visit copay? | INSURANCE_CARD_OFFICE_VISIT_COPAY | $55/0% |
| What is the specialist visit copay? | INSURANCE_CARD_SPEC_VISIT_COPAY | $65/0% |
| What is the member id? | INSURANCE_CARD_MEMBER_ID | XZ 9147589652 |
| What is the plan type? | INSURANCE_CARD_PLAN_TYPE | Pathway X-EPO |
| What is the coinsurance amount? | INSURANCE_CARD_COINSURANCE | 30% |

Beste fremgangsmåter for å lage søk

Når du lager søkene dine, bør du vurdere følgende beste fremgangsmåter:

  • Generelt, still et naturlig språkspørsmål som starter med "Hva er", "Hvor er" eller "Hvem er." Unntaket er når du prøver å trekke ut standard nøkkelverdi-par, i så fall kan du sende nøkkelnavnet som en spørring.
  • Unngå dårlig formede eller grammatisk ukorrekte spørsmål, fordi disse kan resultere i uventede svar. For eksempel er et dårlig utformet søk "Når?" mens et velformulert spørsmål er "Når ble den første vaksinedosen administrert?"
  • Der det er mulig, bruk ord fra dokumentet for å konstruere spørringen. Selv om Queries-funksjonen prøver å gjøre akronym- og synonymmatching for noen vanlige bransjetermer som «SSN», «skatte-ID» og «Social Security number», forbedrer bruk av språk direkte fra dokumentet resultatene. For eksempel, hvis dokumentet sier «jobbfremgang», prøv å unngå å bruke varianter som «prosjektfremgang», «programfremgang» eller «jobbstatus».
  • Konstruer en spørring som inneholder ord fra både radoverskriften og kolonneoverskriften. For eksempel, i det foregående vaksinasjonskorteksemplet, for å vite datoen for den andre vaksinasjonen, kan du innramme spørringen som "Hvilken dato ble den andre dosen administrert?"
  • Lange svar øker svarforsinkelsen og kan føre til tidsavbrudd. Prøv å stille spørsmål som svarer med svar på mindre enn 100 ord.
  • Sender bare nøkkelnavnet ettersom spørsmålet fungerer når du prøver å trekke ut standard nøkkelverdi-par fra et skjema. Vi anbefaler å sette inn fullstendige spørsmål for alle andre utvinningstilfeller.
  • Vær så spesifikk som mulig. For eksempel:
    • Når dokumentet inneholder flere seksjoner (som "Låntaker" og "Medlåner") og begge seksjonene har et felt kalt "SSN", spør "Hva er SSN for låner?" og "Hva er SSN for medlåner?"
    • Når dokumentet har flere daterelaterte felt, vær spesifikk på søkespråket og spør "Hva er datoen dokumentet ble pålogget?" eller "Hva er fødselsdatoen for søknaden?" Unngå å stille tvetydige spørsmål som "Hva er datoen?"
  • Hvis du kjenner oppsettet til dokumentet på forhånd, gi plasseringstips for å forbedre nøyaktigheten av resultatene. Spør for eksempel «Hva er datoen øverst?» eller "Hva er datoen til venstre?" eller "Hva er datoen nederst?"

For mer informasjon om Queries-funksjonen, se Textract dokumentasjon.

konklusjonen

I dette innlegget ga vi en oversikt over den nye Queries-funksjonen til Amazon Textract for raskt og enkelt å hente informasjon fra dokumenter som lønnsslipper, pantesedler, forsikringskort og vaksinasjonskort basert på spørsmål om naturlig språk. Vi beskrev også hvordan du kan analysere responsen JSON.

For mer informasjon, se Analysere dokumenter , eller sjekk ut Amazon Textract-konsollen og prøv denne funksjonen.


Om forfatterne

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Uday Narayanan er senior løsningsarkitekt hos AWS. Han liker å hjelpe kunder med å finne innovative løsninger på komplekse forretningsutfordringer. Hans kjernefokusområder er dataanalyse, store datasystemer og maskinlæring. På fritiden liker han å spille sport, se på TV-serier og reise.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Rafael Caixeta er en senior løsningsarkitekt ved AWS med base i California. Han har over 10 års erfaring med å utvikle arkitekturer for skyen. Kjerneområdene hans er serverløs, containere og maskinlæring. På fritiden liker han å lese skjønnlitterære bøker og reise verden rundt.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Navneeth Nair er senior produktsjef, teknisk med Amazon Textract-teamet. Han er fokusert på å bygge maskinlæringsbaserte tjenester for AWS-kunder.

Spesifiser og trekk ut informasjon fra dokumenter ved å bruke den nye Queries-funksjonen i Amazon Textract PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Martin Schade er en Senior ML Product SA med Amazon Textract-teamet. Han har over 20 års erfaring med internett-relaterte teknologier, engineering og arkitektløsninger. Han begynte i AWS i 2014, og veiledet først noen av de største AWS-kundene til den mest effektive og skalerbare bruken av AWS-tjenester, og fokuserte senere på AI/ML med fokus på datasyn. For tiden er han besatt av å trekke ut informasjon fra dokumenter.

Tidstempel:

Mer fra AWS maskinlæring