コンテンツにスキップ

仕様と制約

OCR(ocr_pdf.py

  • 既定: PDF埋め込み画像をネイティブ解像度で抽出 + gundam(タイル分割)+ bf16 + eager attention。
  • 密なページ(縦書きなど)は低解像度だと反復崩壊するため、高解像度をタイル分割で渡す。
  • 見開き(横長)は左右に分割し、縦書きは右→左で処理。--start N でレジューム(既存mdに追記)。
  • bf16 / 4bit いずれも対応(6GBでも実用)。flash-attn は使わない。

反復の停止(repetition.py

  • 生成中に同一 n-gram の多数回出現を検知して generate を停止する。

クリーンアップ(cleanup.py

  • 除去: 純数字行(ノンブル・行番号)、行内ノンブル、ページを跨いで繰り返す柱。
  • 整形: 短い非文末行を ## 見出しに、本文をリフローして段落化、節番号 [14]「2」を脚注参照 [^14] として保持。
  • 検出: 崩壊/短文ページに印を付け、末尾に一覧を出す(自動削除はしない)。
  • 特定の本に依存しない汎用ロジック。--min-chars で崩壊判定の閾値を調整。

制約

  • 見出し推定はヒューリスティックで、柱の誤OCRや短い断片を拾うことがある。
  • 段落境界はOCR出力に残らないため、見出し+節番号での粗い段落化に留まる。
  • 表・リストは Free OCR 出力に存在しないため付かない。
  • 文字レベルのOCR誤りは補正しない。