Извлечение сведений из документов
Tip
Дополнительные сведения см. на вкладке "Текст и изображения ".
Сегодняшние бизнес-процессы сильно зависят от данных, содержащихся в таких документах, как формы, квитанции и счета. Ручная обработка может привести к задержкам и ошибкам, что делает автоматизацию извлечения данных более важной, чем когда-либо.
Принцип работы службы "Понимание содержимого Azure"
Azure Content Understanding следует рабочему процессу извлечения на основе модели, в котором неструктурированное содержимое принимается, анализируется и возвращается в виде структурированных данных.
Прием содержимого: вы отправляете содержимое в Azure Content Understanding.
Анализ на основе ИИ: служба использует сочетание: оптическое распознавание символов (OCR), распознавание речи, распознавание естественного языка и многомодальные модели ИИ для анализа содержимого.
Структурированные выходные данные: служба возвращает структурированные результаты (например, в формате JSON), которые соответствуют модели, что упрощает хранение, поиск или интеграцию данных в подчиненные системы.
Замечание
JSON (нотация объектов JavaScript) — это текстовый формат данных, используемый для хранения структурированных данных между системами и обмена ими. Это легко для людей для чтения и записи, и легко для компьютеров для анализа и создания.
Общие сведения о схемах
OCR (оптическое распознавание символов) позволяет компьютеру читать текст из изображений, таких как сканированные документы, фотографии квитанций или изображения печатных страниц, и превратить этот текст в редактируемый и доступный для поиска цифровой текст. Базовый OCR помогает распознать печатный текст, сосредоточиться на извлечении текста и не понимает смысла, контекста или связей между словами.
Функции анализа документов Azure Content Understanding выходят за рамки простого извлечения текста на основе OCR, включая извлечение полей на основе схемы и их значения. Подход на основе схемы — это то, что отличает Azure Content Understanding от базовых служб OCR или транскрибирования.
Схема описывает , какие сведения необходимо извлечь и как следует структурировать. При определении схемы необходимо указать поля для извлечения. Схема содержит конкретные поля или сущности, о которых вы заботитесь.
Например, предположим, что вы определяете схему, включающую общие поля, обычно найденные в счете, например:
- Имя поставщика
- Номер счета
- Дата счета
- Имя клиента
- Произвольный адрес
- Пункты — заказанные предметы, каждый из которых включает:
- Описание товара
- Цена за единицу
- Заказанное количество
- Общее число элементов строки
- Итоговая сумма счета
- Налоги
- Плата за доставку
- Итог счета-фактуры
Теперь предположим, что необходимо извлечь эти сведения из следующего счета:
Azure Content Understanding может применить схему счета к счету и определить соответствующие поля, даже если они помечены различными именами (или не помечены вообще). Полученный анализ приводит к следующему результату:
Схема также определяет структуру полей. Схемы поддерживают структурированные и вложенные поля, а не только неструктурированный текст. Рассмотрим пример.
-
Items— это коллекция - Каждый элемент имеет
description,unit pricequantityиline total
Определение структурированных полей позволяет Azure Content Understanding понимать связи между значениями, что не может сделать только OCR.
В примере счета для каждого обнаруженного поля можно извлечь вложенные значения:
- Название поставщика: Adventure Works Cycles
- Номер счета: 1234
- Дата счета: 03.07.2025
- Имя клиента: Джон Смит
- Пользовательский адрес: 123 Ривер-стрит, Марштаун, Англия, GL1 234
-
Элементы:
- Элемент 1.
- Описание элемента: 38" Гоночный велосипед (Красный)
- Цена за единицу: 1299.00
- Заказанное количество: 1
- Общая сумма по позиции: 1299.00
- Элемент 2.
- Описание элемента: шлем для велоспорта (черный)
- Цена за единицу: 25,99
- Заказанное количество: 1
- Всего элементов строки: 25,99
- Элемент 3.
- Описание элемента: велоспортная рубашка (L)
- Цена за единицу: 42,50
- Заказанное количество: 2
- Всего элементов строки: 85.00
- Элемент 1.
- Промежуточный итог счета: 1409.99
- Налог: 140,99
- Плата за доставку: 35.00
- Итоговый счет: 1585.98
Azure Content Understanding извлекает ожидаемое значение, а не только метки. Схемы применяются семантически, то есть:
- Поля можно извлечь, даже если метки отличаются
- Поля можно извлечь, даже если метки отсутствуют
Например, Счет-фактура No., Счет-фактура #, или неназначенный номер могут сопоставляться с InvoiceNumber все, если анализатор определяет, что они представляют одну и ту же концепцию.
Общие сведения об анализаторах
Анализатор — это единица в Azure Content Understanding, которая принимает входные данные, применяет анализ ИИ и создает структурированные результаты. Анализаторы последовательно применяют одинаковую логику извлечения ко всем входящим данным. После настройки анализатор гарантирует, что схема повторно используется для каждого запроса анализа. Анализаторы также создают прогнозируемые результаты JSON. Структурированные результаты упрощают последующую обработку (хранение данных, поиск, автоматизацию).
Azure Content Understanding предлагает предварительно созданные анализаторы для распространенных сценариев и поддерживает пользовательские анализаторы, адаптированные к вашим потребностям. На высоком уровне:
- Вы выбираете или создаете анализатор.
- Анализатор включает в себя схему, определяющую поля и структуру.
- Вы отправляете содержимое для анализа
- Служба применяет схему
- Вы получаете структурированные результаты JSON, соответствующие схеме
Использование Azure Content Understanding на портале Foundry
Замечание
На портале Foundry есть классический пользовательский интерфейс и новый пользовательский интерфейс.
После создания ресурса Microsoft Foundry можно использовать интерфейс портала new Foundry portal для проверки Azure распознавания содержимого. Портал Foundry предоставляет примеры содержимого и позволяет отправлять собственные материалы для анализа.
Визуальный интерфейс можно использовать для выбора исходного документа и извлечения полей сведений по умолчанию. Например, при попытке распознавания содержимого Azure на изображении документа служба возвращает сведения о тексте документа и текстовом макете.
Анализаторы Службы "Распознавание содержимого Azure" определяют текстовые значения в документах и сопоставляют их с определенными полями. Например, при выставлении счета служба возвращает поля (например, адрес поставщика) и данные в полях (например, 123 456-й улице).
На портале Foundry можно также просмотреть результаты обработки в формате JSON.
Создание клиентского приложения с помощью Azure Content Understanding
Api распознавания содержимого можно использовать для создания упрощенного клиентского приложения, которое извлекает данные программным способом.
Замечание
Клиентское приложение — это программа программного обеспечения, которая выполняется на устройстве пользователя и запрашивает службы или данные из другой системы, как правило, на сервере через сеть. Клиент является частью приложения, с которыми взаимодействуют пользователи, а сервер выполняет тяжелую работу за кулисами. Приложения могут запрашивать данные или действия из службы и получать структурированный ответ с помощью API.
При использовании API распознавания содержимого можно выбрать предварительно созданный анализатор или создать пользовательский анализатор. Предварительно созданные анализаторы включают: prebuilt-invoice, prebuilt-imageSearch, prebuilt-audioSearchи prebuilt-videoSearch. При отправке содержимого для анализа анализатору анализ выполняется асинхронно, что означает, что вы получите результат позже, когда он будет готов. Так как анализ является асинхронным, необходимо провести опрос URL-адреса Operation-Location (или analyzerResults) до успешного выполнения задания.
Использование Python SDK для понимания содержимого Azure
Давайте рассмотрим процесс использования пакета SDK для Python для анализа счета по URL-адресу.
- Установите пакет SDK для Python для Azure Content Understanding.
python -m pip install azure-ai-contentunderstanding
Определите конечную точку ресурса Foundry и ключ API или идентификатор Microsoft Entra. Конечная точка обычно выглядит следующим образом:
https://<your-resource-name>.services.ai.azure.com/Создайте и запустите код клиентского приложения. Идентификатор
analzyer_idпредварительно созданного анализатора. Здесь можно найти список предварительно созданных значений идентификаторов анализатора.
import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["FOUNDRY_ENDPOINT"]
key = os.environ["FOUNDRY_KEY"]
client = ContentUnderstandingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
# 1) start analysis with analyzer id + inputs
analyzer_id = "prebuilt-invoice"
inputs = [
{"url": "https://github.com/Azure-Samples/azure-ai-content-understanding-python/raw/refs/heads/main/data/invoice.pdf"}
]
# 2) wait for the Long Running Operation (LRO) to complete
poller = client.begin_analyze(analyzer_id=analyzer_id, inputs=inputs) # starts LRO
result = poller.result() # waits for completion (polling handled by SDK)
# 3) read structured fields + markdown
# The result typically includes extracted "fields" and "markdown" per input content item.
for content in result.contents:
print(content.markdown)
print(content.fields)
Результатом выходных данных является JSON, в результате которого отображаются извлеченные метки, поля, данные в полях и оценка достоверности. Рассмотрим пример.
{
"status": "Succeeded",
"result": {
"analyzerId": "prebuilt-invoice",
"apiVersion": "2025-05-01-preview",
"contents": [
{
"markdown": "# INVOICE\n\nCONTOSO LTD.\n\nContoso Headquarters\n123 456th St\nNew York, NY, 10001\n\nINVOICE: INV-100\n\nINVOICE DATE: 11/15/2019\n\nDUE DATE: 12/15/2019\n\nCUSTOMER NAME: MICROSOFT CORPORATION\n",
"fields": {
"CustomerName": {
"type": "string",
"valueString": "MICROSOFT CORPORATION",
"confidence": 0.95,
},
"InvoiceDate": {
"type": "date",
"valueDate": "2019-11-15",
"confidence": 0.994,
}
}
}
]
}
}
Далее вы узнаете, как использовать анализаторы Azure Content Understanding для извлечения структурированных данных из звука и видео.