Layout Parser でドキュメントを処理する
Layout Parser は、テキスト、表、リストなどのドキュメント コンテンツ要素を抽出し、生成 AI や検索アプリケーションでの情報検索を容易にするコンテキスト アウェア チャンクを作成します。
レイアウト パーサーの機能
ドキュメントのレイアウトを解析する。HTML ファイルまたは PDF ファイルをレイアウト パーサーに入力して、テキスト ブロック、表、リストなどのコンテンツ要素や、タイトルや見出しなどの構造要素を特定できます。これらの要素は、情報の検索と検出のコンテキストをより多く作成できる豊富なコンテンツと構造要素を使用して、ドキュメントの編成と階層を定義するのに役立ちます。
ドキュメントをチャンクする。Layout Parser は、元のドキュメントのレイアウト階層に関するコンテキスト情報を保持するチャンクにドキュメントを分割できます。回答生成 LLM は、チャンクを使用して関連性を高め、計算負荷を軽減できます。
チャンキング中にドキュメントのレイアウトを考慮すると、セマンティックな一貫性が向上し、取得と LLM 生成に使用されるコンテンツのノイズが軽減されます。チャンク内のテキストはすべて、同じレイアウト エンティティ(見出し、小見出し、リストなど)から取得されます。
制限事項
次の制限が適用されます。
- オンライン処理:
- 入力ファイルのサイズは、すべてのファイル形式で最大 20 MB
- PDF ファイルあたり最大 15 ページ
- バッチ処理:
- PDF ファイルの単一ファイルの最大サイズは 40 MB
- PDF ファイルあたり最大 500 ページ
ファイルタイプ別のレイアウト検出
次の表に、ドキュメント ファイル形式ごとに Layout Parser が検出できる要素を示します。
ファイル形式 | 検出された要素 | 制限事項 |
---|---|---|
HTML | 段落、表、リスト、タイトル、見出し、ページ ヘッダー、ページ フッター | 解析は HTML タグに大きく依存しているため、CSS ベースの書式設定がキャプチャされない可能性があります。 |
段落、表、タイトル、見出し、ページ ヘッダー、ページ フッター | 複数のページにまたがるテーブルは、2 つのテーブルに分割される場合があります。 | |
DOCX(プレビュー) | 段落、複数ページにまたがる表、リスト、タイトル、見出しの要素 | ネストされたテーブルはサポートされていません。 |
PPTX(プレビュー) | 段落、表、リスト、タイトル、見出しの要素 | 見出しを正確に識別するには、PowerPoint ファイル内で見出しとしてマークする必要があります。ネストされた表と非表示のスライドはサポートされていません。 |
XLSX/XLSM(プレビュー) | Excel スプレッドシート内のテーブル(INT 、FLOAT 、STRING 値をサポート) |
複数のテーブルの検出はサポートされていません。非表示のシート、行、列も検出に影響する可能性があります。 |
始める前に
レイアウト パーサーを有効にする手順は次のとおりです。
プロセッサの作成と管理の手順に沿って、レイアウト パーサーを作成します。
プロセッサ タイプ名は
LAYOUT_PARSER_PROCESSOR
です。プロセッサを有効にするの手順に沿って、レイアウト パーサーを有効にします。
Layout Parser を使用してオンライン プロセス リクエストを送信する
レイアウト パーサーにドキュメントを入力して、解析とチャンク処理を行います。
処理リクエストを送信するのバッチ処理リクエストの手順に沿って操作します。
ProcessDocumentRequest
のProcessOptions.layoutConfig
でフィールドを構成します。REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロセッサのロケーション(例:
us
- 米国eu
- 欧州連合
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- PROCESSOR_ID: カスタム プロセッサの ID。
- MIME_TYPE: Layout Parser は
application/pdf
とtext/html
をサポートしています。 - DOCUMENT: チャンクに分割するコンテンツ。Layout Parser は、未加工の PDF または HTML ドキュメント、または Layout Parser によって出力された解析済みドキュメントを受け入れます。
- CHUNK_SIZE: 省略可。ドキュメントの分割時に使用するチャンクサイズ(トークン単位)。
- INCLUDE_ANCESTOR_HEADINGS: 省略可。ブール値。ドキュメントを分割するときに上位の見出しを含めるかどうか。
HTTP メソッドと URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
リクエストの本文(JSON):
// Sample for inputting raw documents such as PDF or HTML { "rawDocument": { "mimeType": "MIME_TYPE", "content": "DOCUMENT" }, "processOptions": { "layoutConfig": { "chunkingConfig": { "chunkSize": "CHUNK_SIZE", "includeAncestorHeadings": "INCLUDE_ANCESTOR_HEADINGS", } } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process" | Select-Object -Expand ContentDocument.documentLayout
とDocument.chunkedDocument
)が含まれます。Python
詳細については、Document AI Python API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
- LOCATION: プロセッサのロケーション(例:
Layout Parser を使用してドキュメントをバッチ処理する
1 つのリクエストで複数のドキュメントを解析してチャンク化する手順は次のとおりです。
レイアウト パーサーにドキュメントを入力して、解析とチャンク処理を行います。
処理リクエストを送信するのバッチ処理リクエストの手順に沿って操作します。
batchProcess
リクエストを行うときに、ProcessOptions.layoutConfig
のフィールドを構成します。入力
次の JSON の例では、
ProcessOptions.layoutConfig
を構成します。"processOptions": { "layoutConfig": { "chunkingConfig": { "chunkSize": "CHUNK_SIZE", "includeAncestorHeadings": "INCLUDE_ANCESTOR_HEADINGS_BOOLEAN" } } }
次のように置き換えます。
CHUNK_SIZE
: ドキュメントの分割に使用する最大チャンクサイズ(トークン数)。INCLUDE_ANCESTOR_HEADINGS_BOOLEAN
: ドキュメントを分割するときに祖先の見出しを含めるかどうか。上位の見出しは、元のドキュメントの小見出しの親です。元のドキュメント内の位置に関する追加のコンテキストをチャンクに提供できます。チャンクには、最大 2 レベルの見出しを含めることができます。
次のステップ
- プロセッサ リストを確認します。
- カスタム分類子を作成します。
- Enterprise Document OCR を使用してテキストを検出して抽出します。