Skip to Content
Docs12. モダリティ応用ドキュメント AI(帳票・PDF の構造化)

この記事の音声は準備中です。

音声の一覧・再生リストへ

ドキュメント AI(帳票・PDF の構造化)

この記事の目的

スキャン文書・PDF・帳票から、後続処理(RAG外部の知識ソースを検索し、結果を LLM の入力に加えて回答の根拠にする手法。検索の判断を Agent に任せる構成は Agentic RAG と呼ばれる。・業務システム)に使える構造化データを取り出すパイプラインを設計できるようになります。入力の類型と前処理・OCR と VLM画像とテキストを一緒に扱える(画像を理解できる)モデル。大まかな内容は読めるが、細かい文字・数え上げ・精密な空間関係/座標で急に外す崖を持つ。図表読解・UI 解析・検品などに使い、重要な読み取りは検証・別手段と併用する。画像を「操作」する computer use とは区別する。 直読の使い分け・レイアウトと表の扱い・抽出結果の検証・精度の測り方を、実務判断として持ち帰れる状態を目指します。取り込み後の検索は RAG 実装パターン、出力形式の強制は 構造化出力 が正本です。

対象読者

  • 帳票・契約書・PDF を扱う業務システムで、文書からの情報抽出パイプラインを設計する実装担当
  • RAG の前段として、非構造の文書を検索可能な形に取り込みたいエンジニア

前提知識

本文

概要: 「読める」から「使える」へ

ドキュメント AI(document AI)は、文書を「読む」だけでなく、後続処理が使える構造化データにすることが目的です。単に本文テキストを起こすのではなく、「どの項目が・どの値か」を、検証可能な形で取り出します。本記事は取り出しのパイプラインを扱い、取り込み後の検索は RAG 実装パターン、形式の強制は 構造化出力 に委ねます。

入力の類型と前処理

まず、入力文書の性質で処理が変わることを押さえます。

入力性質主な前処理
ボーンデジタル PDFテキスト情報を内部に持つテキスト抽出(OCR 不要なことが多い)
スキャン PDF・画像見た目だけ(テキスト情報なし)傾き補正・ノイズ除去・OCR/VLM
写真歪み・影・低解像度が混じる台形補正・明度補正・解像度確認
  • ボーンデジタルは内部テキスト抽出から比較する: 文字コードやフォント情報を利用でき、画像認識を介さず抽出できます。ただし読み順・表構造・文字マッピングが壊れる場合があります。pypdf のテキスト抽出の解説 を踏まえ、原本の表示と照合し、不十分なページでは OCR/VLM も比較します
  • スキャン・写真は前処理が効く: 傾き・歪み・低解像度は読み取り精度を大きく下げます。補正・解像度確保(マルチモーダルモデルの仕組みの解像度とコスト)が効きます
  • 混在を前提に振り分ける: 実務では 1 つの取り込み口に複数の性質が混ざります。入力の性質を判定して処理を振り分ける設計にします

OCR か VLM 直読か

文書からテキスト・項目を取り出す方式は、大きく OCR と VLM 直読の 2 系統です。使い分けが設計の要点です。

  • OCR(光学文字認識): 画像中の文字を検出してテキスト化する専用技術。文字起こしの精度・座標(位置情報)が得られ、大量処理のコストが読みやすい。レイアウトの復元は別途必要
  • VLM 直読: 視覚言語モデル(VLM)に文書画像を直接読ませ、項目を抽出させる。レイアウトを踏まえた「意味的な読み取り」ができる一方、細かい文字・数字で誤りが出やすく(マルチモーダルモデルの仕組みの精度の崖)、画像トークンでコストが上がる
  • 使い分けの軸: 精度(細部の正確さ)・コスト(量)・レイアウト保持(構造の復元)で選びます。「文字起こしの正確さが要る大量処理」は OCR、「レイアウトを踏まえた項目抽出」は VLM、と役割で分け、両者を組み合わせる(OCR で文字と座標、VLM で意味的な項目対応)ことも多いです

レイアウトと表の扱い

文書の価値はレイアウトに宿ります。段組・表・ヘッダーフッターを潰すと、意味が失われます。

帳票処理の実務: 抽出 + 検証 + 人手振り分け

帳票のような正確さが要る文書では、抽出だけで終わらせず、検証と人手を組み合わせます。

精度の測り方

ドキュメント AI は「動いた」では不十分で、精度を測って運用します。

  • グラウンドトゥルースを作る: 正解データ(人が確認した抽出結果)を用意し、抽出結果と突き合わせます(評価データセットの構築と保守)。作るのは手間ですが、精度を語るには不可欠です
  • 項目ごとに測る: 「文書全体の精度」でなく、項目ごと(金額・日付・宛名)に正確さを測ります。重要項目の精度が要件を満たすかで判断します
  • サンプリング検品: 全件のグラウンドトゥルースが作れない場合、サンプリングして検品し、精度を推定します。とくに表・細かい数字は誤りが出やすいので重点的に見ます
  • 失敗の型を知る: どういう文書・項目で落ちるか(低解像度・特殊レイアウト・手書き)を把握し、前処理・人手振り分けの条件に反映します

実務での注意点

アンチパターン

  • 内部テキストを確認せず全ページを OCR にかける → 利用できる文字情報を捨て、認識誤りや費用を増やす場合がある → 内部抽出と原本表示を照合し、必要なページで OCR/VLM を比較する
  • VLM 直読の抽出を検証なしで確定する → 細かい数字・表の誤りをそのまま業務システムに流す → 業務ルールで検証し、危ういものは人手に回す
  • 表を単純なテキスト連結で扱う → 行列がずれて意味が壊れる → レイアウト解析で表構造を保持し、抽出後に検証する
  • リスクと品質要件を決めず自動確定率だけを上げる → 重要項目の誤りが流出する → 検証結果と測定済みの信頼度で振り分け、要件によっては全件確認も選ぶ
  • 精度を測らずに本番投入する → どの項目がどれだけ正しいか分からないまま業務に使う → グラウンドトゥルース + 項目別・サンプリングで測る

チェックリスト

  • 入力の性質(ボーンデジタル / スキャン / 写真)を判定して処理を振り分けている
  • ボーンデジタル PDF の内部抽出を試し、読み順・表・文字の破損がある場合の代替処理を設計した
  • OCR と VLM 直読を、精度・コスト・レイアウト保持で使い分けた(必要なら組み合わせた)
  • 段組・表・ヘッダーフッターのレイアウトを保持している
  • 抽出項目を構造化出力で型付けし、業務ルールで検証している
  • 信頼度・検証結果で「自動確定 / 人手確認 / 却下」に振り分けている
  • グラウンドトゥルースを用意し、項目別・サンプリングで精度を測っている

関連トピック

参考資料

  • pypdf, Extract Text from a PDF  — PDF の文字層・OCR・表や読み順の抽出上の制約(アクセス日: 2026-09-10)
  • OpenAI, Images and vision  — 小さい文字・図表・位置・数え上げの制約を示す実装例。他の VLM の精度は別途評価します(アクセス日: 2026-09-10)

TODO・未確認事項