Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: Частина 1

Організаціям у таких галузях, як охорона здоров’я, фінанси та кредитування, юридичний відділ, роздрібна торгівля та виробництво, часто доводиться мати справу з великою кількістю документів у своїх повсякденних бізнес-процесах. Ці документи містять важливу інформацію, яка є ключовою для своєчасного прийняття рішень для підтримки найвищого рівня задоволеності клієнтів, швидшого залучення клієнтів і зниження їх відтоку. У більшості випадків документи обробляються вручну для вилучення інформації та аналітичних даних, що займає багато часу, схильне до помилок, дорого та важко масштабувати. Сьогодні доступна обмежена автоматизація обробки та вилучення інформації з цих документів. Інтелектуальна обробка документів (IDP) із службами штучного інтелекту (AI) AWS допомагає автоматизувати вилучення інформації з документів різних типів і форматів, швидко та з високою точністю, без потреби в навичках машинного навчання (ML). Швидше вилучення інформації з високою точністю допомагає вчасно приймати якісні бізнес-рішення, одночасно знижуючи загальні витрати.

Незважаючи на те, що етапи робочого процесу IDP можуть відрізнятися та залежати від сценарію використання та бізнес-вимог, на наступному малюнку показано етапи, які зазвичай є частиною робочого процесу IDP. Обробка таких документів, як податкові форми, претензії, медичні довідки, форми нових клієнтів, рахунки-фактури, юридичні договори тощо – лише деякі з випадків використання IDP.

У цій серії з двох частин ми обговорюємо, як можна автоматизувати та інтелектуально обробляти документи в масштабі за допомогою служб AWS AI. У цій публікації ми обговорюємо перші три етапи робочого процесу IDP. в частина 2, обговорюємо інші етапи робочого процесу.

Огляд рішення

На наведеній нижче схемі архітектури показано етапи робочого процесу IDP. Він починається з етапу збору даних для безпечного зберігання та об’єднання різних форматів файлів (PDF, JPEG, PNG, TIFF) і макетів документів. Наступним етапом є класифікація, на якій ви класифікуєте свої документи (наприклад, договори, форми претензій, рахунки-фактури або квитанції), а потім витягуєте документи. На етапі вилучення ви можете отримати важливу ділову інформацію зі своїх документів. Ці витягнуті дані часто використовуються для збору інформації за допомогою аналізу даних або надсилаються до наступних систем, таких як бази даних або транзакційні системи. Наступним етапом є збагачення, на якому документи можна збагатити шляхом редагування захищеної інформації про здоров’я (PHI) або персональних даних (PII), спеціального вилучення бізнес-термінів тощо. Нарешті, на етапі перевірки та перевірки ви можете залучити персонал для перевірки документів, щоб переконатися, що результат точний.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Для цілей цієї публікації ми розглядаємо набір зразків документів, таких як банківські виписки, рахунки-фактури та квитанції. Зразки документів разом із зразком коду можна знайти на нашому сайті GitHub сховище. У наступних розділах ми ознайомимо вас із цими зразками коду разом із реальним практичним застосуванням. Ми демонструємо, як ви можете використовувати можливості ML Текст Amazon, «Амазонка» та Розширений ШІ в Амазонці (Amazon A2I) для обробки документів і перевірки отриманих із них даних.

Amazon Texttract — це служба ML, яка автоматично витягує текст, рукописний текст і дані зі сканованих документів. Це виходить за рамки простого оптичного розпізнавання символів (OCR), щоб ідентифікувати, розуміти та витягувати дані з форм і таблиць. Amazon Texttract використовує ML для читання та обробки документів будь-якого типу, точного вилучення тексту, рукописного тексту, таблиць та інших даних без ручних зусиль.

Amazon Comprehend — це служба обробки природної мови (NLP), яка використовує ML для отримання інформації про вміст документів. Amazon Comprehend може ідентифікувати важливі елементи в документах, зокрема посилання на мову, людей і місця, і класифікувати їх за відповідними темами або кластерами. Він може виконувати аналіз настроїв, щоб визначити настрої документа в режимі реального часу за допомогою визначення окремого документа або групового виявлення. Наприклад, він може проаналізувати коментарі до публікації в блозі, щоб дізнатися, чи подобається публікація вашим читачам. Amazon Comprehend також виявляє ідентифікаційну інформацію, як-от адреси, номери банківських рахунків і номери телефонів у текстових документах у режимі реального часу та асинхронних пакетних завданнях. Він також може редагувати ідентифікаційні сутності в асинхронних пакетних завданнях.

Amazon A2I — це сервіс машинного навчання, який спрощує створення робочих процесів, необхідних для перевірки людьми. Amazon A2I надає перевірку людьми всім розробникам, усуваючи недиференційовану важку роботу, пов’язану зі створенням систем перевірки людьми або керуванням великою кількістю рецензентів, незалежно від того, працює це на AWS чи ні. Amazon A2I інтегрує обидва з Текст Amazon та «Амазонка» щоб надати вам можливість запровадити етапи перевірки людиною в робочому процесі інтелектуальної обробки документів.

Фаза збору даних

Ви можете зберігати документи в довговічному сховищі з великим ступенем масштабування, наприклад Служба простого зберігання Amazon (Amazon S3). Amazon S3 — це служба зберігання об’єктів, яка пропонує найкращі в галузі масштабованість, доступність даних, безпеку та продуктивність. Amazon S3 розроблений для 11 9 довговічності та зберігає дані для мільйонів клієнтів у всьому світі. Документи можуть надходити в різних форматах і макетах, а також можуть надходити з різних каналів, як-от веб-портали чи вкладення електронної пошти.

Фаза класифікації

На попередньому кроці ми зібрали документи різних типів і форматів. На цьому кроці нам потрібно класифікувати документи, перш ніж ми зможемо виконати подальше вилучення. Для цього ми використовуємо Amazon Comprehend індивідуальна класифікація. Класифікація документів складається з двох етапів. Спочатку ви навчаєте спеціальний класифікатор Amazon Comprehend розпізнавати класи, які вас цікавлять. Далі ви розгортаєте модель за допомогою a кінцева точка реального часу спеціального класифікатора і надсилати документи без міток до кінцевої точки реального часу для класифікації.

На наступному малюнку показано типовий робочий процес класифікації документів.

Фаза класифікації

Щоб навчити класифікатор, визначте класи, які вас цікавлять, і надайте зразки документів для кожного з класів як навчальний матеріал. На основі вказаних вами параметрів Amazon Comprehend створює спеціальну модель ML, яку навчає на основі наданих вами документів. Ця спеціальна модель (класифікатор) перевіряє кожен поданий вами документ. Він повертає або конкретний клас, який найкраще представляє вміст (якщо ви використовуєте багатокласовий режим), або набір класів, які до нього застосовуються (якщо ви використовуєте режим кількох міток).

Підготувати навчальні дані

Першим кроком є ​​вилучення тексту з документів, необхідних для спеціального класифікатора Amazon Comprehend. Щоб отримати необроблену текстову інформацію для всіх документів в Amazon S3, ми використовуємо Amazon Texttract detect_document_text() API. Ми також позначаємо дані відповідно до типу документа, який буде використовуватися для навчання спеціального класифікатора Amazon Comprehend.

Наступний код скорочено для спрощення. Щоб отримати повний код, зверніться до GitHub зразок коду та цінності textract_extract_text(). Функція call_textract() це функція wr4apper, яка викликає Аналіз документа Внутрішній API і параметри, передані методу, абстрагують деякі конфігурації, необхідні API для виконання завдання вилучення.

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)        

Навчіть спеціальний класифікатор

На цьому кроці ми використовуємо спеціальну класифікацію Amazon Comprehend, щоб навчити нашу модель класифікувати документи. Ми використовуємо CreateDocumentClassifier API для створення класифікатора, який навчає спеціальну модель, використовуючи наші позначені дані. Перегляньте наступний код:

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

Розгорніть кінцеву точку в реальному часі

Щоб використовувати спеціальний класифікатор Amazon Comprehend, ми створюємо кінцеву точку в реальному часі за допомогою 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}')  

Класифікуйте документи за допомогою кінцевої точки в реальному часі

Після створення кінцевої точки Amazon Comprehend ми можемо використовувати кінцеву точку в реальному часі для класифікації документів. Ми використовуємо comprehend.classify_document() функція з витягнутим текстом документа та кінцевою точкою висновку як вхідні параметри:

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

Amazon Comprehend повертає всі класи документів із оцінкою достовірності, пов’язаною з кожним класом у масиві пар ключ-значення (ім’я-оцінка). Ми вибираємо клас документа з найвищим показником достовірності. Наступний знімок екрана є прикладом відповіді.

Класифікуйте документи за допомогою кінцевої точки в реальному часі

Ми рекомендуємо переглянути приклад коду детальної класифікації документів GitHub.

Фаза екстракції

Amazon Texttract дозволяє отримувати текстову інформацію та інформацію про структуровані дані за допомогою Amazon Texttract DetectDocumentText та Аналіз документа API, відповідно. Ці API відповідають даними JSON, які містять СЛОВА, РЯДКИ, ФОРМИ, ТАБЛИЦІ, інформацію про геометрію або обмежувальну рамку, зв’язки тощо. Обидва DetectDocumentText та AnalyzeDocument є синхронними операціями. Для асинхронного аналізу документів використовуйте StartDocumentTextDetection.

Вилучення структурованих даних

З документів можна витягувати структуровані дані, наприклад таблиці, зберігаючи структуру даних і зв’язки між виявленими елементами. Ви можете використовувати Аналіз документа API з FeatureType as TABLE щоб виявити всі таблиці в документі. Наступний малюнок ілюструє цей процес.

Вилучення структурованих даних

Дивіться наступний код:

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

Ми запускаємо analyze_document() метод за допомогою FeatureType as TABLES на документі історії співробітника та отримайте вилучення таблиці в наступних результатах.

Аналіз відповіді API документа для вилучення таблиць

Напівструктуроване вилучення даних

Ви можете витягувати з документів напівструктуровані дані, такі як форми або пари ключ-значення, зберігаючи структуру даних і зв’язки між виявленими елементами. Ви можете використовувати Аналіз документа API з FeatureType as FORMS для виявлення всіх форм у документі. Наступна діаграма ілюструє цей процес.

Напівструктуроване вилучення даних

Дивіться наступний код:

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

Ось ми запускаємо analyze_document() метод за допомогою FeatureType as FORMS на документ заявки працівника та отримати витяг таблиці в результатах.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Вилучення неструктурованих даних

Amazon Texttract є оптимальним для вилучення щільного тексту з провідною в галузі точністю OCR. Ви можете використовувати DetectDocumentText API для виявлення рядків тексту та слів, які складають рядок тексту, як показано на малюнку нижче.

Вилучення неструктурованих даних

Дивіться наступний код:

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

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

Тепер запускаємо detect_document_text() на зразковому зображенні та отримати в результатах вилучення необробленого тексту.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Рахунки та квитанції

Amazon Texttract надає спеціалізовану підтримку для обробки рахунків-фактур і квитанцій у великих масштабах. The Аналіз витрат API може витягувати дані з явними мітками, неявні дані та позиції з деталізованого списку товарів чи послуг майже з будь-якого рахунка-фактури чи квитанції без жодних шаблонів чи конфігурації. Наступний малюнок ілюструє цей процес.

Виписка рахунків і квитанцій

Дивіться наступний код:

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

Amazon Texttract може знайти назву постачальника в квитанції, навіть якщо вона вказана лише в логотипі на сторінці без явної позначки під назвою «постачальник». Він також може знаходити та витягувати статті витрат, кількість і ціни, які не позначені заголовками стовпців для рядків-позицій.

Проаналізуйте відповідь API витрат

Документи, що посвідчують особу

Текст Amazon AnalyzeID API може допомогти вам автоматично отримувати інформацію з ідентифікаційних документів, таких як водійські права та паспорти, без необхідності використовувати шаблони чи конфігурацію. Ми можемо отримати конкретну інформацію, таку як дата закінчення терміну дії та дата народження, а також інтелектуально ідентифікувати та витягнути неявну інформацію, таку як ім’я та адреса. Наступна діаграма ілюструє цей процес.

Вилучення документів, що посвідчують особу

Дивіться наступний код:

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

Ми можемо використовувати tabulate щоб отримати гарний друкований результат:

from tabulate import tabulate

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

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Рекомендуємо пройти детальне вилучення документів зразок коду на GitHub. Щоб отримати додаткові відомості про повні зразки коду в цій публікації, зверніться до GitHub репо.

Висновок

У цій першій публікації серії з двох частин ми обговорили різні етапи IDP та архітектуру рішення. Ми також обговорили класифікацію документів за допомогою спеціального класифікатора Amazon Comprehend. Далі ми дослідили способи використання Amazon Texttract для отримання інформації з неструктурованих, напівструктурованих, структурованих і спеціалізованих типів документів.

In частина 2 цієї серії ми продовжуємо обговорення особливостей екстракту та запитів Amazon Texttract. Ми розглянемо, як використовувати попередньо визначені сутності та користувацькі сутності Amazon Comprehend, щоб витягувати ключові бізнес-терміни з документів із щільним текстом, і як інтегрувати аналіз Amazon A2I людиною в циклі у ваші процеси IDP.

Ми рекомендуємо переглянути розділи безпеки в Текст Amazon, «Амазонка» та Amazon A2I документацію та дотримання наданих інструкцій. Також приділіть час, щоб переглянути та зрозуміти ціну Текст Amazon, «Амазонка» та Amazon A2I.


Про авторів

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Супракаш Дутта є архітектором рішень в Amazon Web Services. Він зосереджується на стратегії цифрової трансформації, модернізації та міграції програм, аналітиці даних і машинному навчанні.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Соналі Саху очолює групу архітекторів рішень інтелектуальної обробки документів AI/ML в Amazon Web Services. Вона є пристрасним технофілом і любить працювати з клієнтами над вирішенням складних проблем за допомогою інновацій. Її основний напрямок — штучний інтелект і машинне навчання для інтелектуальної обробки документів.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Анжан Бісвас є старшим архітектором рішень AI Services, який спеціалізується на AI/ML та аналітиці даних. Анджан є частиною всесвітньої команди надання послуг штучного інтелекту та працює з клієнтами, щоб допомогти їм зрозуміти та розробити рішення бізнес-проблем за допомогою штучного інтелекту та машинного навчання. Анджан має понад 14 років досвіду роботи з глобальними ланцюжками постачання, виробництвом і роздрібними організаціями, і активно допомагає клієнтам почати роботу та масштабувати послуги AWS AI.

Інтелектуальна обробка документів за допомогою сервісів AWS AI: частина 1 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Чінмаї Рейн є архітектором спеціалістів із штучного інтелекту та ML в Amazon Web Services. Вона захоплюється прикладною математикою та машинним навчанням. Вона зосереджується на розробці інтелектуальних рішень для обробки документів для клієнтів AWS. Поза роботою вона любить танцювати сальсу та бачату.

Часова мітка:

Більше від AWS Машинне навчання