Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract

amazontekst er en maskinlæringstjeneste (ML), der automatisk udtrækker tekst, håndskrift og data fra ethvert dokument eller billede. Amazon Textract tilbyder nu fleksibiliteten til at specificere de data, du skal bruge for at udtrække fra dokumenter ved hjælp af den nye Queries-funktion i Analyser Document API. Du behøver ikke at kende strukturen af ​​dataene i dokumentet (tabel, formular, underforstået felt, indlejrede data) eller bekymre dig om variationer på tværs af dokumentversioner og -formater.

I dette indlæg diskuterer vi følgende emner:

  • Succeshistorier fra AWS-kunder og fordelene ved den nye Queries-funktion
  • Hvordan Analyser Document Queries API hjælper med at udtrække information fra dokumenter
  • En gennemgang af Amazon Textract-konsollen
  • Kode eksempler for at bruge Analyser Document Queries API
  • Sådan behandler du svaret med Amazon Textract-parserbiblioteket

Fordele ved den nye Queries-funktion

Traditionelle OCR-løsninger har svært ved at udtrække data nøjagtigt fra de fleste semistrukturerede og ustrukturerede 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 implementere tilpasset efterbehandlingskode eller manuelt gennemgå de udtrukne oplysninger fra disse dokumenter. Med Queries-funktionen kan du specificere de oplysninger, du har brug for i form af naturlige sprogspørgsmål (for eksempel "Hvad er kundens navn") og modtage de nøjagtige oplysninger ("John Doe") som en del af API-svaret. Funktionen bruger en kombination af visuelle, rumlige og sproglige modeller til at udtrække den information, du søger, med høj nøjagtighed. Forespørgselsfunktionen er fortrænet på en lang række semistrukturerede og ustrukturerede dokumenter. Nogle eksempler omfatter lønsedler, kontoudtog, W-2'er, låneansøgningsformularer, pantsedler og vaccine- og forsikringskort.

"Amazon Textract gør det muligt for os at automatisere vores kunders behov for dokumentbehandling. Med Queries-funktionen vil vi være i stand til at udtrække data fra en række forskellige dokumenter med endnu større fleksibilitet og nøjagtighed," sagde Robert Jansen, administrerende direktør hos TekStream Solutions. "Vi ser dette som en stor produktivitetsgevinst for vores erhvervskunder, som vil være i stand til at bruge Queries-kapaciteten som en del af vores IDP-løsning til hurtigt at få nøgleinformation ud af deres dokumenter."

"Amazon Textract gør det muligt for os at udtrække tekst såvel som strukturerede elementer som formularer og tabeller fra billeder med høj nøjagtighed. Amazon Textract Queries har hjulpet os drastisk at forbedre kvaliteten af ​​informationsudtrækning fra flere forretningskritiske dokumenter såsom sikkerhedsdatablade eller materialespecifikationer" sagde Thorsten Warnecke, rektor | Leder af PC Analytics, Camelot Management Consultants. "Det naturlige sprogforespørgselssystem tilbyder stor fleksibilitet og nøjagtighed, hvilket har reduceret vores efterbehandlingsbelastning og gjort det muligt for os at tilføje nye dokumenter til vores dataudtræksværktøjer hurtigere."

Hvordan Analyser Document Queries API hjælper med at udtrække information fra dokumenter

Virksomheder har øget deres anvendelse af digitale platforme, især i lyset af COVID-19-pandemien. De fleste organisationer tilbyder nu en digital måde at erhverve deres tjenester og produkter på ved hjælp af smartphones og andre mobile enheder, hvilket giver brugerne fleksibilitet, men som også øger omfanget, hvormed digitale dokumenter skal gennemgås, behandles og analyseres. I nogle arbejdsbyrder, hvor for eksempel realkreditdokumenter, vaccinationskort, lønsedler, forsikringskort og andre dokumenter skal analyseres digitalt, kan kompleksiteten af ​​dataudtræk blive eksponentielt forværret, fordi disse dokumenter mangler et standardformat eller har betydelige variationer i dataformat. på tværs af forskellige versioner af dokumentet.

Selv kraftfulde OCR-løsninger har svært ved at udtrække data nøjagtigt fra disse dokumenter, og du skal muligvis implementere tilpasset efterbehandling af disse dokumenter. Dette omfatter kortlægning af mulige variationer af formularnøgler til kundebaserede feltnavne eller inkluderende tilpasset maskinlæring for at identificere specifikke oplysninger i et ustruktureret dokument.

Den nye Analyze Document Queries API i Amazon Textract kan tage skriftlige spørgsmål i naturligt sprog såsom "Hvad er renten?" og udføre kraftfuld AI- og ML-analyse på dokumentet for at finde ud af den ønskede information og udtrække den fra dokumentet uden nogen efterbehandling. Forespørgselsfunktionen kræver ikke nogen tilpasset modeltræning eller opsætning af skabeloner eller konfigurationer. Du kan hurtigt komme i gang ved at uploade dine dokumenter og angive spørgsmål til disse dokumenter via Amazon Textract-konsollen, AWS kommandolinjegrænseflade (AWS CLI) eller AWS SDK.

I de efterfølgende afsnit af dette indlæg gennemgår vi detaljerede eksempler på, hvordan man bruger denne nye funktionalitet på almindelige arbejdsbyrdebrugssager, og hvordan man bruger Analyze Document Queries API til at tilføje fleksibilitet til processen med at digitalisere din arbejdsbyrde.

Brug Queries-funktionen på Amazon Textract-konsollen

Før vi går i gang med API og kodeeksempler, lad os gennemgå Amazon Textract-konsollen. Følgende billede viser et eksempel på et vaccinationskort på Forespørgsler fanen for Analyser Document API på Amazon Textract-konsollen. Når du har uploadet dokumentet til Amazon Textract-konsollen, skal du vælge Forespørgsler i Konfigurer dokument afsnit. Du kan derefter tilføje forespørgsler i form af spørgsmål i naturligt sprog. Når du har tilføjet alle dine forespørgsler, skal du vælge Anvend konfiguration. Svarene på spørgsmålene findes på Forespørgsler fane.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Kode eksempler

I dette afsnit forklarer vi, hvordan du aktiverer Analyze Document API med Queries-parameteren for at få svar på spørgsmål i naturligt sprog om dokumentet. Inputdokumentet er enten i et byte-array-format eller placeret i en Amazon Simple Storage Service (Amazon S3) spand. Du sender billedbytes til en Amazon Textract API-operation ved at bruge egenskaben Bytes. Du kan f.eks. bruge Bytes egenskab for at sende et dokument indlæst fra et lokalt filsystem. Billedbytes videregivet ved hjælp af Bytes egenskaben skal være base64-kodet. Din kode behøver muligvis ikke at kode dokumentfilbytes, hvis du bruger en AWS SDK til at kalde Amazon Textract API-operationer. Alternativt kan du sende billeder gemt i en S3-bøtte til en Amazon Textract API-operation ved at bruge S3Object ejendom. Dokumenter gemt i en S3-bøtte behøver ikke at være base64-kodet.

Du kan bruge funktionen Forespørgsler til at få svar fra forskellige typer dokumenter såsom lønsedler, vaccinationskort, pantebreve, kontoudtog, W-2-formularer, 1099-formularer og andre. I de følgende afsnit gennemgår vi nogle af disse dokumenter og viser, hvordan funktionen Forespørgsler fungerer.

Lønseddel

I dette eksempel gennemgår vi trinene til at analysere en lønseddel ved hjælp af Queries-funktionen, som vist i det følgende eksempelbillede.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vi bruger 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"}]}' 

Lad os analysere det svar, vi får for de to forespørgsler, vi sendte til Analyze Document API i det foregående eksempel. Følgende svar er blevet trimmet til kun at vise de relevante dele:

{ "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 der viser det spørgsmål, der blev stillet og en Relationships sektion, der har ID'et for den blok, der har svaret. Svaret er i BlockType of QUERY_RESULT. Aliaset, der sendes ind som input til Analyze Document API, returneres som en del af svaret og kan bruges til at mærke svaret.

Vi bruger Amazon Textract Response Parser for at udtrække spørgsmålene, aliaset og de tilsvarende svar på disse spørgsmål:

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 kode 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ørgsmål og den fulde kode kan findes i notesbogen på GitHub repo.

Pantebrev

Analyze Document Queries API fungerer også godt med pantnotaer som følgende.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Processen til at kalde API'en og behandle resultaterne er den samme som i det foregående eksempel. Du kan finde det fulde kodeeksempel på GitHub repo.

Følgende kode viser eksempelsvarene opnået ved hjælp af API'en:

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

Vaccinationskort

Amazon Textract Queries-funktionen fungerer også meget godt til at udtrække information fra vaccinationskort eller kort, der ligner den, som i følgende eksempel.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Processen til at kalde API'en og analysere resultaterne er den samme som for en betalingsseddel. Efter at vi har behandlet svaret, får vi følgende oplysninger:

|------------------------------------------------------------|--------------------------------------|--------------|
| 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 fulde kode kan findes i notesbogen på GitHub repo.

Forsikringskort

Forespørgselsfunktionen fungerer også godt med forsikringskort som følgende.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Processen til at kalde API'en og procesresultaterne er den samme som vist tidligere. Det fulde kodeeksempel er tilgængeligt i notesbogen på GitHub repo.

Følgende er eksemplerne på svar opnået ved hjælp af API'en:

|-------------------------------------|-----------------------------------|---------------|
| 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% |

Bedste fremgangsmåder til at lave forespørgsler

Når du udarbejder dine forespørgsler, skal du overveje følgende bedste praksis:

  • Stil generelt et naturligt sprogspørgsmål, der starter med "Hvad er", "Hvor er" eller "Hvem er." Undtagelsen er, når du forsøger at udtrække standardnøgleværdi-par, i hvilket tilfælde du kan sende nøglenavnet som en forespørgsel.
  • Undgå dårligt udformede eller grammatisk forkerte spørgsmål, da disse kan resultere i uventede svar. For eksempel er en dårligt udformet forespørgsel "Hvornår?" hvorimod en velformuleret forespørgsel er "Hvornår blev den første vaccinedosis administreret?"
  • Hvor det er muligt, skal du bruge ord fra dokumentet til at konstruere forespørgslen. Selvom Queries-funktionen forsøger at lave akronym- og synonymmatchning for nogle almindelige brancheudtryk som "SSN", "skatte-id" og "cpr-nummer", forbedrer det resultaterne ved at bruge sprog direkte fra dokumentet. For eksempel, hvis dokumentet siger "jobfremskridt", så prøv at undgå at bruge variationer som "projektfremskridt", "programfremskridt" eller "jobstatus".
  • Konstruer en forespørgsel, der indeholder ord fra både rækkeoverskriften og kolonneoverskriften. For at kende datoen for den anden vaccination kan du f.eks. indramme forespørgslen som "Hvilken dato blev den 2. dosis administreret?"
  • Lange svar øger svarforsinkelsen og kan føre til timeouts. Prøv at stille spørgsmål, der svarer med svar på mindre end 100 ord.
  • Sender kun nøglenavnet, da spørgsmålet virker, når du forsøger at udtrække standardnøgleværdi-par fra en formular. Vi anbefaler, at du formulerer fulde spørgsmål til alle andre ekstraktionsbrug.
  • Vær så specifik som muligt. For eksempel:
    • Når dokumentet indeholder flere sektioner (såsom "Låntager" og "Medlåner") og begge sektioner har et felt kaldet "SSN", spørg "Hvad er SSN for låner?" og "Hvad er SSN for medlåntager?"
    • Når dokumentet har flere datorelaterede felter, skal du være specifik i forespørgselssproget og spørge "Hvad er den dato, dokumentet blev underskrevet på?" eller "Hvad er fødselsdatoen for ansøgningen?" Undgå at stille tvetydige spørgsmål som "Hvad er datoen?"
  • Hvis du kender layoutet af dokumentet på forhånd, så giv placeringstip for at forbedre resultaternes nøjagtighed. Spørg for eksempel "Hvad er datoen øverst?" eller "Hvad er datoen til venstre?" eller "Hvad er datoen nederst?"

For mere information om funktionen Queries, se Textract dokumentation.

Konklusion

I dette indlæg har vi givet et overblik over den nye Queries-funktion i Amazon Textract til hurtigt og nemt at hente information fra dokumenter såsom lønsedler, pantsedler, forsikringskort og vaccinationskort baseret på spørgsmål om naturligt sprog. Vi beskrev også, hvordan du kan parse svaret JSON.

For mere information, se Analyse af dokumenter , eller tjek Amazon Textract-konsollen og prøv denne funktion.


Om forfatterne

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Uday Narayanan er Sr. Solutions Architect hos AWS. Han nyder at hjælpe kunder med at finde innovative løsninger på komplekse forretningsmæssige udfordringer. Hans kernefokusområder er dataanalyse, big data-systemer og maskinlæring. I sin fritid nyder han at dyrke sport, overse tv-serier og rejse.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Rafael Caixeta er Sr. Solutions Architect hos AWS med base i Californien. Han har over 10 års erfaring med at udvikle arkitekturer til skyen. Hans kerneområder er serverløs, containere og maskinlæring. I sin fritid nyder han at læse skønlitterære bøger og rejse verden rundt.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Navneeth Nair er senior produktchef, teknisk hos Amazon Textract-teamet. Han er fokuseret på at bygge maskinlæringsbaserede tjenester til AWS-kunder.

Angiv og udtræk oplysninger fra dokumenter ved hjælp af den nye Queries-funktion i Amazon Textract PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Martin Schade er en Senior ML Product SA med Amazon Textract-teamet. Han har over 20 års erfaring med internet-relaterede teknologier, ingeniør- og arkitektløsninger. Han kom til AWS i 2014, hvor han først vejledte nogle af de største AWS-kunder i den mest effektive og skalerbare brug af AWS-tjenester, og senere fokuserede han på AI/ML med fokus på computervision. I øjeblikket er han besat af at udtrække information fra dokumenter.

Tidsstempel:

Mere fra AWS maskinindlæring