Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1

Organizacje z różnych branż, takich jak opieka zdrowotna, finanse i pożyczki, prawo, handel detaliczny i produkcja, często mają do czynienia z wieloma dokumentami w swoich codziennych procesach biznesowych. Dokumenty te zawierają kluczowe informacje, które są kluczowe do podejmowania decyzji na czas w celu utrzymania najwyższego poziomu zadowolenia klientów, szybszego wdrażania klientów i niższej rotacji klientów. W większości przypadków dokumenty są przetwarzane ręcznie w celu wyodrębnienia informacji i spostrzeżeń, co jest czasochłonne, podatne na błędy, kosztowne i trudne do skalowania. Obecnie dostępna jest ograniczona automatyzacja przetwarzania i wydobywania informacji z tych dokumentów. Inteligentne przetwarzanie dokumentów (IDP) z usługami sztucznej inteligencji (AI) AWS pomaga zautomatyzować wydobywanie informacji z dokumentów różnych typów i formatów, szybko i z dużą dokładnością, bez konieczności posiadania umiejętności uczenia maszynowego (ML). Szybsze wyodrębnianie informacji z dużą dokładnością pomaga w podejmowaniu decyzji biznesowych o wysokiej jakości na czas, przy jednoczesnym obniżeniu kosztów ogólnych.

Chociaż etapy przepływu pracy IDP mogą się różnić i zależą od przypadku użycia i wymagań biznesowych, na poniższym rysunku przedstawiono etapy, które są zwykle częścią przepływu pracy IDP. Przetwarzanie dokumentów, takich jak formularze podatkowe, roszczenia, notatki medyczne, formularze nowych klientów, faktury, umowy prawne i inne, to tylko kilka przypadków użycia IDP.

W tej dwuczęściowej serii omawiamy, w jaki sposób można zautomatyzować i inteligentnie przetwarzać dokumenty na dużą skalę za pomocą usług AWS AI. W tym poście omówimy pierwsze trzy fazy przepływu pracy IDP. W część 2, omówimy pozostałe fazy przepływu pracy.

Omówienie rozwiązania

Poniższy diagram architektury przedstawia etapy przepływu pracy IDP. Rozpoczyna się etapem przechwytywania danych w celu bezpiecznego przechowywania i agregowania różnych formatów plików (PDF, JPEG, PNG, TIFF) oraz układów dokumentów. Następnym etapem jest klasyfikacja, w której kategoryzujesz dokumenty (takie jak umowy, formularze roszczeń, faktury lub paragony), a następnie wyodrębniasz dokumenty. Na etapie wyodrębniania możesz wyodrębnić z dokumentów istotne informacje biznesowe. Te wyodrębnione dane są często wykorzystywane do zbierania informacji poprzez analizę danych lub przesyłane do dalszych systemów, takich jak bazy danych lub systemy transakcyjne. Następnym etapem jest wzbogacenie, w którym dokumenty można wzbogacić poprzez redagowanie chronionych informacji zdrowotnych (PHI) lub danych osobowych (PII), niestandardowe wyodrębnianie terminów biznesowych i tak dalej. Wreszcie, na etapie przeglądu i walidacji, można włączyć personel ludzki do przeglądu dokumentów, aby zapewnić dokładność wyniku.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Na potrzeby tego posta bierzemy pod uwagę zestaw przykładowych dokumentów, takich jak wyciągi bankowe, faktury i paragony sklepowe. Próbki dokumentów wraz z przykładowym kodem można znaleźć w naszym Repozytorium GitHub. W kolejnych sekcjach przeprowadzimy Cię przez te przykłady kodu wraz z prawdziwym praktycznym zastosowaniem. Pokazujemy, jak możesz wykorzystać możliwości ML dzięki Ekstrakt z amazonki, Amazon Comprehend, Amazon AI Augmented (Amazon A2I) do przetwarzania dokumentów i walidacji danych z nich pobranych.

Amazon Text to usługa ML, która automatycznie wyodrębnia tekst, pismo ręczne i dane z zeskanowanych dokumentów. Wykracza poza proste optyczne rozpoznawanie znaków (OCR) w celu identyfikacji, zrozumienia i wyodrębnienia danych z formularzy i tabel. Amazon Texttract wykorzystuje ML do odczytywania i przetwarzania dowolnego rodzaju dokumentów, dokładnie wyodrębniając tekst, pismo odręczne, tabele i inne dane bez ręcznego wysiłku.

Amazon Comprehend to usługa przetwarzania języka naturalnego (NLP), która wykorzystuje ML do uzyskiwania wglądu w treść dokumentów. Amazon Comprehend może identyfikować krytyczne elementy w dokumentach, w tym odniesienia do języka, ludzi i miejsc, i klasyfikować je do odpowiednich tematów lub klastrów. Może przeprowadzać analizę sentymentu w celu określenia sentymentu dokumentu w czasie rzeczywistym za pomocą wykrywania pojedynczego dokumentu lub partii. Na przykład może analizować komentarze w poście na blogu, aby wiedzieć, czy Twoi czytelnicy lubią ten post, czy nie. Amazon Comprehend wykrywa również adresy typu PII, numery kont bankowych i numery telefonów w dokumentach tekstowych w czasie rzeczywistym i asynchronicznych zadaniach wsadowych. Może również redagować jednostki PII w asynchronicznych zadaniach wsadowych.

Amazon A2I to usługa ML, która ułatwia tworzenie przepływów pracy wymaganych do weryfikacji przez człowieka. Amazon A2I zapewnia wszystkim programistom ocenę przez człowieka, usuwając niezróżnicowany ciężar związany z budowaniem systemów oceny przez człowieka lub zarządzaniem dużą liczbą recenzentów, niezależnie od tego, czy działa on na AWS, czy nie. Amazon A2I integruje się zarówno z Ekstrakt z amazonki i Amazon Comprehend aby zapewnić Ci możliwość wprowadzenia etapów przeglądu przez człowieka w ramach inteligentnego przepływu pracy przetwarzania dokumentów.

Faza przechwytywania danych

Możesz przechowywać dokumenty w wysoce skalowalnym i trwałym magazynie, takim jak Usługa Amazon Simple Storage (Amazonka S3). Amazon S3 to usługa obiektowej pamięci masowej, która oferuje wiodącą w branży skalowalność, dostępność danych, bezpieczeństwo i wydajność. Amazon S3 został zaprojektowany z myślą o trwałości 11 lat i przechowuje dane milionów klientów na całym świecie. Dokumenty mogą mieć różne formaty i układy oraz mogą pochodzić z różnych kanałów, takich jak portale internetowe lub załączniki do wiadomości e-mail.

Faza klasyfikacji

W poprzednim kroku zebraliśmy dokumenty różnych typów i formatów. Na tym etapie musimy skategoryzować dokumenty, zanim będziemy mogli przeprowadzić dalszą ekstrakcję. W tym celu używamy Amazon Comprehend klasyfikacja niestandardowa. Klasyfikacja dokumentów to proces dwuetapowy. Najpierw szkolisz niestandardowy klasyfikator Amazon Comprehend, aby rozpoznawał klasy, które Cię interesują. Następnie wdrażasz model za pomocą niestandardowy punkt końcowy klasyfikatora w czasie rzeczywistym i wysyłaj nieoznakowane dokumenty do punktu końcowego czasu rzeczywistego w celu sklasyfikowania.

Poniższy rysunek przedstawia typowy przepływ pracy klasyfikacji dokumentów.

Faza klasyfikacji

Aby przeszkolić klasyfikatora, zidentyfikuj zajęcia, które Cię interesują i podaj przykładowe dokumenty dla każdej z klas jako materiał szkoleniowy. Na podstawie wskazanych przez Ciebie opcji Amazon Comprehend tworzy niestandardowy model ML, który szkoli na podstawie dostarczonych przez Ciebie dokumentów. Ten niestandardowy model (klasyfikator) sprawdza każdy przesłany dokument. Zwraca albo konkretną klasę, która najlepiej reprezentuje zawartość (jeśli używasz trybu wielu klas), albo zestaw klas, które mają do niej zastosowanie (jeśli używasz trybu wielu etykiet).

Przygotuj dane treningowe

Pierwszym krokiem jest wyodrębnienie tekstu z dokumentów wymaganych dla niestandardowego klasyfikatora Amazon Comprehend. Aby wyodrębnić surowe informacje tekstowe dla wszystkich dokumentów w Amazon S3, używamy Amazon Text detect_document_text() API. Etykietujemy również dane zgodnie z typem dokumentu, który ma być używany do szkolenia niestandardowego klasyfikatora Amazon Comprehend.

Poniższy kod został skrócony w celu uproszczenia. Aby uzyskać pełny kod, zapoznaj się z GitHub przykładowy kod dla textract_extract_text(). Funkcja call_textract() to funkcja wr4apper, która wywołuje AnalizujDokument Interfejs API wewnętrznie, a parametry przekazane do metody abstrahują niektóre konfiguracje, których interfejs API potrzebuje do uruchomienia zadania wyodrębniania.

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)        

Wytrenuj niestandardowy klasyfikator

Na tym etapie używamy niestandardowej klasyfikacji Amazon Comprehend, aby wytrenować nasz model klasyfikacji dokumentów. Używamy UtwórzKlasyfikatorDokumentu API do tworzenia klasyfikatora, który trenuje niestandardowy model przy użyciu naszych danych oznaczonych etykietami. Zobacz następujący kod:

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

Wdróż punkt końcowy w czasie rzeczywistym

Aby użyć niestandardowego klasyfikatora Amazon Comprehend, tworzymy punkt końcowy czasu rzeczywistego za pomocą CreateEndpoint OGIEŃ:

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}')  

Klasyfikuj dokumenty za pomocą punktu końcowego czasu rzeczywistego

Po utworzeniu punktu końcowego Amazon Comprehend możemy użyć punktu końcowego czasu rzeczywistego do klasyfikacji dokumentów. Używamy comprehend.classify_document() funkcja z wyodrębnionym tekstem dokumentu i punktem końcowym wnioskowania jako parametrami wejściowymi:

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

Amazon Comprehend zwraca wszystkie klasy dokumentów z oceną ufności powiązaną z każdą klasą w tablicy par klucz-wartość (nazwa-wynik). Wybieramy klasę dokumentu z najwyższym wynikiem zaufania. Poniższy zrzut ekranu to przykładowa odpowiedź.

Klasyfikuj dokumenty za pomocą punktu końcowego czasu rzeczywistego

Zalecamy przejrzenie szczegółowego przykładowego kodu klasyfikacji dokumentu na GitHub.

Faza ekstrakcji

Amazon Text pozwala wyodrębnić informacje tekstowe i uporządkowane dane za pomocą Amazon Text Wykryj tekst dokumentu i AnalizujDokument API, odpowiednio. Te interfejsy API odpowiadają danymi JSON, które zawierają WORDS, LINES, FORMS, TABLES, informacje o geometrii lub obwiedni, relacje i tak dalej. Obie DetectDocumentText i AnalyzeDocument są operacjami synchronicznymi. Aby analizować dokumenty asynchronicznie, użyj Rozpocznij wykrywanie tekstu dokumentu.

Ekstrakcja danych strukturalnych

Z dokumentów można wyodrębnić ustrukturyzowane dane, takie jak tabele, przy jednoczesnym zachowaniu struktury danych i relacji między wykrytymi elementami. Możesz użyć AnalizujDokument API z FeatureType as TABLE do wykrywania wszystkich tabel w dokumencie. Poniższy rysunek ilustruje ten proces.

Ekstrakcja danych strukturalnych

Zobacz następujący kod:

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

Prowadzimy analyze_document() metoda z FeatureType as TABLES na dokumencie historii pracownika i uzyskaj wyciąg tabeli w następujących wynikach.

Analizuj odpowiedź API dokumentu w celu wyodrębnienia tabel

Ekstrakcja danych częściowo ustrukturyzowanych

Możesz wyodrębniać z dokumentów dane o częściowo ustrukturyzowanej strukturze, takie jak formularze lub pary klucz-wartość, zachowując jednocześnie strukturę danych i relacje między wykrytymi elementami. Możesz użyć AnalizujDokument API z FeatureType as FORMS do wykrywania wszystkich formularzy w dokumencie. Poniższy diagram ilustruje ten proces.

Ekstrakcja danych częściowo ustrukturyzowanych

Zobacz następujący kod:

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

Tutaj prowadzimy analyze_document() metoda z FeatureType as FORMS na dokumencie aplikacyjnym pracownika i uzyskaj wyciąg tabeli z wyników.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Ekstrakcja nieustrukturyzowanych danych

Amazon Text jest optymalny do ekstrakcji gęstego tekstu z wiodącą w branży dokładnością OCR. Możesz użyć Wykryj tekst dokumentu Interfejs API do wykrywania wierszy tekstu i słów tworzących wiersz tekstu, jak pokazano na poniższym rysunku.

Ekstrakcja nieustrukturyzowanych danych

Zobacz następujący kod:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

Teraz prowadzimy detect_document_text() na przykładowym obrazie i uzyskaj ekstrakcję nieprzetworzonego tekstu w wynikach.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Faktury i rachunki

Amazon Texttract zapewnia wyspecjalizowane wsparcie w przetwarzaniu faktur i paragonów na dużą skalę. The AnalizujWydatki Interfejs API może wyodrębnić dane jawnie oznaczone, dane dorozumiane i pozycje z wyszczególnionej listy towarów lub usług z prawie każdej faktury lub paragonu bez żadnych szablonów ani konfiguracji. Poniższy rysunek ilustruje ten proces.

Ekstrakcja faktur i paragonów

Zobacz następujący kod:

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

Amazon Texttract może znaleźć nazwę dostawcy na paragonie, nawet jeśli jest ona wskazana tylko w logo na stronie bez wyraźnej etykiety zwanej „dostawcą”. Może również znajdować i wyodrębniać pozycje wydatków, ilość i ceny, które nie są oznaczone nagłówkami kolumn dla pozycji wiersza.

Analizuj odpowiedź API na wydatki

Dokumenty tożsamości

Tekst z Amazonii Identyfikator analizy API może pomóc w automatycznym wyodrębnianiu informacji z dokumentów identyfikacyjnych, takich jak prawa jazdy i paszporty, bez potrzeby stosowania szablonów lub konfiguracji. Możemy wyodrębnić określone informacje, takie jak data wygaśnięcia i data urodzenia, a także inteligentnie zidentyfikować i wyodrębnić informacje niejawne, takie jak imię i nazwisko oraz adres. Poniższy diagram ilustruje ten proces.

Ekstrakcja dokumentów tożsamości

Zobacz następujący kod:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

Możemy użyć tabulate aby uzyskać ładny wydruk:

from tabulate import tabulate

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

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zalecamy przejście przez szczegółową ekstrakcję dokumentów przykładowy kod na GitHubie. Aby uzyskać więcej informacji na temat pełnych przykładów kodu w tym poście, zapoznaj się z GitHub repo.

Wnioski

W tym pierwszym poście z dwuczęściowej serii omówiliśmy różne etapy IDP i architekturę rozwiązania. Omówiliśmy również klasyfikację dokumentów przy użyciu niestandardowego klasyfikatora Amazon Comprehend. Następnie zbadaliśmy, w jaki sposób można wykorzystać Amazon Text do wyodrębniania informacji z nieustrukturyzowanych, częściowo ustrukturyzowanych, ustrukturyzowanych i wyspecjalizowanych typów dokumentów.

In część 2 z tej serii kontynuujemy dyskusję z funkcjami ekstraktu i zapytań Amazon Text. Przyjrzymy się, jak korzystać z predefiniowanych encji Amazon Comprehend i encji niestandardowych, aby wyodrębnić kluczowe terminy biznesowe z dokumentów o gęstym tekście oraz jak zintegrować przegląd Amazon A2I w pętli z procesami IDP.

Zalecamy zapoznanie się z sekcjami dotyczącymi bezpieczeństwa w Ekstrakt z amazonki, Amazon Comprehend, Amazonka A2I dokumentacji i postępując zgodnie z dostarczonymi wytycznymi. Poświęć także chwilę na zapoznanie się i zrozumienie cen Ekstrakt z amazonki, Amazon Comprehend, Amazonka A2I.


O autorach

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Suprakasz Dutta jest architektem rozwiązań w Amazon Web Services. Koncentruje się na strategii transformacji cyfrowej, modernizacji i migracji aplikacji, analityce danych i uczeniu maszynowym.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Sonali Sahu kieruje zespołem Inteligentnego Przetwarzania Dokumentów AI/ML Solutions Architect w Amazon Web Services. Jest pasjonatką technofilki i lubi pracować z klientami przy rozwiązywaniu złożonych problemów przy użyciu innowacji. Jej głównym obszarem zainteresowania jest sztuczna inteligencja i uczenie maszynowe do inteligentnego przetwarzania dokumentów.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Anjana Biswasa jest starszym architektem rozwiązań usług AI, skupiającym się na AI/ML i analizie danych. Anjan jest częścią ogólnoświatowego zespołu usług AI i współpracuje z klientami, aby pomóc im zrozumieć i opracować rozwiązania problemów biznesowych związanych ze sztuczną inteligencją i ML. Anjan ma ponad 14-letnie doświadczenie w pracy z globalnymi organizacjami łańcucha dostaw, produkcji i sprzedaży detalicznej oraz aktywnie pomaga klientom rozpocząć i skalować usługi AWS AI.

Inteligentne przetwarzanie dokumentów z usługami AWS AI: Część 1 PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Chinmayee Rane jest specjalistą ds. rozwiązań AI/ML w Amazon Web Services. Pasjonatka matematyki stosowanej i uczenia maszynowego. Koncentruje się na projektowaniu inteligentnych rozwiązań przetwarzania dokumentów dla klientów AWS. Poza pracą lubi tańczyć salsę i bachatę.

Znak czasu:

Więcej z Uczenie maszynowe AWS