Dicklesworthstone/llm_aided_ocr

Enhances Tesseract OCR output using LLMs (local or API) for error correction, smart chunking, and markdown formatting of scanned PDFs

解決する課題

生のOCR(光学文字認識)出力は、タイポ、フォーマットエラー、レイアウトの問題が頻繁に含まれており、ドキュメントの読み取りを困難にします。このプロジェクトは、これらのエラーを修正し、生テキストを洗練されたフォーマット済みのMarkdownドキュメントに変換するためのパイプラインを提供します。

仕組み

システムは以下の多段階処理パイプラインに従います:

  1. PDF変換: pdf2imageを使用してPDFページを画像に変換します。
  2. OCR抽出: Tesseract OCRを使用して画像から生テキストを抽出し、明瞭度を上げるためにグレースケール化と二値化を適用します。
  3. テキストチャンク分割: LLMが文脈を維持できるように、生テキストをオーバーラップのある管理可能なチャンクに分割します。
  4. LLM修正: これらのチャンクを大規模言語モデル(OpenAI/AnthropicなどのAPI経由、またはllama_cppによるローカル実行)に送信し、OCRエラーを修正して元の構造を復元します。
  5. フォーマット: 必要に応じて修正されたテキストをMarkdownに変換し、重複する段落を削除し、ヘッダーやページ番号を抑制します。
  6. 品質評価: LLMを使用して最終的な出力と元の生OCRテキストを比較し、品質スコアを提供します。

対象ユーザー

スキャンされたPDFや古い文書をデジタル化する必要があり、手動の校正なしに高精度で読みやすいテキストバージョンを求めるユーザー。

ハイライト

  • 柔軟なLLMバックエンド: プライバシーやコストに応じて、クラウドAPI(OpenAI, Anthropic)とローカルのGGUFモデルの両方をサポートします。
  • 非同期処理: APIを使用する場合、asyncioを使用してテキストチャンクを並行処理し、ワークフロー全体を高速化します。
  • 適応型トークン管理: 切り捨てを避けるため、モデルの制限とプロンプトの長さに基づいてリクエストサイズを動的に調整します。
  • 自動品質管理: 修正プロセスの正確性を評価するために、LLMベースの評価ステップが組み込まれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト