次の方法で共有


Document Intelligence のレイアウト モデルとは

このコンテンツの適用対象:チェックマークv4.0 (GA) | 以前のバージョン:青のチェックマークv3.1 (GA)青のチェックマークv3.0 (GA)青のチェックマークv2.1 (GA)

Foundry Tools の Azure ドキュメント インテリジェンス レイアウト モデルは、機械学習に基づく高度なドキュメント分析 API です。 このモデルは、Document Intelligence クラウドで使用できます。 それを使って、さまざまな形式のドキュメントを取得し、ドキュメントの構造化されたデータ表現を返すことができます。 このモデルは、強化されたバージョンの強力な光学式文字認識 (OCR) 機能とディープ ラーニング モデルを組み合わせて、テキスト、テーブル、選択マーク、ドキュメント構造を抽出します。

ドキュメント構造のレイアウト分析

ドキュメント構造レイアウト分析は、ドキュメントを分析して関心のある領域とその相互関係を抽出するプロセスです。 目標は、より適切なセマンティック理解モデルを構築するために、ページからテキストと構造要素を抽出することです。 ドキュメント レイアウトには 2 種類のロールがあります。

  • ジオメトリック ロール: テキスト、テーブル、図形、選択マークは、ジオメトリック ロールの例です。
  • 論理ロール: タイトル、見出し、フッターはテキストの論理ロールの例です。

次の図は、サンプル ページの画像内の一般的なコンポーネントを示しています。

ドキュメント レイアウトの例を示す図。

開発オプション

Document Intelligence v4.0: 2024-11-30 (GA) では、次のツール、アプリケーション、ライブラリがサポートされています。

特徴量 リソース モデル ID
レイアウト モデル Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

サポートされている言語

サポートされている言語の完全な一覧については、言語サポートのドキュメント分析モデルに関する記事をご覧ください。

サポートされるファイルの種類

Document Intelligence v4.0: 2024-11-30 (GA) のレイアウト モデルでは、次のファイル形式がサポートされています。

モデル PDF 画像:
JPEG/JPG、PNG、BMP、TIFF、HEIF
Office:
Word (DOCX)、Excel (XLS)、PowerPoint (PPTX)、HTML
レイアウト

入力の要件

  • 写真とスキャン: 最適な結果を得るには、ドキュメントごとに 1 つの鮮明な写真または高品質のスキャンを用意します。
  • PDF と TIFF: PDF とTIFF の場合、最大 2,000 ページを処理できます。 (Free レベルのサブスクリプションでは、最初の 2 ページのみが処理されます。)
  • パスワード ロック: PDF がパスワードでロックされている場合は、送信前にロックを解除する必要があります。
  • ファイル サイズ: ドキュメントを分析するためのファイル サイズは、有料 (S0) レベルでは 500 MB、Free (F0) レベルでは 4 MB です。
  • 画像の寸法: 画像の寸法は、50 ピクセル x 50 ピクセルから 10,000 ピクセル x 10,000 ピクセルの間である必要があります。
  • テキストの高さ: 抽出されるテキストの最小の高さは、1024 x 768 ピクセルの画像の場合で 12 ピクセルです。 この寸法は、150 DPI で約 8 ポイントのテキストに相当します。
  • カスタム モデル トレーニング: トレーニング データの最大ページ数は、カスタム テンプレート モデルの場合は 500、カスタム ニューラル モデルの場合は 50,000 です。
  • カスタム抽出モデルのトレーニング: トレーニング データの合計サイズは、テンプレート モデルの場合で 50 MB、ニューラル モデルの場合で 1 GB です。
  • カスタム分類モデル トレーニング: トレーニング データの合計サイズは 1 GB で、最大 10,000 ページです。 2024-11-30 (GA) の場合、トレーニング データの合計サイズは 2 GB で、最大 10,000 ページです。
  • Office ファイルの種類 (DOCX、XLSX、PPTX): 文字列の最大長の制限は 800 万文字です。

モデルの使用、クォータ、サービスの制限について詳しくは、サービスの制限に関する記事をご覧ください。

レイアウト モデルの概要

Document Intelligence を使って、テキスト、テーブル、テーブル ヘッダー、選択マーク、構造情報などのデータをドキュメントから抽出する方法について説明します。 次のリソースが必要です。

  • Azure サブスクリプション。 無料で作成できます

  • Azure portal の Document Intelligence インスタンス。 Free 価格レベル (F0) を利用して、サービスを試すことができます。 リソースがデプロイされたら、[リソースに移動] を選択してキーとエンドポイントを取得します。

    Azure portal でのキーとエンドポイントの場所を示すスクリーンショット。

キーとエンドポイントを取得した後、次の開発オプションを使い、Document Intelligence アプリケーションを構築してデプロイします。

データの抽出

レイアウト モデルは、ドキュメントから構造要素を抽出します。 この記事の残りの部分では、次の構造要素と、それらをドキュメント入力から抽出する方法に関するガイダンスについて説明します。

Document Intelligence Studio 内でサンプル レイアウトのドキュメント分析を実行します。 次に、結果タブに移動し、完全な JSON 出力にアクセスします。

Document Intelligence Studio の JSON 出力タブでの結果を示すスクリーンショット。

ページ

pages コレクションは、ドキュメント内のページのリストです。 各ページがドキュメント内の順番で表されており、ページが回転されているかどうかを示す向きの角度と、幅と高さ (ピクセル単位の寸法) が含まれます。 モデル出力でのページ単位は、次の表で示すように計算されます。

ファイル形式 計算されるページ単位 [総ページ数]
画像 (JPEG/JPG、PNG、BMP、HEIF) 各画像 = 1 ページ単位。 画像の合計
PDF PDF の各ページ = 1 ページ単位。 PDF のページの合計数
TIFF TIFF の各画像 = 1 ページ単位。 TIFF の画像の合計数
Word (DOCX) 最大 3,000 文字 = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 最大 3,000 文字ずつのページの合計数
Excel (XLSX) 各ワークシート = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 合計ワークシート数
PowerPoint (PPTX) 各スライド = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 合計スライド数
HTML 最大 3,000 文字 = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 最大 3,000 文字ずつのページの合計数
# 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 座標を含みます。 spans情報は、ドキュメントのテキスト全体を含む最上位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"
    }
]

段落の役割

機械学習に基づく新しいページ オブジェクト検出では、タイトル、セクション見出し、ページ ヘッダー、ページ フッターなどの論理的な役割が抽出されます。 Document Intelligence のレイアウト モデルでは、paragraphs コレクション内の特定のテキスト ブロックに、モデルによって予測される特殊な役割または種類が割り当てられます。

抽出されたコンテンツのレイアウトを理解して、より高度なセマンティック分析を実現するために、非構造化ドキュメントで段落の役割を使用することをお勧めします。 次の段落の役割がサポートされています。

予測される役割 Description サポートされるファイルの種類
title ページのメインの見出し PDF、画像、DOCX、PPTX、XLSX、HTML
sectionHeading ページの 1 つ以上の小見出し PDF、画像、DOCX、XLSX、HTML
footnote ページの下部付近のテキスト PDF、画像
pageHeader ページの上端付近のテキスト PDF、画像、DOCX
pageFooter ページの下端付近のテキスト PDF、画像、DOCX、PPTX、HTML
pageNumber ページ番号 PDF、画像
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

テキスト、行、単語

Document Intelligence のドキュメント レイアウト モデルでは、印刷と手書きスタイルのテキストが lineswords として抽出されます。 styles コレクションには、行の手書きスタイル (検出された場合) と、それに関連付けられたテキストを指すスパンが含まれます。 この機能は、サポートされている手書き言語に適用されます。

Microsoft Word、Excel、PowerPoint、HTML の場合、Document Intelligence v4.0 2024-11-30 (GA) のレイアウト モデルでは、すべての埋め込みテキストがそのまま抽出されます。 テキストは単語と段落として抽出されます。 埋め込み画像はサポートされません。

# 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 コレクション内に示されます。 これには、境界 polygonconfidence、および選択 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}"
        )

テーブルの抽出は、通常はテーブルとして書式設定されている大量のデータを含むドキュメントを処理するための重要な要件です。 レイアウト モデルでは、JSON 出力の pageResults セクションでテーブルが抽出されます。 抽出されるテーブル情報には、列と行の数、行の範囲、列の範囲が含まれます。

各セルとその境界多角形が、その領域が columnHeader として認識されるかどうかを示す情報と共に出力されます。 このモデルでは、回転されるテーブルの抽出がサポートされています。 各テーブル セルには、行と列のインデックスと境界ポリゴン座標が含まれています。 セル テキストの場合、モデルからは開始インデックス (span) を含む offset 情報が出力されます。 また、このモデルは、ドキュメントのテキスト全体を含む最上位コンテンツ内の length も出力します。

Document Intelligence のテーブル抽出機能を使うときに考慮すべきいくつかの要因を次に示します。

  • 抽出するデータはテーブルとして表されていますか? また、テーブル構造には意味がありますか?
  • データがテーブル形式でない場合、そのデータは 2 次元グリッドに収まりますか?
  • テーブルは複数のページにまたがっていますか? そうである場合は、すべてのページにラベルを付ける必要がないように、PDF を Document Intelligence に送信する前にページに分割します。 分析の後に、そのページを 1 つのテーブルに後処理します。
  • カスタム モデルを作成する場合は、「表形式フィールド」をご覧ください。 動的テーブルには、列ごとに可変数の行があります。 固定テーブルには、列ごとに一定数の行があります。

入力ファイルが XLSX の場合、テーブル分析はサポートされません。 2024-11-30 (GA) の場合、図とテーブルの境界領域はコア コンテンツのみをカバーし、関連するキャプションと脚注は含まれません。

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 形式で出力できます。 Markdown の出力形式を指定するには、outputContentFormat=markdown を使います。 Markdown のコンテンツは、content セクションの一部として出力されます。

v4.0 2024-11-30 (GA) では、結合されたセルや複数行のヘッダーのようなアイテムをレンダリングできるように、テーブルの表現が HTML テーブルに変更されています。 もう 1 つの関連する変更は、選択マークとして :selected::unselected: の代わりに、Unicode のチェック ボックス文字☒と☐が使われていることです。 この更新は、選択マーク フィールドのスパンは最上位レベルのスパンの Unicode 文字を参照しているものの、その内容には :selected: が含まれることを意味します。 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,
)

図形

ドキュメント内の図 (グラフと画像) は、テキスト コンテンツを補完および拡張する上で重要な役割を果たします。 これらは、複雑な情報の解釈に役立つ視覚的表現を提供します。 レイアウト モデルによって検出された figures オブジェクトには、次のような重要なプロパティがあります。

  • boundingRegions: ドキュメント ページ上の図の空間位置。ページ番号と、図の境界の輪郭を示す多角形の座標が含まれます。
  • spans: ドキュメントのテキスト内でのオフセットと長さを指定する、図に関連するテキスト スパン。 この結び付きは、図とその関連するテキスト コンテキストを関連付けるのに役立ちます。
  • elements: ドキュメント内の、図に関連する、または図を説明するテキスト要素または段落の識別子。
  • caption: 存在する場合の説明。

初期分析操作の間に output=figures を指定すると、サービスは /analyeResults/{resultId}/figures/{figureId} を介してアクセスできる検出されたすべての図のトリミングされた画像を生成します。 FigureId の値は各図オブジェクトに含まれる ID です。それは {pageNumber}.{figureIndex} という文書化されていない規則に従い、figureIndex はページごとに 1 にリセットされます。

v4.0 2024-11-30 (GA) の場合、図とテーブルの境界領域はコア コンテンツのみをカバーし、関連するキャプションと脚注は含まれません。

# 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}'")

セクション

階層型ドキュメント構造分析は、幅広いドキュメントの整理、理解、処理において極めて重要です。 このアプローチは、理解力を高め、ナビゲーションを容易にし、情報の取得を改善するために、長いドキュメントを意味的にセグメント化するために不可欠です。 ドキュメント生成 AI における検索拡張生成 (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,
)

このコンテンツの適用対象:チェックマークv3.1 (GA) | 最新バージョン:紫のチェックマークv4.0 (GA) | 以前のバージョン:青のチェックマークv3.0青のチェックマークv2.1

このコンテンツの適用対象:チェックマークv3.0 (GA) | 最新バージョン:紫のチェックマークv4.0 (GA)紫のチェックマークv3.1 | 以前のバージョン:青のチェックマークv2.1

このコンテンツの適用対象:チェックマークv2.1 | 最新バージョン:青のチェックマークv4.0 (GA)

Document Intelligence のレイアウト モデルは、高度なドキュメント分析 API です。 このモデルは機械学習に基づいており、Document Intelligence クラウドで使用できます。 それを使って、さまざまな形式のドキュメントを取得し、ドキュメントの構造化されたデータ表現を返すことができます。 強化されたバージョンの強力な OCR 機能とディープ ラーニング モデルが組み合わされています。 これを使って、テキスト、テーブル、選択マーク、ドキュメント構造を抽出できます。

ドキュメント レイアウト分析

ドキュメント構造レイアウト分析は、ドキュメントを分析して関心のある領域とその相互関係を抽出するプロセスです。 目標は、より適切なセマンティック理解モデルを構築するために、ページからテキストと構造要素を抽出することです。 ドキュメント レイアウトには 2 種類のロールがあります。

  • ジオメトリック ロール: テキスト、テーブル、図形、選択マークは、ジオメトリック ロールの例です。
  • 論理ロール: タイトル、見出し、フッターはテキストの論理ロールの例です。

次の図は、サンプル ページの画像内の一般的なコンポーネントを示しています。

ドキュメント レイアウトの例を示す図。

サポートされている言語とロケール

サポートされている言語の完全な一覧については、言語サポートのドキュメント分析モデルに関する記事をご覧ください。

Document Intelligence v2.1 では、次のツール、アプリケーション、ライブラリがサポートされています。

特徴量 リソース
レイアウト モデル Document Intelligence ラベル付けツール
REST API
クライアント ライブラリ SDK
Document Intelligence Docker コンテナー

入力ガイダンス

サポートされているファイル形式:

モデル PDF 画像:
JPEG/JPG、PNG、BMP、TIFF、HEIF
Office:
Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX)、HTML
Read
レイアウト
一般ドキュメント
事前構築済み
カスタム抽出
カスタム分類
  • 写真とスキャン: 最適な結果を得るには、ドキュメントごとに 1 つの鮮明な写真または高品質のスキャンを用意します。
  • PDF と TIFF: PDF と TIFF の場合、Free レベルのサブスクリプションで最大 2,000 ページを処理できます。 最初の 2 ページのみが処理されます。
  • ファイル サイズ: ドキュメントを分析するためのファイル サイズは、有料 (S0) レベルでは 500 MB、Free (F0) レベルでは 4 MB です。
  • 画像の寸法: 画像の寸法は、50 ピクセル x 50 ピクセルから 10,000 ピクセル x 10,000 ピクセルの間である必要があります。
  • パスワード ロック: PDF がパスワードでロックされている場合は、送信前にロックを解除する必要があります。
  • テキストの高さ: 抽出されるテキストの最小の高さは、1024 x 768 ピクセルの画像の場合で 12 ピクセルです。 この寸法は、150 DPI で約 8 ポイントのテキストに相当します。
  • カスタム モデル トレーニング: トレーニング データの最大ページ数は、カスタム テンプレート モデルの場合は 500、カスタム ニューラル モデルの場合は 50,000 です。
  • カスタム抽出モデルのトレーニング: トレーニング データの合計サイズは、テンプレート モデルの場合で 50 MB、ニューラル モデルの場合で 1 GB です。
  • カスタム分類モデル トレーニング: トレーニング データの合計サイズは 1 GB で、最大 10,000 ページです。 2024-11-30 (GA) の場合、トレーニング データの合計サイズは 2 GB で、最大 10,000 ページです。
  • Office ファイルの種類 (DOCX、XLSX、PPTX): 文字列の最大長の制限は 800 万文字です。

入力ガイド

  • サポートされているファイル形式: JPEG、PNG、PDF、TIFF。
  • サポートされているページ数: PDF と TIFF の場合、最大 2,000 ページが処理されます。 Free レベルのサブスクライバーの場合は、最初の 2 ページだけが処理されます。
  • サポートされているファイル サイズ: ファイル サイズは 50 MB 未満でなければならず、寸法は 50 x 50 ピクセル以上、10,000 x 10,000 ピクセル以下である必要があります。

概要

Document Intelligence を使うと、ドキュメントからテキスト、テーブル、テーブル ヘッダー、選択マーク、構造情報などのデータを抽出できます。 次のリソースが必要です。

  • Azure サブスクリプション。 無料で作成できます
  • Azure portal の Document Intelligence インスタンス。 Free 価格レベル (F0) を利用して、サービスを試すことができます。 リソースがデプロイされたら、[リソースに移動] を選択してキーとエンドポイントを取得します。

Azure portal でのキーとエンドポイントの場所を示すスクリーンショット。

キーとエンドポイントを取得した後、次の開発オプションを使い、Document Intelligence アプリケーションを構築してデプロイできます。

Document Intelligence Studio は、v3.0 API 以降のバージョンで使用できます。

REST API

Document Intelligence サンプル ラベル付けツール

  1. Document Intelligence サンプル ラベル付けツールに移動します。

  2. サンプル ツールのホーム ページで、[Use Layout to get text, tables and selection marks](レイアウトを使用してテキスト、テーブル、選択マークを取得する) を選択します。

    Document Intelligence レイアウト プロセスの接続設定を示すスクリーンショット。

  3. [Document Intelligence サービス エンドポイント] フィールドに、Document Intelligence サブスクリプションで取得したエンドポイントを貼り付けます。

  4. キー フィールドに、Document Intelligence リソースから取得したキーを貼り付けます。

  5. [ソース] フィールドで、ドロップダウン メニューから [URL] を選びます。 サンプル ドキュメントを使用できます。

  6. [Run Layout]\(レイアウトの実行\) を選択します。 Document Intelligence サンプル ラベル付けツールによって Analyze Layout API が呼び出されてドキュメントが分析されます。

    [レイアウト] ドロップダウン ペインを示すスクリーンショット。

  7. 結果を表示します。 強調表示されている抽出されたテキスト、検出された選択マーク、検出されたテーブルを確認します。

    Document Intelligence サンプル ラベル付けツールの接続設定を示すスクリーンショット。

Document Intelligence v2.1 では、次のツール、アプリケーション、ライブラリがサポートされています。

特徴量 リソース
レイアウトAPI Document Intelligence ラベル付けツール
REST API
クライアント ライブラリ SDK
Document Intelligence Docker コンテナー

データを抽出する

レイアウト モデルは、ドキュメントから構造要素を抽出します。 ここでは構造要素について説明します。以下のガイダンスでは、ドキュメント入力からそれらを抽出する方法を示します。

データを抽出する

レイアウト モデルは、ドキュメントから構造要素を抽出します。 ここでは構造要素について説明します。以下のガイダンスでは、ドキュメント入力からそれらを抽出する方法を示します。

ページ

pages コレクションは、ドキュメント内のページのリストです。 各ページがドキュメント内の順番で表されており、ページが回転されているかどうかを示す向きの角度と、幅と高さ (ピクセル単位の寸法) が含まれます。 モデル出力でのページ単位は、次の表で示すように計算されます。

ファイル形式 計算されるページ単位 [総ページ数]
画像 (JPEG/JPG、PNG、BMP、HEIF) 各画像 = 1 ページ単位。 画像の合計
PDF PDF の各ページ = 1 ページ単位。 PDF のページの合計数
TIFF TIFF の各画像 = 1 ページ単位。 TIFF の画像の合計数
Word (DOCX) 最大 3,000 文字 = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 最大 3,000 文字ずつのページの合計数
Excel (XLSX) 各ワークシート = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 合計ワークシート数
PowerPoint (PPTX) 各スライド = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 合計スライド数
HTML 最大 3,000 文字 = 1 ページ単位。 埋め込まれた、またはリンクされた画像はサポートされていません。 最大 3,000 文字ずつのページの合計数
"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"
    }
]

段落ロール

機械学習に基づく新しいページ オブジェクト検出では、タイトル、セクション見出し、ページ ヘッダー、ページ フッターなどの論理的な役割が抽出されます。 Document Intelligence のレイアウト モデルでは、paragraphs コレクション内の特定のテキスト ブロックに、モデルによって予測される特殊な役割または種類が割り当てられます。 抽出されたコンテンツのレイアウトを理解して、より高度なセマンティック分析を実現するために、非構造化ドキュメントで段落の役割を使用することをお勧めします。 次の段落の役割がサポートされています。

予測される役割 Description サポートされるファイルの種類
title ページのメイン見出し PDF、画像、DOCX、PPTX、XLSX、HTML
sectionHeading ページの 1 つ以上の小見出し PDF、画像、DOCX、XLSX、HTML
footnote ページの下部付近のテキスト PDF、画像
pageHeader ページの上端付近のテキスト PDF、画像、DOCX
pageFooter ページの下端付近のテキスト PDF、画像、DOCX、PPTX、HTML
pageNumber ページ番号 PDF、画像
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

テキスト、行、および単語

Document Intelligence のドキュメント レイアウト モデルでは、印刷と手書きスタイルのテキストが行と単語として抽出されます。 styles コレクションには、行の手書きスタイル (検出された場合) と、それに関連付けられたテキストを指すスパンが含まれます。 この機能は、サポートされている手書き言語に適用されます。

Word、Excel、PowerPoint、HTML の場合、Document Intelligence v4.0 2024-11-30 (GA) のレイアウト モデルでは、すべての埋め込みテキストがそのまま抽出されます。 テキストは単語と段落として抽出されます。 埋め込み画像はサポートされません。

"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 コレクション内に示されます。 これには、境界 polygonconfidence、および選択 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}"
    )

テーブル

テーブルの抽出は、通常はテーブルとして書式設定されている大量のデータを含むドキュメントを処理するための重要な要件です。 レイアウト モデルでは、JSON 出力の pageResults セクションでテーブルが抽出されます。 抽出されるテーブル情報には、列と行の数、行の範囲、列の範囲が含まれます。 各セルとその境界多角形が、その領域が columnHeader として認識されるかどうかを示す情報と共に出力されます。

このモデルでは、回転されるテーブルの抽出がサポートされています。 各テーブル セルには、行と列のインデックスと境界ポリゴン座標が含まれています。 セル テキストの場合、モデルからは開始インデックス (span) を含む offset 情報が出力されます。 また、このモデルは、ドキュメントのテキスト全体を含む最上位コンテンツ内の length も出力します。

Document Intelligence のテーブル抽出機能を使うときに考慮すべきいくつかの要因を次に示します。

  • 抽出するデータはテーブルとして表されていますか? また、テーブル構造には意味がありますか?
  • データがテーブル形式でない場合、そのデータは 2 次元グリッドに収まりますか?
  • テーブルは複数のページにまたがっていますか? そうである場合は、すべてのページにラベルを付ける必要がないように、PDF を Document Intelligence に送信する前にページに分割します。 分析の後に、そのページを 1 つのテーブルに後処理します。
  • カスタム モデルを作成する場合は、「表形式フィールド」をご覧ください。 動的テーブルには、列ごとに可変数の行があります。 固定テーブルには、列ごとに一定数の行があります。

入力ファイルが XLSX の場合、テーブル分析はサポートされません。 Document Intelligence v4.0 2024-11-30 (GA) でサポートされる図とテーブルの境界領域ではコア コンテンツのみがカバーされ、関連するキャプションと脚注は含まれません。

{
    "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)}'"
            )

注釈

レイアウト モデルでは、チェックやクロスなどのドキュメント内の注釈が抽出されます。 応答には、信頼度スコアと多角形領域と共に、注釈の種類が含まれます。

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

自然な読み取り順序の出力 (ラテンのみ)

readingOrder クエリ パラメーターを使用し、テキスト行の出力順序を指定できます。 次の例に示すように、出力を人間が読みやすい順序にするには、natural を使います。 この機能は、ラテン語系の言語でのみサポートされています。

レイアウト モデルの読み順処理のスクリーンショット。

テキスト抽出のためにページ番号または範囲を選択する

大きな複数ページのドキュメントの場合は、pages クエリ パラメーターを使って、テキスト抽出対象の特定のページ番号またはページ範囲を示します。 次に示すのは 10 ページのドキュメントの例であり、すべてのページ (1 から 10) と選んだページ (3 から 6) の両方に対して抽出されるテキストです。

レイアウト モデルで選ばれたページの出力を示すスクリーンショット。

レイアウト分析結果取得操作

2 番目の手順では、レイアウト分析結果取得操作を呼び出します。 この操作は、Analyze Layout 操作によって作成された結果 ID を入力として受け取ります。 これにより、次の設定可能な値を持つ status フィールドが含まれた JSON 応答が返されます。

フィールド タイプ 指定できる値
status 文字列 notStarted: 分析操作が開始されていません。

running: 分析操作が進行中です。

failed: 分析操作に失敗しました。

succeeded: 分析操作に成功しました。

succeeded 値が返されるまで、この操作を繰り返し呼び出します。 1 秒あたりの要求数を超えないようにするため、3 から 5 秒の間隔を使います。

status フィールドの値が succeeded である場合、JSON の応答には、抽出されたレイアウト、テキスト、テーブル、選択マークが含まれます。 抽出されるデータには、抽出されたテキスト行と単語、境界ボックス、手書きの指示があるテキスト外観、テーブル、選択マークと選択または非選択の指示が含まれます。

テキスト行の手書き分類 (ラテンのみ)

応答には、各テキスト行が手書きスタイルかどうかの分類と、信頼度スコアが含まれます。 この機能は、ラテン語系の言語でのみサポートされています。 次の例は、画像内のテキストの手書き分類を示しています。

レイアウト モデルの手書き分類プロセスを示すスクリーンショット。

サンプル JSON 出力

Get Analyze Layout Result 操作に対する応答は、抽出されたすべての情報を含むドキュメントの構造化表現です。 サンプルのドキュメント ファイルと、その構造化された出力であるサンプル レイアウト出力を参照してください。

JSON 出力には次の 2 つの部分があります。

  • readResults ノードには、認識されたすべてのテキストと選択マークが含まれます。 テキスト表現の階層は、ページ、次に行、それから個々の単語です。
  • pageResults ノードの readResults フィールドには、抽出されたテーブルとセルと共に、それらの境界ボックス、信頼度、行と単語への参照が含まれます。

出力例

テキスト

レイアウト API によって、テキストの角度と色が複数含まれるドキュメントや画像からテキストが抽出されます。 ドキュメント、FAX、印刷や手書きのテキスト (英語のみ)、混合モードの写真を受け入れます。 テキストは、行、単語、境界ボックス、信頼度スコア、スタイル (手書きなど) に関して提供される情報と共に抽出されます。 すべてのテキスト情報は、JSON 出力の readResults セクションに含まれています。

ヘッダーが含まれるテーブル

Layout API は、JSON 出力の pageResults セクションにテーブルを抽出します。 ドキュメントのスキャン、写真撮影、デジタル化を行うことができます。 テーブルは、セルまたは列が結合されている複雑なものや、罫線があるもの、またはないもの、不規則な角度のものも含まれます。

抽出されるテーブル情報には、列と行の数、行の範囲、列の範囲が含まれます。 境界ポリゴンのある各セルは、その領域がヘッダーの一部として認識されているかどうかにかかわらず、情報と共に出力されます。 モデルで予測されたヘッダー セルは複数の行にまたがることがあり、必ずしもテーブルの最初の行であるとは限りません。 これらは、回転されたテーブルに対しても機能します。 各テーブル セルには、readResults セクションの個々の単語への参照を含むフル テキストも含まれます。

テーブルの例を示す図。

選択マーク (ドキュメント)

レイアウト API では、ドキュメントから選択マークも抽出されます。 抽出される選択マークには、境界ボックス、信頼度、状態 (選択または非選択) が含まれます。 選択マークの情報は、JSON 出力の readResults セクションに抽出されます。

移行ガイド