Поделиться через


Модель макета аналитики документов

Внимание

  • Выпуски общедоступной предварительной версии Document Intelligence предоставляют ранний доступ к функциям, которые находятся в активной разработке. Функции, подходы и процессы могут изменяться до общедоступной доступности на основе отзывов пользователей.
  • Общедоступная предварительная версия клиентских библиотек Аналитики документов по умолчанию использует REST API версии 2024-07-31-preview.
  • Общедоступная предварительная версия 2024-07-31-preview в настоящее время доступна только в следующих регионах Azure. Обратите внимание, что пользовательская модель создания (извлечение полей документов) в AI Studio доступна только в регионе "Северная часть США":
    • Восточная часть США
    • Западная часть США2
    • Западная Европа
    • Северная часть США

Это содержимое относится к: версии 4.0 (предварительная версия) | Предыдущие версии: флажоксиняя галочка версия 3.1 (GA) версии 3.0 (GA) синяя галочка версии 2.1 (GA) синяя галочка

Модель макета аналитики документов — это расширенный API анализа документов на основе машинного обучения, доступный в облаке Аналитики документов. Это позволяет принимать документы в различных форматах и возвращать структурированные представления данных документов. API макетирования сочетает в себе мощные возможности улучшенной версии оптического распознавания символов (OCR) с моделями глубокого обучения для извлечения текста, таблиц, меток выделения и структуры документа.

Анализ макета документа (версия 4)

Анализ макета структуры документов — это процесс анализа документа для извлечения интересующих регионов и их взаимодействия. Цель состоит в том, чтобы извлечь текст и структурные элементы со страницы, чтобы создать более семантические модели. В макете документа есть два типа ролей:

  • Геометрические роли: текст, таблицы, цифры и знаки выделения являются примерами геометрических ролей.
  • Логические роли: заголовки, заголовки и нижние колонтитулы являются примерами логических ролей текста.

На следующем рисунке показаны типичные компоненты на изображении примера страницы.

Иллюстрация примера макета документа.

Варианты разработки (версия 4)

Аналитика документов версии 4.0 (2024-07-31-preview) поддерживает следующие средства, приложения и библиотеки:

Функция Ресурсы Model ID
Модель макета Аналитика
документов• REST API
• ПАКЕТ SDK
для C#
• Пакет SDK для Python• Пакет SDK для Java • Пакет SDK
java для JavaScript
prebuilt-layout

Требования к входным данным (версия 4)

  • Поддерживаемые форматы файлов:

    Модель PDF Изображение:
    JPEG/JPG, , BMPPNGTIFFHEIF
    Microsoft Office:
    Word (), Excel (XLSXDOCX), PowerPoint (PPTX), HTML
    Читать
    Макет ✔ (2024-07-31-preview, 2024-02-29-preview, 2023-10-31-preview)
    Документ общего назначения
    Готовое
    Настраиваемая функция извлечения
    Настраиваемая классификация ✔ (2024-07-31-preview, 2024-02-29-preview)
  • Для получения наилучших результатов предоставьте одну четкую фотографию или скан-копию документа высокого качества.

  • Для PDF и TIFF можно обрабатывать до 2000 страниц (с подпиской на бесплатный уровень только первые две страницы обрабатываются).

  • Размер файла для анализа документов составляет 500 МБ для платного уровня (S0) и 4 МБ для бесплатного уровня (F0).

  • Размеры изображения должны составлять от 50 пикселей до 50 пикселей и 10 000 пикселей x 10 000 пикселей.

  • Если PDF-файлы заблокированы паролем, перед отправкой необходимо снять блокировку.

  • Минимальная высота извлекаемого текста составляет 12 пикселей для изображения размером 1024 x 768 пикселей. Это измерение соответствует тексту 8 точки в 150 точек на дюйм (DPI).

  • Для обучения пользовательской модели максимальный объем обучающих данных составляет 500 страниц для пользовательской модели шаблона и 50 000 страниц для пользовательской нейронной модели.

    • Для обучения пользовательской модели извлечения общий размер обучающих данных составляет 50 МБ для модели шаблона и 1 ГБ для нейронной модели.

    • Для обучения пользовательской модели классификации общий размер обучающих данных составляет 1 ГБ не более 10 000 страниц. Для 2024-07-31-preview и более поздних версий общий размер обучающих данных составляет 2 ГБ с максимальным количеством 10 000 страниц.

Начало работы с моделью макета

Узнайте, как данные, включая текст, таблицы, заголовки таблиц, метки выделения и сведения о структуре, извлекаются из документов с помощью аналитики документов. Вам потребуются следующие ресурсы:

  • Подписка Azure — ее можно создать бесплатно.

  • Экземпляр аналитики документов в портал Azure. Вы можете использовать ценовую категорию "Бесплатный" (F0), чтобы поработать со службой. После развертывания ресурса выберите Перейти к ресурсу, чтобы получить ключ и конечную точку.

    Снимок экрана: расположение ключей и конечной точки на портале Azure.

Примечание.

Document Intelligence Studio доступна с API версии 3.0 и более поздними версиями.

Пример документа, обработанный с помощью Document Intelligence Studio

Снимок экрана:

  1. На домашней странице Document Intelligence Studio выберите "Макет".

  2. Вы можете проанализировать пример документа или отправить собственные файлы.

  3. Нажмите кнопку "Выполнить анализ", а при необходимости настройте параметры анализа:

    Снимок экрана: кнопки

Поддерживаемые языки и языковые стандарты (ocr)

См. страницу "Поддержка языка" — модели анализа документов для полного списка поддерживаемых языков.

Извлечение данных (версия 4)

Модель макета извлекает из ваших документов текст, метки выделения, таблицы, абзацы и типы абзацев (roles).

Примечание.

Версии и 2023-10-31-previewболее поздние 2024-02-29-previewверсии поддерживают файлы Microsoft Office (DOCX, XLSX, PPTX) и HTML-файлы. Следующие возможности не поддерживаются:

  • Для каждого объекта страницы нет угла, ширины и высоты и единицы.
  • Для каждого обнаруженного объекта нет ограничивающего многоугольника или ограничивающего региона.
  • Диапазон страниц (pages) не поддерживается в качестве параметра.
  • Нет lines объекта.

Pages

Коллекция страниц — это список страниц в документе. Каждая страница представлена последовательно в документе и .. /включает угол ориентации, указывающий, поворачивается ли страница и ширина и высота (измерения в пикселях). Единицы страниц в выходных данных модели подсчитываются следующим образом:

Формат файлов Вычисленная единица страницы Всего страниц
Изображения (JPEG/JPG, PNG, BMP, HEIF) Каждое изображение = 1 единица страницы Всего изображений
PDF Каждая страница PDF = 1 единица страницы Всего страниц в PDF
TIFF Каждое изображение в TIFF = 1 единица страницы Общее количество изображений в TIFF
Word (DOCX) До 3000 символов = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего страниц до 3000 символов
Excel (XLSX) Каждый лист = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего листов
PowerPoint (PPTX) Каждый слайд = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего слайдов
HTML До 3000 символов = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего страниц до 3000 символов
# Analyze pages.
for page in result.pages:
print(f"----Analyzing layout from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")

Извлечение выбранных страниц из документов

Для больших многостраничных документов используйте параметр запроса pages, чтобы указать конкретные номера страниц или диапазоны страниц для извлечения текста.

Абзацы

Модель макета извлекает все идентифицированные блоки текста в коллекции paragraphs как объект верхнего уровня в разделе analyzeResults. Каждая запись в этой коллекции представляет текстовый блок и .. /включает извлеченный текст какcontentи ограничивающие polygon координаты. Сведения span указывают на фрагмент текста в свойстве верхнего уровня content, содержащем весь текст из документа.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Роли абзаца

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

Прогнозируемая роль Description Поддерживаемые типы файлов
title Основные заголовки на странице pdf, image, docx, pptx, xlsx, html
sectionHeading Одно или несколько подзаголовок на странице pdf, image, docx, xlsx, html
footnote Текст в нижней части страницы pdf, изображение
pageHeader Текст по верхнему краю страницы pdf, image, docx
pageFooter Текст по нижнему краю страницы pdf, image, docx, pptx, html
pageNumber Номер страницы pdf, изображение
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Текст, строки и слова

Модель макета документа в Аналитике документов извлекает печатный и рукописный текст стиля как lines и words. Коллекция styles .. /включает любой стиль рукописного текста для строк, если они обнаружены вместе с диапазонами, указывающими на связанный текст. Эта функция применяется к поддерживаемым языкам рукописного ввода.

Для Microsoft Word, Excel, PowerPoint и HTML, Аналитика документов версии 2024-02-29-preview и 2023-10-31-preview Layout model извлекает весь внедренный текст как есть. Тексты извлекаются как слова и абзацы. Внедренные образы не поддерживаются.

# Analyze lines.
if page.lines:
    for line_idx, line in enumerate(page.lines):
    words = get_words(page, line)
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{line.polygon}'"
    )

    # Analyze words.
    for word in words:
        print(f"......Word '{word.content}' has a confidence of {word.confidence}")

Стиль рукописного текста для текстовых строк

Ответ .. /включает классификацию того, является ли каждая текстовая строка стилем рукописного ввода или нет, а также оценка достоверности. Дополнительные сведения. См . раздел поддержки рукописного языка. В следующем примере показан пример фрагмента КОДА JSON.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Если включить возможность добавления шрифта и стиля, вы также получите результат шрифта и стиля в составе styles объекта.

Метки выделения

Модель макета также извлекает метки выбора из документов. Извлеченные метки выделения отображаются в коллекции pages для каждой страницы. Сюда входят ограничивающие метки polygon, confidence и метки выделения state (selected/unselected). Текстовое представление (то есть :selected: и :unselected) также включается в качестве начального индекса (offset) и length ссылается на свойство верхнего уровня content , содержащее полный текст документа.

# Analyze selection marks.
if page.selection_marks:
    for selection_mark in page.selection_marks:
        print(
            f"Selection mark is '{selection_mark.state}' within bounding polygon "
            f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
        )

Таблицы

Извлечение таблиц является ключевым требованием для обработки документов, содержащих большие объемы данных, обычно отформатированных в виде таблиц. Модель макета извлекает таблицы в pageResults разделе выходных данных JSON. Извлеченные сведения о таблице .. /включает количество столбцов и строк, диапазона строк и диапазона столбцов. Каждая ячейка с ограничивающим многоугольником выводится вместе с информацией о том, распознается ли область как columnHeader или нет. Модель поддерживает извлечение таблиц, которые поворачиваются. Каждая ячейка таблицы содержит индекс строки и столбца и координаты ограничивающего многоугольника. Для текста ячейки модель выводит сведения span, содержащие начальный индекс (offset). Модель также выводит length содержимое верхнего уровня, содержащее полный текст документа.

Ниже приведены некоторые факторы, которые следует учитывать при использовании возможности извлечения бэйла аналитики документов:

  • Являются ли данные, которые вы хотите извлечь как таблицу, и является ли структура таблицы понятной?

  • Может ли данные помещаться в двухмерную сетку, если данные не в формате таблицы?

  • Охватывают ли таблицы несколько страниц? Если это так, чтобы избежать необходимости пометить все страницы, разделите PDF на страницы, прежде чем отправлять его в аналитику документов. После анализа после обработки страниц в одну таблицу.

  • Если вы создаете пользовательские модели, обратитесь к табличным полям . Динамические таблицы имеют переменное количество строк для каждого столбца. Фиксированные таблицы имеют постоянное количество строк для каждого столбца.

Примечание.

  • Анализ таблиц не поддерживается, если входной файл — XLSX.
  • Начиная с версии 2024-07-31-preview, ограничивающие регионы для цифр и таблиц охватывают только основное содержимое и исключают связанные субтитры и сноски.
if result.tables:
    for table_idx, table in enumerate(result.tables):
        print(f"Table # {table_idx} has {table.row_count} rows and " f"{table.column_count} columns")
        if table.bounding_regions:
            for region in table.bounding_regions:
                print(f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}")
        # Analyze cells.
        for cell in table.cells:
            print(f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'")
            if cell.bounding_regions:
                for region in cell.bounding_regions:
                print(f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'")

Выходные данные в формате markdown

API макета может выводить извлеченный текст в формате markdown. outputContentFormat=markdown Используйте для указания формата выходных данных в markdown. Содержимое markdown выводится в рамках content раздела.

Примечание.

Начиная с 2024-07-31-preview, представление таблиц изменяется на HTML-таблицы, чтобы обеспечить отрисовку объединенных ячеек, заголовков с несколькими строками и т. д. Другое связанное изменение заключается в использовании символов флажка Юникода и ☐ для меток ☒ выделения вместо :selected: и :unselected:. Обратите внимание, что это означает, что содержимое полей меток выделения будет содержать :selected: несмотря на то, что их диапазоны ссылаются на символы Юникода в диапазоне верхнего уровня.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Цифра

Цифры (диаграммы, изображения) в документах играют важную роль в дополнении и улучшении текстового содержимого, предоставляя визуальные представления, которые помогают понять сложную информацию. Объект цифр, обнаруженный моделью макета, имеет такие ключевые свойства, как boundingRegions (пространственные расположения рисунка на страницах документа, включая номер страницы и координаты многоугольника, которые обрисовывают границу фигуры), (сведения о диапазонах текста, связанных с рисунком, spans указывая их смещение и длину в тексте документа. Это соединение помогает при связывании фигуры с соответствующим текстовым контекстом), elements (идентификаторы текстовых элементов или абзацев в документе, связанных с ним или описывающие рисунок), а caption также при наличии каких-либо элементов.

Если выходные данные указываются во время начальной операции анализа, служба создает обрезанные изображения для всех обнаруженных цифр, к которым можно получить доступ./analyeResults/{resultId}/figures/{figureId} FigureId включается в каждый объект фигуры, следуя незадокументированного соглашения о {pageNumber}.{figureIndex} том, где figureIndex сбрасывается на одну страницу.

Примечание.

Начиная с версии 2024-07-31-preview, ограничивающие регионы для цифр и таблиц охватывают только основное содержимое и исключают связанные субтитры и сноски.

# Analyze figures.
if result.figures:
    for figures_idx,figures in enumerate(result.figures):
        print(f"Figure # {figures_idx} has the following spans:{figures.spans}")
        for region in figures.bounding_regions:
            print(f"Figure # {figures_idx} location on page:{region.page_number} is within bounding polygon '{region.polygon}'")

Разделы

Анализ иерархической структуры документов является ключевым в организации, понимании и обработке обширных документов. Этот подход жизненно важен для семантического сегментирования длинных документов для повышения понимания, упрощения навигации и улучшения получения информации. Появление получения дополненного поколения (RAG) в генерируемом документе ИИ подчеркивает важность иерархического анализа структуры документов. Модель макета поддерживает разделы и подразделы в выходных данных, определяющие связь разделов и объектов в каждом разделе. Иерархическая структура поддерживается в elements каждом разделе. Выходные данные можно использовать для форматирования markdown, чтобы легко получить разделы и подразделы в markdown.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Это содержимое относится к: версия 3.1 (GA) | Последняя версия: фиолетовый флажокфлажок версия 4.0 (предварительная версия) | Предыдущие версии: синяя галочка версии 3.0синяя галочка версии 2.1

Это содержимое относится к: версия 3.0 (GA) | Последние версии: флажок фиолетовый флажок v4.0 (предварительная версия) фиолетовый флажок версии 3.1 | Предыдущая версия: синяя галочка версия 2.1

Это содержимое относится к: версия 2.1 Последняя версия: флажоксиняя галочка версия 4.0 (предварительная версия) |

Модель макета аналитики документов — это расширенный API анализа документов на основе машинного обучения, доступный в облаке Аналитики документов. Это позволяет принимать документы в различных форматах и возвращать структурированные представления данных документов. API макетирования сочетает в себе мощные возможности улучшенной версии оптического распознавания символов (OCR) с моделями глубокого обучения для извлечения текста, таблиц, меток выделения и структуры документа.

Анализ макета документа

Анализ макета структуры документов — это процесс анализа документа для извлечения интересующих регионов и их взаимодействия. Цель состоит в том, чтобы извлечь текст и структурные элементы со страницы, чтобы создать более семантические модели. В макете документа есть два типа ролей:

  • Геометрические роли: текст, таблицы, цифры и знаки выделения являются примерами геометрических ролей.
  • Логические роли: заголовки, заголовки и нижние колонтитулы являются примерами логических ролей текста.

На следующем рисунке показаны типичные компоненты на изображении примера страницы.

Иллюстрация примера макета документа.

Варианты разработки

Аналитика документов версии 3.1 поддерживает следующие средства, приложения и библиотеки:

Функция Ресурсы Model ID
Модель макета Аналитика
документов• REST API
• ПАКЕТ SDK
для C#
• Пакет SDK для Python• Пакет SDK для Java • Пакет SDK
java для JavaScript
prebuilt-layout

Аналитика документов версии 3.0 поддерживает следующие средства, приложения и библиотеки:

Функция Ресурсы Model ID
Модель макета Аналитика
документов• REST API
• ПАКЕТ SDK
для C#
• Пакет SDK для Python• Пакет SDK для Java • Пакет SDK
java для JavaScript
prebuilt-layout

Аналитика документов версии 2.1 поддерживает следующие средства, приложения и библиотеки:

Функция Ресурсы
Модель макета Средство
аналитики документов • REST API
пакет SDK
для клиентской библиотеки • Контейнер Docker аналитики документов

Требования к входным данным

  • Поддерживаемые форматы файлов:

    Модель PDF Изображение:
    JPEG/JPG, , BMPPNGTIFFHEIF
    Microsoft Office:
    Word (), Excel (XLSXDOCX), PowerPoint (PPTX), HTML
    Читать
    Макет ✔ (2024-07-31-preview, 2024-02-29-preview, 2023-10-31-preview)
    Документ общего назначения
    Готовое
    Настраиваемая функция извлечения
    Настраиваемая классификация ✔ (2024-07-31-preview, 2024-02-29-preview)
  • Для получения наилучших результатов предоставьте одну четкую фотографию или скан-копию документа высокого качества.

  • Для PDF и TIFF можно обрабатывать до 2000 страниц (с подпиской на бесплатный уровень только первые две страницы обрабатываются).

  • Размер файла для анализа документов составляет 500 МБ для платного уровня (S0) и 4 МБ для бесплатного уровня (F0).

  • Размеры изображения должны составлять от 50 пикселей до 50 пикселей и 10 000 пикселей x 10 000 пикселей.

  • Если PDF-файлы заблокированы паролем, перед отправкой необходимо снять блокировку.

  • Минимальная высота извлекаемого текста составляет 12 пикселей для изображения размером 1024 x 768 пикселей. Это измерение соответствует тексту 8 точки в 150 точек на дюйм (DPI).

  • Для обучения пользовательской модели максимальный объем обучающих данных составляет 500 страниц для пользовательской модели шаблона и 50 000 страниц для пользовательской нейронной модели.

    • Для обучения пользовательской модели извлечения общий размер обучающих данных составляет 50 МБ для модели шаблона и 1 ГБ для нейронной модели.

    • Для обучения пользовательской модели классификации общий размер обучающих данных составляет 1 ГБ не более 10 000 страниц. Для 2024-07-31-preview и более поздних версий общий размер обучающих данных составляет 2 ГБ с максимальным количеством 10 000 страниц.

  • Поддерживаемые форматы файлов: JPEG, PNG, PDF и TIFF.
  • Поддерживаемо количество страниц: для PDF и TIFF обрабатываются до 2000 страниц. Для подписчиков уровня "Бесплатный" обрабатываются только две первые страницы.
  • Поддерживаемый размер файла: размер файла должен быть меньше 50 МБ и размер по крайней мере 50 x 50 пикселей и не более 10 000 x 10 000 пикселей.

Начало работы с моделью макета

Узнайте, как данные, включая текст, таблицы, заголовки таблиц, метки выделения и сведения о структуре, извлекаются из документов с помощью аналитики документов. Вам потребуются следующие ресурсы:

  • Подписка Azure — ее можно создать бесплатно.

  • Экземпляр аналитики документов в портал Azure. Вы можете использовать ценовую категорию "Бесплатный" (F0), чтобы поработать со службой. После развертывания ресурса выберите Перейти к ресурсу, чтобы получить ключ и конечную точку.

Снимок экрана: расположение ключей и конечной точки на портале Azure.

Примечание.

Document Intelligence Studio доступна с API версии 3.0 и более поздними версиями.

Пример документа, обработанный с помощью Document Intelligence Studio

Снимок экрана:

  1. На домашней странице Document Intelligence Studio выберите "Макет".

  2. Вы можете проанализировать пример документа или отправить собственные файлы.

  3. Нажмите кнопку "Выполнить анализ", а при необходимости настройте параметры анализа:

    Снимок экрана: кнопки

Средство разработки меток аналитики документов

  1. Перейдите к примеру средства аналитики документов.

  2. На домашней странице примера средства выберите Use Layout to get text, tables and selection marks (Использовать макет для получения текста, таблиц и отметок выбора).

    Снимок экрана: параметры подключения для процесса макета аналитики документов.

  3. В поле конечной точки службы аналитики документов вставьте конечную точку, полученную в подписке Аналитики документов.

  4. В поле ключа вставьте ключ, полученный из ресурса аналитики документов.

  5. В поле "Источник" выберите URL-адрес из раскрывающегося меню, который можно использовать в нашем примере документа:

  6. Выберите Run Layout (Выполнить макет). Средство создания меток аналитики документов вызывает Analyze Layout API для анализа документа.

    Снимок экрана: раскрывающееся окно

  7. Просмотрите результаты: см. выделенный извлеченный текст, обнаруженные знаки выделения и обнаруженные таблицы.

    Снимок экрана: параметры подключения для средства аналитики документов.

Поддерживаемые языки и языковые стандарты

См. страницу "Поддержка языка" — модели анализа документов для полного списка поддерживаемых языков.

Аналитика документов версии 2.1 поддерживает следующие средства, приложения и библиотеки:

Функция Ресурсы
API макета Средство
аналитики документов • REST API
пакет SDK
для клиентской библиотеки • Контейнер Docker аналитики документов

Извлечение данных

Модель макета извлекает из ваших документов текст, метки выделения, таблицы, абзацы и типы абзацев (roles).

Примечание.

Версии и 2023-10-31-previewболее поздние 2024-02-29-previewверсии поддерживают файлы Microsoft Office (DOCX, XLSX, PPTX) и HTML-файлы. Следующие возможности не поддерживаются:

  • Для каждого объекта страницы нет угла, ширины и высоты и единицы.
  • Для каждого обнаруженного объекта нет ограничивающего многоугольника или ограничивающего региона.
  • Диапазон страниц (pages) не поддерживается в качестве параметра.
  • Нет lines объекта.

Pages

Коллекция страниц — это список страниц в документе. Каждая страница представлена последовательно в документе и .. /включает угол ориентации, указывающий, поворачивается ли страница и ширина и высота (измерения в пикселях). Единицы страниц в выходных данных модели подсчитываются следующим образом:

Формат файлов Вычисленная единица страницы Всего страниц
Изображения (JPEG/JPG, PNG, BMP, HEIF) Каждое изображение = 1 единица страницы Всего изображений
PDF Каждая страница PDF = 1 единица страницы Всего страниц в PDF
TIFF Каждое изображение в TIFF = 1 единица страницы Общее количество изображений в TIFF
Word (DOCX) До 3000 символов = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего страниц до 3000 символов
Excel (XLSX) Каждый лист = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего листов
PowerPoint (PPTX) Каждый слайд = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего слайдов
HTML До 3000 символов = 1 единица страницы, внедренные или связанные изображения не поддерживаются Всего страниц до 3000 символов
"pages": [
    {
        "pageNumber": 1,
        "angle": 0,
        "width": 915,
        "height": 1190,
        "unit": "pixel",
        "words": [],
        "lines": [],
        "spans": []
    }
]
# Analyze pages.
for page in result.pages:
    print(f"----Analyzing layout from page #{page.page_number}----")
    print(
        f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
    )

Извлечение выбранных страниц из документов

Для больших многостраничных документов используйте параметр запроса pages, чтобы указать конкретные номера страниц или диапазоны страниц для извлечения текста.

Абзацы

Модель макета извлекает все идентифицированные блоки текста в коллекции paragraphs как объект верхнего уровня в разделе analyzeResults. Каждая запись в этой коллекции представляет текстовый блок и .. /включает извлеченный текст какcontentи ограничивающие polygon координаты. Сведения span указывают на фрагмент текста в свойстве верхнего уровня content, содержащем весь текст из документа.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Роли абзаца

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

Прогнозируемая роль Description Поддерживаемые типы файлов
title Основные заголовки на странице pdf, image, docx, pptx, xlsx, html
sectionHeading Одно или несколько подзаголовок на странице pdf, image, docx, xlsx, html
footnote Текст в нижней части страницы pdf, изображение
pageHeader Текст по верхнему краю страницы pdf, image, docx
pageFooter Текст по нижнему краю страницы pdf, image, docx, pptx, html
pageNumber Номер страницы pdf, изображение
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Текст, строки и слова

Модель макета документа в Аналитике документов извлекает печатный и рукописный текст стиля как lines и words. Коллекция styles .. /включает любой стиль рукописного текста для строк, если они обнаружены вместе с диапазонами, указывающими на связанный текст. Эта функция применяется к поддерживаемым языкам рукописного ввода.

Для Microsoft Word, Excel, PowerPoint и HTML, Аналитика документов версии 2024-02-29-preview и 2023-10-31-preview Layout model извлекает весь внедренный текст как есть. Тексты извлекаются как слова и абзацы. Внедренные образы не поддерживаются.

"words": [
    {
        "content": "While",
        "polygon": [],
        "confidence": 0.997,
        "span": {}
    },
],
"lines": [
    {
        "content": "While healthcare is still in the early stages of its Al journey, we",
        "polygon": [],
        "spans": [],
    }
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
    words = line.get_words()
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{format_polygon(line.polygon)}'"
    )

    # Analyze words.
    for word in words:
        print(
            f"......Word '{word.content}' has a confidence of {word.confidence}"
        )

Стиль рукописного текста для текстовых строк

Ответ .. /включает классификацию того, является ли каждая текстовая строка стилем рукописного ввода или нет, а также оценка достоверности. Дополнительные сведения. См . раздел поддержки рукописного языка. В следующем примере показан пример фрагмента КОДА JSON.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Если включить возможность добавления шрифта и стиля, вы также получите результат шрифта и стиля в составе styles объекта.

Метки выделения

Модель макета также извлекает метки выбора из документов. Извлеченные метки выделения отображаются в коллекции pages для каждой страницы. Сюда входят ограничивающие метки polygon, confidence и метки выделения state (selected/unselected). Текстовое представление (то есть :selected: и :unselected) также включается в качестве начального индекса (offset) и length ссылается на свойство верхнего уровня content , содержащее полный текст документа.

{
    "selectionMarks": [
        {
            "state": "unselected",
            "polygon": [],
            "confidence": 0.995,
            "span": {
                "offset": 1421,
                "length": 12
            }
        }
    ]
}
# Analyze selection marks.
for selection_mark in page.selection_marks:
    print(
        f"Selection mark is '{selection_mark.state}' within bounding polygon "
        f"'{format_polygon(selection_mark.polygon)}' and has a confidence of {selection_mark.confidence}"
    )

Таблицы

Извлечение таблиц является ключевым требованием для обработки документов, содержащих большие объемы данных, обычно отформатированных в виде таблиц. Модель макета извлекает таблицы в pageResults разделе выходных данных JSON. Извлеченные сведения о таблице .. /включает количество столбцов и строк, диапазона строк и диапазона столбцов. Каждая ячейка с ограничивающим многоугольником выводится вместе с информацией о том, распознается ли область как columnHeader или нет. Модель поддерживает извлечение таблиц, которые поворачиваются. Каждая ячейка таблицы содержит индекс строки и столбца и координаты ограничивающего многоугольника. Для текста ячейки модель выводит сведения span, содержащие начальный индекс (offset). Модель также выводит length содержимое верхнего уровня, содержащее полный текст документа.

Ниже приведены некоторые факторы, которые следует учитывать при использовании возможности извлечения бэйла аналитики документов:

  • Являются ли данные, которые вы хотите извлечь как таблицу, и является ли структура таблицы понятной?

  • Может ли данные помещаться в двухмерную сетку, если данные не в формате таблицы?

  • Охватывают ли таблицы несколько страниц? Если это так, чтобы избежать необходимости пометить все страницы, разделите PDF на страницы, прежде чем отправлять его в аналитику документов. После анализа после обработки страниц в одну таблицу.

  • Если вы создаете пользовательские модели, обратитесь к табличным полям . Динамические таблицы имеют переменное количество строк для каждого столбца. Фиксированные таблицы имеют постоянное количество строк для каждого столбца.

Примечание.

  • Анализ таблиц не поддерживается, если входной файл — XLSX.
  • Начиная с версии 2024-07-31-preview, ограничивающие регионы для цифр и таблиц охватывают только основное содержимое и исключают связанные субтитры и сноски.
{
    "tables": [
        {
            "rowCount": 9,
            "columnCount": 4,
            "cells": [
                {
                    "kind": "columnHeader",
                    "rowIndex": 0,
                    "columnIndex": 0,
                    "columnSpan": 4,
                    "content": "(In millions, except earnings per share)",
                    "boundingRegions": [],
                    "spans": []
                    },
            ]
        }
    ]
}

# Analyze tables.
for table_idx, table in enumerate(result.tables):
    print(
        f"Table # {table_idx} has {table.row_count} rows and "
        f"{table.column_count} columns"
    )
    for region in table.bounding_regions:
        print(
            f"Table # {table_idx} location on page: {region.page_number} is {format_polygon(region.polygon)}"
        )
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
        for region in cell.bounding_regions:
            print(
                f"...content on page {region.page_number} is within bounding polygon '{format_polygon(region.polygon)}'"
            )

Заметки (доступны только в 2023-02-28-preview API.)

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

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

Естественный порядок чтения для выводимых данных (только для языков на основе латиницы)

Используя параметр запроса readingOrder, можно указать порядок, в котором будут выводиться текстовые строки. Для более удобного человеку порядка чтения используйте параметр natural (естественный), как показано в следующем примере. Такая функция поддерживается только для языков на основе латиницы.

Снимок экрана: обработка порядка чтения модели макета.

Выбор номеров страниц или диапазонов для извлечения текста

Для больших многостраничных документов используйте параметр запроса pages, чтобы указать конкретные номера страниц или диапазоны страниц для извлечения текста. В следующем примере представлен документ в 10 страниц с текстом, извлеченным в двух вариантах — все страницы (1–10) и выбранные страницы (3–6).

Снимок экрана: выходные данные выбранной модели макета страниц.

Операция получения результата формирования макета

Второй шаг — вызов операции получения результата формирования макета. Эта операция принимает в качестве входных данных идентификатор результата созданной Analyze Layout операции. Она возвращает ответ в формате JSON, содержащий поле Состояние со следующими возможными значениями.

Поле Тип Возможные значения
статус строка notStarted: операция анализа не запущена.

running: операция анализа выполняется.

failed: операция анализа завершилась ошибкой.

succeeded: операция анализа завершилась успешно.

Вызывайте эту операцию итеративно до возвращения значения succeeded. Чтобы избежать превышения частоты запросов в секунду (RPS), используйте интервал от 3 до 5 секунд.

Если поле состояния имеет succeeded значение, ответ JSON .. /включает извлеченный макет, текст, таблицы и знаки выделения. Извлеченные данные .. /включает извлеченные текстовые строки и слова, ограничивающие поля, внешний вид текста с рукописным указанием, таблицами и метками выделения с выделенными или неизбираемыми.

Рукописная классификация текстовых строк (только для латинских языков)

Ответ .. /включает классификацию того, является ли каждая текстовая строка стилем рукописного ввода или нет, а также оценка достоверности. Такая функция поддерживается только для языков на основе латиницы. В следующем примере представлена рукописная классификация для текста в изображении.

Снимок экрана: процесс классификации рукописного ввода модели макета.

Пример выходного JSON-файла

Ответ на операцию получения результата формирования макета — это структурированное представление документа со всеми извлеченными сведениями. См. здесь пример файла документа и структурированные данные распознавания в примере выходных данных макета.

Выходные данные JSON имеют две части.

  • readResults узел содержит все распознаваемые текстовые и выделенные знаки. Иерархия представления текста — страница, а затем строка, а затем отдельные слова.
  • pageResults узел содержит таблицы и ячейки, извлеченные с ограничивающими прямоугольниками, достоверность и ссылку на строки и слова в поле readResults.

Пример выходных данных

Текст

API макетирования извлекает текст из документов и изображений независимо от угла и цвета текста. Она принимает фотографии документов, факсов, печатный и (или) рукописный текст (только на английском языке) в различных комбинациях режимов. Текст извлекается, и предоставляется информация о строках, словах, ограничивающих прямоугольниках, показателях достоверности и стиле (рукописный или иной). Вся текстовая информация включена в раздел readResults выходных данных JSON.

Таблицы с заголовками

API макетирования извлекает таблицы в раздел pageResults выходных данных JSON. Документы могут быть отсканированными, сфотографированными или оцифрованными. Таблицы могут быть сложными с объединенными ячейками или столбцами, с границами или без них, а также с неровными углами. Извлеченные сведения о таблице .. /включает количество столбцов и строк, диапазона строк и диапазона столбцов. Каждая ячейка с ограничивающим полем выводится вместе с тем, распознается ли область как часть заголовка. Ячейки заголовка, которые распознала модель, могут охватывать несколько строк и необязательно быть первыми строками в таблице. Повернутые таблицы также можно распознать. Каждая ячейка таблицы также .. /включает полный текст со ссылками на отдельные слова в readResults разделе.

Пример таблиц

Метки выделения

API макетирования также извлекает метки выделения из документов. Для извлеченных меток выделения указаны ограничивающий прямоугольник, достоверность и состояние (выбрана/не выбрана). Сведения о метках выделения извлекаются в раздел readResults выходных данных JSON.

Руководство по миграции

  • Следуйте руководству по миграции с помощью аналитики документов версии 3.1, чтобы узнать, как использовать версию 3.1 в приложениях и рабочих процессах.

Следующие шаги