Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Text

Ekstrakt z amazonki to usługa uczenia maszynowego (ML), która automatycznie wyodrębnia tekst, charakter pisma odręcznego i dane z dowolnego dokumentu lub obrazu. Amazon Texttract oferuje teraz elastyczność w zakresie określania danych, które należy wyodrębnić z dokumentów, korzystając z nowej funkcji Zapytania w interfejsie API Analyze Document. Nie musisz znać struktury danych w dokumencie (tabela, formularz, domyślne pole, dane zagnieżdżone) ani martwić się różnicami między wersjami i formatami dokumentu.

W tym poście omawiamy następujące tematy:

  • Historie sukcesu klientów AWS i zalety nowej funkcji Zapytania
  • W jaki sposób interfejs API analizy zapytań dotyczących dokumentów pomaga wyodrębniać informacje z dokumentów
  • Opis przejścia konsoli Amazon Texttract
  • Przykłady kodu umożliwiające wykorzystanie interfejsu API analizowania zapytań o dokumenty
  • Jak przetworzyć odpowiedź za pomocą biblioteki parsera Amazon Textract

Korzyści z nowej funkcji Zapytania

Tradycyjne rozwiązania OCR mają trudności z dokładnym wyodrębnieniem danych z większości dokumentów częściowo i nieustrukturyzowanych ze względu na znaczne różnice w układzie danych w różnych wersjach i formatach tych dokumentów. Musisz zaimplementować niestandardowy kod przetwarzania końcowego lub ręcznie przejrzeć informacje wyodrębnione z tych dokumentów. Dzięki funkcji Zapytania możesz określić potrzebne informacje w formie pytań w języku naturalnym (na przykład „Jak nazywa się klient”) i otrzymać dokładne informacje („John Doe”) w ramach odpowiedzi API. Ta funkcja wykorzystuje kombinację modeli wizualnych, przestrzennych i językowych w celu wyodrębnienia poszukiwanych informacji z dużą dokładnością. Funkcja Zapytania jest wstępnie przeszkolona w przypadku wielu różnych dokumentów o częściowo ustrukturyzowanej i nieustrukturyzowanej strukturze. Niektóre przykłady obejmują odcinki wypłat, wyciągi bankowe, formularze W-2, formularze wniosków o pożyczkę, noty hipoteczne oraz karty szczepionek i ubezpieczeń.

"Amazon Texttract umożliwia nam automatyzację potrzeb naszych klientów w zakresie przetwarzania dokumentów. Dzięki funkcji Zapytania będziemy mogli wyodrębniać dane z różnorodnych dokumentów z jeszcze większą elastycznością i dokładnością," powiedział Robert Jansen, dyrektor generalny TekStream Solutions. "Postrzegamy to jako dużą korzyść w zakresie produktywności dla naszych klientów biznesowych, którzy będą mogli korzystać z funkcji Zapytania w ramach naszego rozwiązania IDP, aby szybko uzyskać kluczowe informacje ze swoich dokumentów."

"Amazon Textract umożliwia nam wyodrębnianie tekstu oraz elementów strukturalnych, takich jak formularze i tabele, z obrazów z dużą dokładnością. Usługa Amazon Text Queries pomogła nam drastycznie poprawić jakość wydobywania informacji z kilku dokumentów o znaczeniu krytycznym dla firmy, takich jak karty charakterystyki lub specyfikacje materiałów" powiedział Thorsten Warnecke, dyrektor | Szef działu analityki komputerowej, konsultanci ds. zarządzania Camelot. "System zapytań w języku naturalnym zapewnia dużą elastyczność i dokładność, co zmniejszyło obciążenie związane z przetwarzaniem końcowym i umożliwiło nam szybsze dodawanie nowych dokumentów do naszych narzędzi do ekstrakcji danych."

W jaki sposób interfejs API analizy zapytań dotyczących dokumentów pomaga wyodrębniać informacje z dokumentów

Firmy zwiększyły wykorzystanie platform cyfrowych, szczególnie w świetle pandemii Covid-19. Większość organizacji oferuje obecnie cyfrowy sposób nabywania usług i produktów za pomocą smartfonów i innych urządzeń mobilnych, co zapewnia użytkownikom elastyczność, ale także zwiększa skalę, z jaką należy przeglądać, przetwarzać i analizować dokumenty cyfrowe. W przypadku niektórych zadań, gdy na przykład dokumenty hipoteczne, karty szczepień, odcinki wypłat, karty ubezpieczeniowe i inne dokumenty muszą być analizowane cyfrowo, złożoność ekstrakcji danych może gwałtownie wzrosnąć, ponieważ dokumenty te nie mają standardowego formatu lub mają znaczne różnice w formacie danych w różnych wersjach dokumentu.

Nawet zaawansowane rozwiązania OCR mają problemy z dokładnym wyodrębnieniem danych z tych dokumentów i może być konieczne wdrożenie niestandardowego przetwarzania końcowego tych dokumentów. Obejmuje to mapowanie możliwych odmian kluczy formularzy na nazwy pól natywne dla klienta lub włączenie niestandardowego uczenia maszynowego w celu identyfikacji określonych informacji w nieustrukturyzowanym dokumencie.

Nowy interfejs API analizowania zapytań o dokumenty w Amazon Texttract może odpowiadać na pytania pisane w języku naturalnym, takie jak „Jaka jest stopa procentowa?” i wykonaj potężną analizę AI i ML na dokumencie, aby znaleźć pożądane informacje i wyodrębnić je z dokumentu bez żadnego przetwarzania końcowego. Funkcja zapytań nie wymaga żadnego niestandardowego szkolenia modelu ani konfigurowania szablonów ani konfiguracji. Możesz szybko rozpocząć, przesyłając dokumenty i zadając pytania dotyczące tych dokumentów za pośrednictwem konsoli Amazon Texttract, pliku Interfejs wiersza poleceń AWS (AWS CLI) lub AWS SDK.

W kolejnych sekcjach tego posta omówimy szczegółowe przykłady użycia tej nowej funkcji w typowych przypadkach użycia obciążenia oraz sposobu korzystania z interfejsu API analizowania zapytań o dokumenty, aby zwiększyć elastyczność procesu digitalizacji obciążenia.

Użyj funkcji Zapytania w konsoli Amazon Texttract

Zanim zaczniemy korzystać z interfejsu API i próbek kodu, przyjrzyjmy się konsoli Amazon Texttract. Poniższy obrazek przedstawia przykładową kartę szczepień na Pytania zakładka interfejsu API Analyze Document w konsoli Amazon Texttract. Po przesłaniu dokumentu do konsoli Amazon Texttract wybierz Pytania Skonfiguruj dokument Sekcja. Następnie możesz dodawać zapytania w formie pytań w języku naturalnym. Po dodaniu wszystkich zapytań wybierz Zastosuj konfigurację. Odpowiedzi na pytania znajdują się na stronie Pytania patka.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przykłady kodu

W tej sekcji wyjaśniamy, jak wywołać interfejs API Analizy dokumentu z parametrem Queries, aby uzyskać odpowiedzi na pytania dotyczące dokumentu w języku naturalnym. Dokument wejściowy jest albo w formacie tablicy bajtów, albo znajduje się w pliku Usługa Amazon Simple Storage Łyżka (Amazon S3). Przekazujesz bajty obrazu do operacji API Amazon Texttract za pomocą właściwości Bytes. Można na przykład użyć Bytes właściwość umożliwiająca przekazanie dokumentu załadowanego z lokalnego systemu plików. Bajty obrazu przekazane przy użyciu metody Bytes właściwość musi być zakodowana w formacie base64. Twój kod może nie wymagać kodowania bajtów pliku dokumentu, jeśli używasz pakietu AWS SDK do wywoływania operacji Amazon Textract API. Alternatywnie możesz przekazać obrazy przechowywane w zasobniku S3 do operacji API Amazon Texttract za pomocą S3Object nieruchomość. Dokumenty przechowywane w wiadrze S3 nie muszą być kodowane w standardzie Base64.

Możesz użyć funkcji Zapytania, aby uzyskać odpowiedzi z różnych typów dokumentów, takich jak odcinki wypłat, karty szczepień, dokumenty hipoteczne, wyciągi bankowe, formularze W-2, formularze 1099 i inne. W poniższych sekcjach omówimy niektóre z tych dokumentów i pokażemy, jak działa funkcja Zapytania.

Odbiór płatności

W tym przykładzie przeprowadzimy analizę odcinka wypłaty za pomocą funkcji Zapytania, jak pokazano na poniższym przykładowym obrazie.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Używamy następującego przykładowego kodu Pythona:

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

Poniższy kod to przykładowe polecenie CLI AWS:

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

Przeanalizujmy odpowiedź otrzymaną na dwa zapytania przekazane do interfejsu API analizy dokumentu w poprzednim przykładzie. Następująca odpowiedź została przycięta, aby pokazać tylko odpowiednie części:

{ "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 }

Odpowiedź ma BlockType of QUERY który pokazuje zadane pytanie oraz a Relationships sekcja zawierająca identyfikator bloku zawierającego odpowiedź. Odpowiedź znajduje się w BlockType of QUERY_RESULT. Alias ​​przekazywany jako dane wejściowe do interfejsu API Analyze Document jest zwracany jako część odpowiedzi i może zostać użyty do oznaczenia odpowiedzi.

Używamy Parser odpowiedzi Amazon Textract aby wyodrębnić tylko pytania, aliasy i odpowiadające im odpowiedzi na te pytania:

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

Poprzedni kod zwraca następujące wyniki:

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

Więcej pytań i pełny kod znajdziesz w notatniku na stronie GitHub repo.

Nota hipoteczna

Interfejs API analizowania zapytań o dokumenty działa również dobrze z notami hipotecznymi, takimi jak poniższe.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Proces wywoływania interfejsu API i wyników przetwarzania jest taki sam jak w poprzednim przykładzie. Pełny przykład kodu można znaleźć na stronie GitHub repo.

Poniższy kod przedstawia przykładowe odpowiedzi uzyskane przy użyciu 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 |

Karta szczepień

Funkcja Amazon Textract Queries działa również bardzo dobrze w celu wyodrębnienia informacji z kart szczepień lub kart, które ją przypominają, jak w poniższym przykładzie.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Proces wywoływania interfejsu API i analizowania wyników jest taki sam, jak w przypadku odcinka wypłaty. Po przetworzeniu odpowiedzi otrzymujemy następujące informacje:

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

Pełny kod można znaleźć w notatniku na stronie GitHub repo.

Karta ubezpieczeniowa

Funkcja Zapytania działa również dobrze w przypadku kart ubezpieczeniowych, takich jak poniższe.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Proces wywoływania interfejsu API i wyników przetwarzania jest taki sam, jak pokazano wcześniej. Pełny przykład kodu jest dostępny w notatniku na stronie GitHub repo.

Poniżej znajdują się przykładowe odpowiedzi uzyskane przy użyciu 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% |

Najlepsze praktyki dotyczące tworzenia zapytań

Tworząc zapytania, weź pod uwagę następujące najlepsze praktyki:

  • Ogólnie rzecz biorąc, zadawaj pytanie w języku naturalnym zaczynające się od „Co jest”, „Gdzie jest” lub „Kto jest”. Wyjątkiem jest sytuacja, gdy próbujesz wyodrębnić standardowe pary klucz-wartość. W takim przypadku możesz przekazać nazwę klucza jako zapytanie.
  • Unikaj pytań źle sformułowanych lub niepoprawnych gramatycznie, ponieważ mogą one skutkować nieoczekiwanymi odpowiedziami. Na przykład źle sformułowane zapytanie brzmi „Kiedy?” podczas gdy dobrze sformułowane pytanie brzmi: „Kiedy podano pierwszą dawkę szczepionki?”
  • Jeśli to możliwe, do skonstruowania zapytania użyj słów z dokumentu. Chociaż funkcja Zapytania próbuje dopasować akronimy i synonimy do niektórych popularnych terminów branżowych, takich jak „SSN”, „identyfikator podatkowy” i „numer ubezpieczenia społecznego”, użycie języka bezpośrednio z dokumentu poprawia wyniki. Na przykład, jeśli w dokumencie jest napisane „postęp zadania”, staraj się unikać stosowania odmian takich jak „postęp projektu”, „postęp programu” lub „status zadania”.
  • Utwórz zapytanie zawierające słowa z nagłówka wiersza i nagłówka kolumny. Na przykład w powyższym przykładzie karty szczepień, aby poznać datę drugiego szczepienia, możesz sformułować zapytanie w następujący sposób: „Która data została podana 2. dawka?”
  • Długie odpowiedzi zwiększają opóźnienie odpowiedzi i mogą prowadzić do przekroczenia limitu czasu. Spróbuj zadawać pytania zawierające odpowiedź zawierającą mniej niż 100 słów.
  • Przekazywanie tylko nazwy klucza jako pytania działa podczas próby wyodrębnienia standardowych par klucz-wartość z formularza. Zalecamy formułowanie pełnych pytań dla wszystkich innych przypadków użycia ekstrakcji.
  • Bądź jak najbardziej konkretny. Na przykład:
    • Jeśli dokument zawiera wiele sekcji (takich jak „Pożyczkobiorca” i „Współkredytobiorca”), a w obu sekcjach znajduje się pole o nazwie „SSN”, zapytaj „Jaki jest numer SSN dla pożyczkobiorcy?” oraz „Jaki jest numer SSN dla współkredytobiorcy?”
    • Jeśli dokument zawiera wiele pól związanych z datą, określ konkretny język zapytań i zadaj pytanie „Jaka jest data podpisania dokumentu?” lub „Jaka jest data urodzenia wniosku?” Unikaj zadawania dwuznacznych pytań typu „Jaka jest data?”
  • Jeśli znasz wcześniej układ dokumentu, podaj wskazówki dotyczące lokalizacji, aby poprawić dokładność wyników. Zapytaj na przykład „Jaka jest data na górze?” lub „Jaka jest data po lewej stronie?” lub „Jaka jest data na dole?”

Aby uzyskać więcej informacji na temat funkcji Zapytania, zapoznaj się z Tekstem dokumentacja.

Wnioski

W tym poście omówiliśmy nową funkcję Zapytania w Amazon Texttract, która umożliwia szybkie i łatwe wyszukiwanie informacji z dokumentów, takich jak odcinki wypłat, noty hipoteczne, karty ubezpieczeniowe i karty szczepień, w oparciu o pytania w języku naturalnym. Opisaliśmy również, jak można analizować odpowiedź JSON.

Aby uzyskać więcej informacji, zobacz Analiza dokumentów lub sprawdź konsolę Amazon Texttract i wypróbuj tę funkcję.


O autorach

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Uday Narajana jest starszym architektem rozwiązań w AWS. Lubi pomagać klientom w znajdowaniu innowacyjnych rozwiązań złożonych wyzwań biznesowych. Jego główne obszary zainteresowań to analityka danych, systemy Big Data i uczenie maszynowe. W wolnym czasie lubi uprawiać sport, oglądać programy telewizyjne i podróżować.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Rafaela Caixety jest starszym architektem rozwiązań w AWS z siedzibą w Kalifornii. Ma ponad 10-letnie doświadczenie w tworzeniu architektur dla chmury. Jego główne obszary to rozwiązania bezserwerowe, kontenery i uczenie maszynowe. W wolnym czasie czyta książki fantasy i podróżuje po świecie.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Navneetha Naira jest starszym menedżerem produktu, technicznym w zespole Amazon Textract. Koncentruje się na budowaniu usług opartych na uczeniu maszynowym dla klientów AWS.

Określ i wyodrębnij informacje z dokumentów za pomocą nowej funkcji Zapytania w Amazon Textract PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Marcin Schade jest Senior ML Product SA z zespołem Amazon Texttract. Posiada ponad 20-letnie doświadczenie z technologiami internetowymi, rozwiązaniami inżynieryjnymi i architektonicznymi. Dołączył do AWS w 2014 roku, najpierw prowadząc największych klientów AWS w zakresie najbardziej wydajnego i skalowalnego korzystania z usług AWS, a później skoncentrował się na AI/ML, koncentrując się na wizji komputerowej. Obecnie ma obsesję na punkcie wydobywania informacji z dokumentów.

Znak czasu:

Więcej z Uczenie maszynowe AWS