次の方法で共有


ドキュメント インテリジェンス レイアウト モデル

重要

  • Document Intelligence パブリック プレビュー リリースは、開発中の機能への早期アクセスを提供します。 機能、アプローチ、およびプロセスは、一般提供 (GA) の前に、ユーザーからのフィードバックに基づいて変更される可能性があります。
  • Document Intelligence クライアント ライブラリのパブリック プレビュー バージョンは、REST API バージョン 2024-07-31-preview にデフォルトで設定されています。
  • パブリック プレビュー バージョン 2024-07-31-preview は、現在、次の Azure リージョンでのみ使用できます。 AI Studio のカスタム生成 (ドキュメント フィールド抽出) モデルは、米国中北部リージョンでのみ使用できます。
    • 米国東部
    • 米国西部 2
    • "西ヨーロッパ"
    • 米国中北部

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

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

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

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

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

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

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

開発オプション (v4)

Document Intelligence v4.0 (2024-07-31-preview) は、次のツール、アプリケーション、ライブラリをサポートします。

機能 リソース モデル ID
レイアウト モデル Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
事前構築済みレイアウト

入力の要件 (v4)

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

    モデル PDF 画像:
    JPEG/JPGPNGBMPTIFFHEIF
    Microsoft Office:
    Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX)、HTML
    読み込み
    Layout ✔ (2024-07-31-preview、2024-02-29-preview、2023-10-31-preview)
    一般的なドキュメント
    事前構築済み
    カスタム抽出
    カスタム分類 ✔ (2024-07-31-preview、2024-02-29-preview)
  • 最適な結果を得るには、ドキュメントごとに 1 つの鮮明な写真または高品質のスキャンを提供してください。

  • PDF および TIFF の場合、最大 2,000 ページを処理できます (Free レベルのサブスクリプションでは、最初の 2 ページのみが処理されます)。

  • ドキュメントを分析するためのファイル サイズは、有料 (S0) レベルでは 500 MB、無料 (F0) レベルでは 4 MB です。

  • 画像のディメンションは、50 ピクセル x 50 ピクセルから 10,000 ピクセル x 10,000 ピクセルの間である必要があります。

  • PDF がパスワードでロックされている場合は、送信前にロックを解除する必要があります。

  • 抽出するテキストの最小の高さは、1024 x 768 ピクセルのイメージの場合は 12 ピクセルです。 このディメンションは、150 DPI (1 インチあたりのドット数) で約 8 ポイントのテキストに相当します。

  • カスタム モデル トレーニングにおけるトレーニング データの最大ページ数は、カスタム テンプレート モデルの場合は 500、カスタム ニューラル モデルの場合は 50,000 です。

    • カスタム抽出モデル トレーニングにおけるトレーニング データの合計サイズは、テンプレート モデルの場合は 50 MB、ニューラル モデルの場合は 1 GB です。

    • カスタム分類モデル トレーニングの場合、トレーニング データの合計サイズは 1 GB で、最大 10,000 ページです。 2024-07-31-preview 以降の場合、トレーニング データの合計サイズは 2 GB で、最大 10,000 ページです。

レイアウト モデルの概要

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

Note

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

"Document Intelligence Studio で処理されたサンプル ドキュメント"

Document Intelligence Studio での新聞ページの [レイアウト] 処理のスクリーンショット。

  1. Document Intelligence Studio ホーム ページで、[レイアウト] を選択します。

  2. サンプル ドキュメントを分析したり、独自のファイルをアップロードしたりできます。

  3. [分析の実行] ボタンを選択し、必要に応じて [分析オプション] を構成します。

    Document Intelligence Studio の [分析の実行] と [分析オプション] ボタンのスクリーンショット。

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

サポートされている言語の完全なリストについては、言語サポート — ドキュメント分析モデルに関するページを参照してください。

データの抽出 (v4)

レイアウト モデルは、ドキュメントから、テキスト、選択マーク、テーブル、段落、段落の種類 (roles) を抽出します。

Note

バージョン 2024-02-29-preview2023-10-31-preview、およびそれ以降では、Microsoft Office (DOCX、XLSX、PPTX) ファイルと HTML ファイルがサポートされています。 次の機能はサポートされていません。

  • 各ページ オブジェクトには、角度、幅/高さ、および単位はありません。
  • 検出される各オブジェクトには、多角形領域も境界領域もありません。
  • ページ範囲 (pages) はパラメーターとしてサポートされていません。
  • lines オブジェクトはありません。

ページ

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

ファイル形式 計算されるページ単位 [総ページ数]
画像 (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 クエリ パラメーターを使用し、テキスト抽出対象として特定のページ番号またはページ範囲を示します。

段落

レイアウト モデルは、analyzeResults の最上位オブジェクトとして、paragraphs コレクション内の識別されたテキスト ブロックすべてを抽出します。 このコレクション内の各エントリはテキスト ブロックを表し、抽出されたテキスト (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 コレクション内の特定のテキスト ブロックに、モデルによって予測される特殊なロールまたは型が割り当てられます。 抽出されたコンテンツのレイアウトを理解して、より高度なセマンティック分析を実現するために、非構造化ドキュメントで段落の役割を使用することをお勧めします。 次の段落の役割がサポートされています。

予測される役割 説明 サポートされているファイルの種類
title ページのメイン見出し pdf、image、docx、pptx、xlsx、html
sectionHeading ページの 1 つ以上の小見出し pdf、image、docx、xlsx、html
footnote ページの下部付近のテキスト pdf、image
pageHeader ページの上端付近のテキスト pdf、image、docx
pageFooter ページの下端付近のテキスト pdf、image、docx、pptx、html
pageNumber ページ番号 pdf、image
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

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

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

Microsoft Word、Excel、PowerPoint、HTML の場合、Document Intelligence バージョン 2024-02-29-preview および 2023-10-31-preview のレイアウト モデルでは、埋め込みテキストがすべてそのまま抽出されます。 テキストは単語と段落として抽出されます。 埋め込み画像はサポートされません。

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

Tables

テーブルの抽出は、通常、テーブルとして書式設定された大量のデータを含むドキュメントを処理するための重要な要件です。 レイアウト モデルでは、JSON 出力の pageResults セクションにテーブルが抽出されます。 抽出されたテーブルの情報には、列と行の数、行の span、列の span が含まれています。 境界ポリゴンのある各セルは、その領域が columnHeader として認識されているかどうかにかかわらず、情報と共に出力されます。 このモデルでは、回転されるテーブルの抽出がサポートされています。 各テーブル セルには、行と列のインデックスと境界ポリゴン座標が含まれています。 セル テキストの場合、このモデルは開始インデックス (offset) を含む span 情報を出力します。 また、このモデルは、ドキュメントのテキスト全体を含む最上位コンテンツ内の length も出力します。

Document Intelligence ベール抽出機能を使用する際の考慮事項は、次のとおりです。

  • 抽出するデータはテーブルとして表されていますか? また、テーブル構造には意味がありますか?

  • データがテーブル形式でない場合、そのデータは 2 次元グリッドに収まりますか?

  • テーブルは複数のページにまたがっていますか? その場合は、すべてのページにラベルを付けなくても済むように、PDF を Document Intelligence に送信する前にページに分割します。 分析の後に、そのページを 1 つのテーブルに後処理します。

  • カスタム モデルを作成する場合は、「表形式フィールド」を参照してください。 動的テーブルには、列ごとに可変数の行があります。 固定テーブルには、列ごとに一定数の行があります。

Note

  • 入力ファイルが 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}'")

マークダウン形式への出力

Layout API では、抽出されたテキストをマークダウン形式で出力できます。 outputContentFormat=markdown を使用して、マークダウンの出力形式を指定します。 マークダウン コンテンツは、content セクションの一部として出力されます。

Note

2024-07-31-preview 以降では、テーブルの表現が HTML テーブルに変更され、結合されたセルや複数行ヘッダーなどのレンダリングが可能になります。もう 1 つの関連する変更は、:selected: と :unselected: の代わりに、Unicode のチェック ボックス文字である☒と☐を選択マークとして使用することです。 これは、スパンが最上位レベルのスパンの Unicode 文字を参照している場合でも、選択マーク フィールドの内容に :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 (存在する場合) です。

output=figures が最初の分析操作中に指定されると、サービスは、/analyeResults/{resultId}/figures/{figureId} 経由でアクセスできるすべての検出済みの図形に対してトリミングされた画像を生成します。 figureIndex がページあたり 1 つにリセットされる {pageNumber}.{figureIndex} の文書化されていない規則に従って、FigureId が各図形オブジェクトに含まれます。

Note

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

セクション

階層型ドキュメント構造分析は、幅広いドキュメントの整理、理解、処理において極めて重要です。 このアプローチは、理解力を高め、ナビゲーションを容易にし、情報の取得を改善するために、長いドキュメントを意味的にセグメント化するために不可欠です。 ドキュメント生成 AI で 取得拡張生成 (RAG) が登場したことで、階層型ドキュメント構造分析の重要性が強調されています。 レイアウト モデルでは、セクションと各セクション内のオブジェクトの関係を識別する、出力内のセクションとサブセクションがサポートされています。 階層構造は、各セクションの elements で保持されます。 出力を使用して、マークダウン形式の を使用して、マークダウンのセクションとサブセクションを簡単に取得できます。

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,
)

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

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

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

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

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

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

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

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

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

開発オプション

ドキュメント インテリジェンス v3.1 では、次のツール、アプリケーション、およびライブラリがサポートされています:

機能 リソース モデル ID
レイアウト モデル Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
事前構築済みレイアウト

ドキュメント インテリジェンス v3.0 では、次のツール、アプリケーション、およびライブラリがサポートされています:

機能 リソース モデル ID
レイアウト モデル Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
事前構築済みレイアウト

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

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

入力の要件

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

    モデル PDF 画像:
    JPEG/JPGPNGBMPTIFFHEIF
    Microsoft Office:
    Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX)、HTML
    読み込み
    Layout ✔ (2024-07-31-preview、2024-02-29-preview、2023-10-31-preview)
    一般的なドキュメント
    事前構築済み
    カスタム抽出
    カスタム分類 ✔ (2024-07-31-preview、2024-02-29-preview)
  • 最適な結果を得るには、ドキュメントごとに 1 つの鮮明な写真または高品質のスキャンを提供してください。

  • PDF および TIFF の場合、最大 2,000 ページを処理できます (Free レベルのサブスクリプションでは、最初の 2 ページのみが処理されます)。

  • ドキュメントを分析するためのファイル サイズは、有料 (S0) レベルでは 500 MB、無料 (F0) レベルでは 4 MB です。

  • 画像のディメンションは、50 ピクセル x 50 ピクセルから 10,000 ピクセル x 10,000 ピクセルの間である必要があります。

  • PDF がパスワードでロックされている場合は、送信前にロックを解除する必要があります。

  • 抽出するテキストの最小の高さは、1024 x 768 ピクセルのイメージの場合は 12 ピクセルです。 このディメンションは、150 DPI (1 インチあたりのドット数) で約 8 ポイントのテキストに相当します。

  • カスタム モデル トレーニングにおけるトレーニング データの最大ページ数は、カスタム テンプレート モデルの場合は 500、カスタム ニューラル モデルの場合は 50,000 です。

    • カスタム抽出モデル トレーニングにおけるトレーニング データの合計サイズは、テンプレート モデルの場合は 50 MB、ニューラル モデルの場合は 1 GB です。

    • カスタム分類モデル トレーニングの場合、トレーニング データの合計サイズは 1 GB で、最大 10,000 ページです。 2024-07-31-preview 以降の場合、トレーニング データの合計サイズは 2 GB で、最大 10,000 ページです。

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

レイアウト モデルの概要

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

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

Note

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

"Document Intelligence Studio で処理されたサンプル ドキュメント"

Document Intelligence Studio での新聞ページの [レイアウト] 処理のスクリーンショット。

  1. Document Intelligence Studio ホーム ページで、[レイアウト] を選択します。

  2. サンプル ドキュメントを分析したり、独自のファイルをアップロードしたりできます。

  3. [分析の実行] ボタンを選択し、必要に応じて [分析オプション] を構成します。

    Document Intelligence Studio の [分析の実行] と [分析オプション] ボタンのスクリーンショット。

ドキュメント インテリジェンス サンプル ラベル付けツール

  1. ドキュメント インテリジェンス サンプル ツールに移動します。

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

    ドキュメント インテリジェンス レイアウト プロセスの接続設定のスクリーンショット。

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

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

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

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

    [レイアウト] ドロップダウン ウィンドウのスクリーンショット。

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

    ドキュメント インテリジェンス サンプル ラベル付けツールの接続設定のスクリーンショット。

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

サポートされている言語の完全なリストについては、言語サポート — ドキュメント分析モデルに関するページを "参照" してください。.

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

機能 リソース
Layout API Document Intelligence ラベル付けツール
REST API
クライアント ライブラリ SDK
Document Intelligence Docker コンテナー

データの抽出

レイアウト モデルは、ドキュメントから、テキスト、選択マーク、テーブル、段落、段落の種類 (roles) を抽出します。

Note

バージョン 2024-02-29-preview2023-10-31-preview、およびそれ以降では、Microsoft Office (DOCX、XLSX、PPTX) ファイルと HTML ファイルがサポートされています。 次の機能はサポートされていません。

  • 各ページ オブジェクトには、角度、幅/高さ、および単位はありません。
  • 検出される各オブジェクトには、多角形領域も境界領域もありません。
  • ページ範囲 (pages) はパラメーターとしてサポートされていません。
  • lines オブジェクトはありません。

ページ

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

ファイル形式 計算されるページ単位 [総ページ数]
画像 (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 クエリ パラメーターを使用し、テキスト抽出対象として特定のページ番号またはページ範囲を示します。

段落

レイアウト モデルは、analyzeResults の最上位オブジェクトとして、paragraphs コレクション内の識別されたテキスト ブロックすべてを抽出します。 このコレクション内の各エントリはテキスト ブロックを表し、抽出されたテキスト (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 コレクション内の特定のテキスト ブロックに、モデルによって予測される特殊なロールまたは型が割り当てられます。 抽出されたコンテンツのレイアウトを理解して、より高度なセマンティック分析を実現するために、非構造化ドキュメントで段落の役割を使用することをお勧めします。 次の段落の役割がサポートされています。

予測される役割 説明 サポートされているファイルの種類
title ページのメイン見出し pdf、image、docx、pptx、xlsx、html
sectionHeading ページの 1 つ以上の小見出し pdf、image、docx、xlsx、html
footnote ページの下部付近のテキスト pdf、image
pageHeader ページの上端付近のテキスト pdf、image、docx
pageFooter ページの下端付近のテキスト pdf、image、docx、pptx、html
pageNumber ページ番号 pdf、image
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

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

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

Microsoft Word、Excel、PowerPoint、HTML の場合、Document Intelligence バージョン 2024-02-29-preview および 2023-10-31-preview のレイアウト モデルでは、埋め込みテキストがすべてそのまま抽出されます。 テキストは単語と段落として抽出されます。 埋め込み画像はサポートされません。

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

Tables

テーブルの抽出は、通常、テーブルとして書式設定された大量のデータを含むドキュメントを処理するための重要な要件です。 レイアウト モデルでは、JSON 出力の pageResults セクションにテーブルが抽出されます。 抽出されたテーブルの情報には、列と行の数、行の span、列の span が含まれています。 境界ポリゴンのある各セルは、その領域が columnHeader として認識されているかどうかにかかわらず、情報と共に出力されます。 このモデルでは、回転されるテーブルの抽出がサポートされています。 各テーブル セルには、行と列のインデックスと境界ポリゴン座標が含まれています。 セル テキストの場合、このモデルは開始インデックス (offset) を含む span 情報を出力します。 また、このモデルは、ドキュメントのテキスト全体を含む最上位コンテンツ内の length も出力します。

Document Intelligence ベール抽出機能を使用する際の考慮事項は、次のとおりです。

  • 抽出するデータはテーブルとして表されていますか? また、テーブル構造には意味がありますか?

  • データがテーブル形式でない場合、そのデータは 2 次元グリッドに収まりますか?

  • テーブルは複数のページにまたがっていますか? その場合は、すべてのページにラベルを付けなくても済むように、PDF を Document Intelligence に送信する前にページに分割します。 分析の後に、そのページを 1 つのテーブルに後処理します。

  • カスタム モデルを作成する場合は、「表形式フィールド」を参照してください。 動的テーブルには、列ごとに可変数の行があります。 固定テーブルには、列ごとに一定数の行があります。

Note

  • 入力ファイルが 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 でのみ使用可能)

レイアウト モデルでは、チェックやクロスなどのドキュメント内の注釈を抽出します。 応答には、注釈の種類が、信頼度スコアと境界 polygon と共に含まれています。

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

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

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

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

テキスト抽出のページ番号または範囲の選択

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

レイアウト モデルの選択したページ出力のスクリーン ショット。

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

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

フィールド 設定可能な値
status string notStarted: 分析操作が開始されていません。

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

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

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

succeeded 値が返されるまで、この操作を繰り返し呼び出します。 1 秒あたりの要求数 (RPS) を超えないようにするために、間隔は 3 - 5 秒あけてください。

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

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

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

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

サンプル JSON 出力

"レイアウト分析結果取得" 操作への応答は、抽出されたすべての情報が含まれるドキュメントの構造化表現になります。 サンプルのドキュメント ファイルと、その構造化された出力であるサンプルのレイアウト出力を参照してください。

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

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

出力例

テキスト

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

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

Layout API では、JSON 出力の pageResults セクションにテーブルが抽出されます。 ドキュメントは、スキャンされたもの、写真、またはデジタル化されたもののいずれでもかまいません。 テーブルは、セルまたは列が結合されている複雑なものや、罫線があるもの、またはないもの、不規則な角度のものも含まれます。 抽出されたテーブルの情報には、列と行の数、行の span、列の span が含まれています。 境界ポリゴンのある各セルは、その領域がヘッダーの一部として認識されているかどうかにかかわらず、情報と共に出力されます。 モデル予測ヘッダー セルは複数の行にまたがることがあり、必ずしもテーブル内の最初の行ではありません。 これらは、回転されたテーブルに対しても機能します。 各テーブル セルには、フル テキストが、readResults セクションの個々の単語への参照と共に含まれています。

テーブルの例

選択マーク

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

移行ガイド

次のステップ