📘

AI大規模モデルを使用してPDFドキュメントの内容を完璧に抽出する方法

に公開

最終更新日:2025年4月29日 - あくまで主観的な評価ですが、マルチモーダル能力において総合的に最も強力なのはやはりGemini 2.0シリーズです

本文

一、PDFドキュメント内容抽出の難しさ

二、一般的なPDFドキュメント抽出ソリューションの分析

  1. 従来のOCRソリューション

    • 利点:成熟しており安定、ローカル展開可能
    • 欠点:複雑なレイアウトの処理が苦手、表認識が困難
    • 代表的なツール:Tesseract、ABBYY FineReader
  2. オープンソースソリューション

    • 利点:無料、カスタマイズ可能
    • 欠点:技術的な蓄積が必要、一定の導入コストがかかる
    • 代表例:PaddleOCR、Easy OCR、MinerU
  3. システムソリューション
    市場には多くのPDF処理ソフトウェアが存在します。これらのソフトウェアによるPDF内容の抽出は、実際にはPDFドキュメントのエンコーディング形式に基づいたコンテンツストリームの解析に基づいています。内容やフォントなどの形式を抽出した後、各社独自の段落統合アルゴリズムなどに基づいて内容を総合的に処理します。この処理方法は総合的な効果は比較的高いものの、実装コストが間違いなく最も高くなります。

    では、以下の要件を満たし、誰でも簡単に利用でき、かつ効果も非常に高い抽出方法はあるのでしょうか?

    • ドキュメント内の画像を抽出できる
    • 読書順序に従って抽出できる
    • 元のフォーマットを可能な限り保持できる

    以下では、商用大規模モデルをPDFからMarkdownへの変換シナリオで活用した、私個人の実践と探求について共有します。

三、どのモデルを使用すべきか

私は文書処理関連のプロジェクトに従事しているため、各社の大規模モデルの文書処理分野における能力(すなわちマルチモーダル処理能力)には特に注目しています。

24年以前は、大規模モデルのマルチモーダル能力は、文書処理のような高精度が求められる分野で活躍するにはまだ程遠いものでした。

しかし、Gemini 2.0の先行版がリリースされ、今年初めに正式版が発表された後、個人的には、これが現在、文書抽出のレベルで最も『使える』モデルであると断言します。

もちろん、ここでの『使える』はその総合的な能力に基づいています。そして、総合能力をどのように評価するかについて、私は(抽出速度、抽出品質、抽出コスト)という3つの要素で評価すべきだと考えています。では、次にこれら3つの側面からGemini 2.0 flashを簡単に評価してみましょう:

  1. コスト
    公式の価格設定説明と実測に基づくと、Gemini 2.0 flashでPDFを処理する平均コストは約6000ページあたり1米ドルです。このコストは、個人または小規模な組織にとっては許容範囲内でしょう。同レベルの他のモデル、例えばgpt-4oやclaude-3.5-sonnetなどと比較すると、コストは基本的にGemini 2.0 flashよりもはるかに高くなります。以下に比較図を示します。
    比較
    (注意:画像はプレースホルダーです。実際の画像URLに置き換えてください)

  2. 抽出品質
    抽出品質を評価するにあたり、私は画像、数式、表、複数段組、請求書などの特殊なフォーマットを含む約50個のPDFドキュメントを評価しました。これらにはスキャン文書や手書き文書などの特殊な形式も含まれています。その中で、請求書タイプのドキュメントでは抽出精度に明らかな誤差が見られましたが、それ以外の特殊なドキュメントにおいては、精度はすべて97%以上に達しました。以下に実際のテスト結果の画像を2枚示します:

  3. 抽出速度
    テストテキストに基づき、ここではテストデータを直接示します:
    約50のサンプルにおいて、1ページあたりの平均抽出速度は約6秒でした(抽出時間はフォーマットの複雑さ、および後述する実装方法にも関係します)。
    ただし、注意すべきは、ページ数が増えるほど抽出速度が線形に増加するわけではない点です。理論的には、ページ数が多いほど、1ページあたりの処理速度は相対的に速くなる可能性があります(プログラムが並列処理メカニズムを起動するため)。

四、実践的な提案とまとめ

では、どのようにしてドキュメントの抽出とフォーマットの保持を実現するのでしょうか。

最も簡単な方法は、もちろんチャットツールでの直接対話を通じて実現することですが、チャットツールではコンテキスト管理、文書処理、バッチ処理などを完璧に保証することは明らかにできません。興味のある方は、以下のプロンプトをチャットツール内で試してみてください:

You are an expert OCR assistant. Your job is to extract all text from the provided image and convert it into a well-structured, easy-to-read Markdown document that mirrors the intended structure of the original. Follow these precise guidelines:

- Use Markdown headings, paragraphs, lists, and tables to match the document’s hierarchy and flow.
- For tables, use standard Markdown table syntax and merge cells if needed. If a table has a title, include it as plain text above the table.
- Render mathematical formulas with LaTeX syntax: use $...$ for inline and $$...$$ for display equations.
- For images, use the syntax ![descriptive alt text](link) with a clear, descriptive alt text.
- Remove unnecessary line breaks so that the text flows naturally without awkward breaks.
- Your final Markdown output must be direct text (do not wrap it in code blocks).

Ensure your output is clear, accurate, and faithfully reflects the original image’s content and structure.

個人的には、最適な方法はやはり小さなプログラムを作成することだと考えます。実装の考え方はおおよそ以下の通りです:

  1. 文書処理ツール(pymupdfなど)を使用してドキュメントを一次処理します(スライス化/画像抽出などの前処理を含む)。
  2. 処理後の素材をプロンプトと共に大規模モデルに渡し、二次抽出を行います。
  3. 大規模モデルが抽出した内容を取り出し、数式/表/挿入図に関連するフォーマットを後処理します(対照翻訳が必要な場合はこのステップで完了させることもできます)。

以上のようにすれば、さらにシンプルなフロントエンドの応答ページを組み合わせることで、自分専用のPDFからMarkdownへの変換ツールが完成します。

もちろん、PDFドキュメント自体の編集不可能な性質に基づき、現時点では100%完璧な抽出を保証するソリューションは存在しません。しかし、このノートが皆さんに新しい状況下での実現方法のヒントを提供できれば幸いです。

私が開発した文書処理サイトを通じて、上記で述べた転写機能を体験することもできます:

文書の抽出と翻訳
PDFドキュメントからMarkdownへ


Discussion