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

Это содержимое относится к:checkmarkv4.0 (предварительная версия)checkmark3.1 (GA)checkmarkv3.0 (GA)

В этой статье давайте рассмотрим различные объекты, возвращаемые в ответе AnalyzeDocument , и как использовать ответ API анализа документов в приложениях.

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

API аналитики документов анализируют изображения, PDF-файлы и другие файлы документов для извлечения и обнаружения различных содержимого, макета, стиля и семантических элементов. Операция анализа — это асинхронный API. Отправка документа возвращает заголовок Operation-Location , содержащий URL-адрес для опроса для завершения. После успешного завершения запроса анализа ответ содержит элементы, описанные в извлечении данных модели.

Элементы ответа

  • Элементы содержимого — это основные текстовые элементы, извлеченные из документа.

  • Элементы макета группировать элементы содержимого в структурные единицы.

  • Элементы стиля описывают шрифт и язык элементов содержимого.

  • Семантические элементы присваивают значение указанным элементам содержимого.

Все элементы содержимого группируются в соответствии со страницами, указанными номером страницы (1индексированные). Они также сортируются по порядкам чтения, который упорядочивает семантические смежные элементы вместе, даже если они пересекают границы линий или столбцов. Если порядок чтения между абзацами и другими элементами макета является неоднозначным, служба обычно возвращает содержимое в левом-правом нижнем порядке.

Примечание.

В настоящее время аналитика документов не поддерживает порядок чтения по границам страниц. Знаки выделения не размещаются в окружающих словах.

Свойство содержимого верхнего уровня содержит объединение всех элементов содержимого в порядке чтения. Все элементы указывают свою позицию в порядке чтения через диапазоны в этой строке содержимого. Содержимое некоторых элементов не всегда является непрерывным.

Анализ ответа

Ответ анализа для каждого API возвращает различные объекты. Ответы API содержат элементы из моделей компонентов, где это применимо.

Содержимое ответа Description API
Страниц Слова, строки и диапазоны распознаются на каждой странице входного документа. Чтение, макет, общие документы, предварительно созданные и пользовательские модели
Пунктах Содержимое, распознаваемого как абзацы. Чтение, макет, общие документы, предварительно созданные и пользовательские модели
Стили Определяемые свойства текстового элемента. Чтение, макет, общие документы, предварительно созданные и пользовательские модели
languages Определяемый язык, связанный с каждым диапазоном извлеченного текста Чтение
tables Табличное содержимое, идентифицированное и извлеченное из документа. Таблицы относятся к таблицам, определяемым предварительно обученной моделью макета. Содержимое, помеченное как таблицы, извлекается как структурированные поля в объекте документов. Макет, общие документы, счет и пользовательские модели
Цифры Цифры (диаграммы, изображения), идентифицированные и извлеченные из документа, предоставляющие визуальные представления, которые помогают понять сложную информацию. Модель макета
Разделы Иерархическая структура документа, определяемая и извлеченная из документа. Раздел или подраздел с соответствующими элементами (абзац, таблица, рисунок). Модель макета
keyValuePairs Пары "ключ-значение", распознанные предварительно обученной моделью. Ключ — это диапазон текста из документа с соответствующим значением. Общие модели документов и счетов
Документы Распознанные поля возвращаются в словаре в fields списке документов Предварительно созданные модели, пользовательские модели.

Дополнительные сведения об объектах, возвращаемых каждым API, см. в статье об извлечении данных модели.

Свойства элемента

Диапазоны

Диапазоны указывают логическую позицию каждого элемента в общем порядке чтения, с каждым диапазоном, указывающим смещение символов и длину в строковое свойство строки содержимого верхнего уровня. По умолчанию смещения символов и длины возвращаются в единицах воспринимаемых пользователем символов (также известных как grapheme clusters или текстовые элементы). Для размещения различных сред разработки, использующих разные символьные единицы, пользователь может указать stringIndexIndex параметр запроса для возврата смещения диапазона и длины в точках кода Юникода (Python 3) или единицах кода UTF16 (Java, JavaScript, .NET). Дополнительные сведения см. в разделе поддержки многоязычных и эмодзи.

Screenshot of detected span example.

Ограничивающий регион

Ограничивающие области описывают визуальное положение каждого элемента в файле. Если элементы не являются визуальными или перекрестными (таблицами), позиции большинства элементов описываются с помощью массива ограничивающих областей. Каждый регион задает номер страницы (1индексированные) и ограничивающий многоугольник. Ограничивающий многоугольник описывается как последовательность точек, по часовой стрелке слева относительно естественной ориентации элемента. Для четырехсторонних точек графиков — верхний левый, правый верхний, нижний правый и нижний левый угол. Каждая точка представляет свою координату x, y в единице страницы, указанной свойством единицы. Как правило, единица измерения для изображений составляет пиксели, а PDF-файлы используют дюймы.

Screenshot of detected bounding regions example.

Примечание.

В настоящее время аналитика документов возвращает только 4-вершинные четырехсторонние квадратики в качестве ограничивающих многоугольников. Будущие версии могут возвращать другое количество точек для описания более сложных фигур, таких как кривые линии или не прямоугольные изображения. Ограничивающие области применяются только к отрисованным файлам, если файл не отображается, ограничивающие области не возвращаются. В настоящее время файлы docx/xlsx/pptx/html-формат не отображаются.

Элементы содержимого

Word

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

Screenshot of detected words example.

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

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

Screenshot of detected selection marks example.

Элементы макета

График

Строка — это упорядоченная последовательность последовательных элементов содержимого, разделенных визуальным пространством, или те, которые непосредственно находятся рядом с языками без разделителей пробелов между словами. Элементы содержимого в одной горизонтальной плоскости (строка), но разделенные более чем одним визуальным пространством, чаще всего разделяются на несколько строк. Хотя эта функция иногда разбивает семантичное содержимое на отдельные строки, она позволяет разделить текстовое содержимое на несколько столбцов или ячеек. Линии в вертикальном написании обнаруживаются в вертикальном направлении.

Screenshot of detected lines example.

Абзац

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

Screenshot of detected paragraphs example.

Страница

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

Примечание.

Для электронных таблиц, таких как Excel, каждый лист сопоставляется со страницей. Для презентаций, таких как PowerPoint, каждый слайд сопоставляется со страницей. Для форматов файлов без собственной концепции страниц без отрисовки, таких как ДОКУМЕНТЫ HTML или Word, основное содержимое файла считается одной страницей.

Таблица

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

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

  • Ячейка заголовка строки обычно является первой ячейкой в строке, описывающей другие ячейки в строке.

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

  • Строка или столбец может содержать несколько ячеек заголовков для описания иерархического содержимого.

  • Заглушку головной ячейки обычно является ячейкой в первой строке и первой позиции столбца. Он может быть пустым или описать значения в ячейках заголовка в одной строке или столбце.

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

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

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

Layout table

Цифры

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

{
    "figures": [
      {
        "boundingRegions": [],
        "spans": [],
        "elements": [
          "/paragraphs/15",
          ...
        ],
        "caption": {
          "content": "Here is a figure with some text",
          "boundingRegions": [],
          "spans": [],
          "elements": [
            "/paragraphs/15"
          ]
        }
      }
    ]
}

Разделы

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

{
    "sections": [
      {
        "spans": [],
        "elements": [
          "/paragraphs/0",
          "/sections/1",
          "/sections/2",
          "/sections/5"
        ]
      },
...
}

Поле формы (пара "ключевое значение")

Поле формы состоит из метки поля (ключа) и значения. Метка поля обычно представляет собой описательную текстовую строку, описывающую значение поля. Он часто отображается слева от значения, хотя он также может отображаться над или под значением. Значение поля содержит значение содержимого определенного экземпляра поля. Значение может состоять из слов, меток выделения и других элементов содержимого. Он также может быть пустым для незаполненных полей формы. Специальный тип поля формы имеет значение знака выбора с меткой поля справа. Поле документа аналогично, но отличается от общих полей формы. Метка поля (ключ) в общем поле формы должна отображаться в документе. Таким образом, обычно он не может записывать такие сведения, как имя торговца в квитанции. Поля документа помечены и не извлекают ключ. Поля документа сопоставляют только извлеченное значение с помеченным ключом. Дополнительные сведения см. в полях документов.

Screenshot of detected key-value pairs example.

Элементы стиля

Стиль

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

Screenshot of detected style handwritten text example.


{
    "confidence": 1,
    "spans": [
        {
            "offset": 2402,
            "length": 7
        }
    ],
    "isHandwritten": true
}

Язык

Элемент языка описывает обнаруженный язык для содержимого, указанного через диапазоны в глобальное свойство содержимого. Обнаруженный язык указывается с помощью тега языка BCP-47, чтобы указать основной язык и дополнительные сведения о скрипте и регионе. Например, английский и традиционный китайский считаются "en" и zh-Hant соответственно. Региональные различия орфографии для английского языка Великобритании могут привести к обнаружению текста как en-GB. Элементы языка не охватывают текст без доминирующего языка (например, чисел).

Семантические элементы

Примечание.

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

Документ

Документ является семантической единицей. Файл может содержать несколько документов, таких как несколько налоговых форм в PDF-файле или несколько квитанций на одной странице. Однако порядок документов в файле не влияет на данные, передаваемые им.

Примечание.

В настоящее время аналитика документов не поддерживает несколько документов на одной странице.

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

Элемент документа содержит список распознанных полей из полей, указанных семантической схемой обнаруженного типа документа:

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

  • Выводимое поле не имеет свойства содержимого и представляется только через его значение.

  • Поле массива не содержит свойства содержимого. Содержимое можно объединить из содержимого элементов массива.

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

Семантическая схема типа документа описывается с помощью полей, содержащихся в нем. Каждая схема поля указывается с помощью канонического имени и типа значения. Типы значений полей включают базовые (например, string), составные (например, адрес) и структурированные (например, массив, объект) типы. Тип значения поля также указывает семантику нормализации, выполняемую для преобразования обнаруженного содержимого в представление нормализации. Нормализация может быть зависимой от языкового стандарта.

Основные типы

Тип значения поля Description Нормализованное представление Пример (содержимое поля —> значение)
строка с обычным текстом; То же, что и содержимое MerchantName: "Contoso" → "Contoso"
Дата Дата ISO 8601 - ГГГГ-ММ-ДД InvoiceDate: "5/7/2022" → "2022-05-07"
Время Время ISO 8601 - hh:mm:ss TransactionTime: "9:45 PM" → "21:45:00"
phoneNumber Номер телефона E.164 - +{CountryCode}{SubscriptionNumber} Работа Телефон: "(800) 555-7676" → "+18005557676"
countryRegion Страна/регион ISO 3166-1 альфа-3 CountryRegion: "США" → "США"
selectionMark Выбран "подписанный" или "без знака" AcceptEula: ☑ → "выбрано"
подпись Подписывается То же, что и содержимое LendeeSignature: {signature} → "подписанный"
number Число с плавающей запятой Число с плавающей запятой Количество: "1.20" → 1.2
integer Целочисленный номер 64-разрядный номер подписи Счетчик: "123" → 123
boolean Логическое значение true/false IsStatutoryEmployee: ☑ → true

Составные типы

  • Валюта: сумма валюты с необязательной единицей валюты. Например, значение: InvoiceTotal: $123.45

    {
        "amount": 123.45,
        "currencySymbol": "$"
    }
    
  • Адрес: проанализированный адрес. Например: ShipToAddress: 123 Main St., Redmond, WA 98052

    {
    "poBox": "PO Box 12",
    "houseNumber": "123",
    "streetName": "Main St.",
    "city": "Redmond",
    "state": "WA",
    "postalCode": "98052",
    "countryRegion": "USA",
    "streetAddress": "123 Main St."
    }
    

Структурированные типы

  • Массив: список полей одного типа

    "Items": {
        "type": "array",
        "valueArray": [
    
        ]
    }
    
  • Объект: именованный список подфилдов потенциально разных типов

    "InvoiceTotal": {
      "type": "currency",
      "valueCurrency": {
          "currencySymbol": "$",
          "amount": 110
      },
      "content": "$110.00",
      "boundingRegions": [
          {
              "pageNumber": 1,
              "polygon": [
                  7.3842,
                  7.465,
                  7.9181,
                  7.465,
                  7.9181,
                  7.6089,
                  7.3842,
                  7.6089
              ]
          }
      ],
      "confidence": 0.945,
      "spans": [
          {
              "offset": 806,
              "length": 7
          }
      ]
    }
    

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

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

  • Выполните краткое руководство по анализу документов и начните создавать приложение для обработки документов на выбранном языке разработки.