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 模型,以兼顧隱私或成本。
  • 非同步處理:使用 asyncio 在使用 API 時並行處理文本區塊,從而加快整體工作流程。
  • 自適應 Token 管理:根據模型限制和提示詞長度動態調整請求大小,以避免截斷。
  • 自動化品質控制:包含內建的基於 LLM 的評估步驟,用於評估糾錯過程的準確性。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案