Обучение и применение пользовательских моделей

Завершено

Подсказка

Дополнительные сведения см. на вкладке "Текст и изображения ".

Если предварительно созданные модели не охватывают определенные типы документов, можно обучить пользовательские модели для извлечения данных из собственных форм. Служба "Аналитика документов Azure" поддерживает защищенное машинное обучение, где помечены примеры документов с полями, которые требуется извлечь, и служба обучает модель для распознавания этих полей в новых документах.

Пользовательские типы моделей

Служба "Аналитика документов Azure" предлагает два типа пользовательских моделей извлечения, а также модель классификации:

Пользовательские модели шаблонов

Модели пользовательских шаблонов используют единообразный визуальный шаблон для извлечения размеченных данных. Они лучше всего работают в структурированных формах, где макет является статическим от одного экземпляра документа до следующего, например анкет, приложений или стандартных государственных форм.

Модели шаблонов точно извлекают пары "ключ-значение", метки выбора, таблицы, регионы и подписи. Обучение занимает всего несколько минут, и поддерживаются более 100 языков. Так как модели шаблонов быстро обучаются и эффективно работают, они являются хорошей отправной точкой при наличии единого визуального макета.

Пользовательские нейронные модели

Пользовательские нейронные модели используют глубокое обучение и доводятся до оптимального состояния с помощью ваших помеченных данных. Они объединяют функции макета и языка для извлечения полей из структурированных, полуструктурированных и неструктурированных документов. Поддержка нейронных моделей:

  • Перекрывающиеся поля
  • Обнаружение сигнатуры
  • Достоверность уровня таблицы, строки и ячейки

Нейронные модели обеспечивают более высокую точность, чем модели шаблонов, особенно для полуструктурированных или неструктурированных документов, макет которых варьируется между экземплярами. Тем не менее, они занимают больше времени для обучения и использования дополнительных ресурсов.

Выбор между шаблонами и нейронными моделями

При принятии решения о том, какой тип пользовательской модели следует использовать, рассмотрите компромиссы:

Фактор Пользовательский шаблон Настраиваемая нейронная сеть
лучше всего подходит для Структурированные формы с согласованным визуальным макетом Полуструктурированные или неструктурированные документы с различными макетами
Время обучения Протокол собрания Длиннее (зависит от размера набора данных)
Стоимость обучения Ниже Выше
Точность Высокий уровень для форм фиксированного макета; уменьшается при изменении макета Общий уровень выше, особенно для документов с различиями в формате
Поддержка языков 100+ языки Меньше языков поддерживается (см. документацию для текущей поддержки)
Поддержка функций Пары "ключ-значение", метки выбора, таблицы, регионы, подписи Перекрывающиеся поля, обнаружение подписей, достоверность таблицы, строки или ячейки

Подсказка

Начните с пользовательской модели шаблона, если формы имеют согласованный визуальный макет. Это быстрее и дешевле тренироваться. Если точность недостаточна или документы различаются в формате, переключитесь на пользовательскую нейронную модель.

Настраиваемые классификаторы

Пользовательские модели классификации определяют тип документа перед вызовом модели извлечения. Классификатор можно использовать для маршрутизации входящих документов в соответствующую модель извлечения при обработке нескольких типов форм.

обучение модели на заказ

Чтобы обучить пользовательскую модель извлечения:

  1. Храните примеры форм в контейнере BLOB-объектов Azure, а также JSON-файлы, содержащие сведения о макете и поле метки:
    • Файл для каждого образца формы ocr.json (создан с помощью функции анализа документа).
    • Один fields.json файл, описывающий поля, которые требуется извлечь.
    • labels.json Файл для каждого образца формы, в котором поля сопоставляются с их расположением в форме.
  2. Сгенерируйте URL-адрес SAS для контейнера.
  3. Используйте функцию REST API Build Model или эквивалентный метод SDK.
  4. Используйте функцию REST API Get model для получения идентификатора обученной модели.

Вы также можете визуально обучить пользовательские модели с помощью Студии аналитики документов, как описано в модуле Use the Document Intelligence Studio .

Подсказка

Используйте по крайней мере пять-шесть примеров форм для обучения. Более крупный и более разнообразный набор данных создает более точные модели.

Использование пользовательской модели

Чтобы извлечь данные формы с помощью пользовательской модели, вызовите функцию анализа документов с идентификатором модели. Вы можете использовать поддерживаемый пакет SDK или REST API.

C#

string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
AzureKeyCredential credential = new AzureKeyCredential(apiKey);
DocumentAnalysisClient client = new DocumentAnalysisClient(new Uri(endpoint), credential);

string modelId = "<modelId>";
Uri fileUri = new Uri("<fileUri>");

AnalyzeDocumentOperation operation = await client.AnalyzeDocumentFromUriAsync(WaitUntil.Completed, modelId, fileUri);
AnalyzeResult result = operation.Value;

Python

endpoint = "YOUR_DOC_INTELLIGENCE_ENDPOINT"
key = "YOUR_DOC_INTELLIGENCE_KEY"

model_id = "YOUR_CUSTOM_BUILT_MODEL_ID"
formUrl = "YOUR_DOCUMENT"

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)

task = document_analysis_client.begin_analyze_document_from_url(model_id, formUrl)
result = task.result()

Успешный analyzeResult ответ содержит объект с извлеченным содержимым и массив страниц, содержащих сведения о документе.

Составные модели

Можно объединить несколько пользовательских моделей в одну составную модель. При отправке документа в составную модель аналитика документов классифицирует его, чтобы определить наиболее подходящую модель компонентов, а затем возвращает результаты извлечения из этой модели. Этот подход полезен при обработке нескольких типов форм, для каждого из которых требуется собственная модель извлечения.

Узнать больше