pdf2md/TODO.md
Dieter Schlüter 8614ea9575 TODO: nächste Schritte, mögliche Erweiterungen, Grenzen, Wartung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 22:41:22 +02:00

2.7 KiB
Raw Blame History

TODO

1. Als Nächstes (Stand 2026-10-02)

  • Gedichtbände neu erzeugen und prüfen – die Dateien in Output/ stammen von vor den Korrekturen (Commit 180d98a):
    python3 pdf2md.py --epub --ocr always --keep-lines Neue_Gedichte_-_Rainer_Maria_Rilke.pdf Output/Neue_Gedichte_-_Rainer_Maria_Rilke.md
    python3 pdf2md.py --epub --ocr-language deu_latf --keep-lines Neue_Gedichte_-_Jacob_Loewenberg_-_Fraktur_1895.pdf Output/Neue_Gedichte_-_Jacob_Loewenberg_-_Fraktur_1895.md
    
    Was dabei auffällt, entscheidet über die Punkte in Abschnitt 2.

2. Mögliche Erweiterungen (je ca. 30 Min.)

  • Option „ſ“ → „s“ für Fraktur: lesbarer auf dem Reader, aber nicht mehr originalgetreu.
  • Ornamente/Zierleisten werden auf Scans mit --keep-lines manchmal als Wortsalat gelesen („amm Cem wen rn aFREE anneee“). Idee: Zeilen ohne plausible Wörter verwerfen (Anteil wortähnlicher Tokens, Funktionswörter wie in looks_like_text).
  • Bilder auf Scanseiten gehen mit --keep-lines verloren (der direkte Tesseract-Weg übernimmt keine Bilder). Für Gedichtbände meist egal, für illustrierte Liederbücher nicht.

3. Bekannte Grenzen (bewusst so gelassen)

  • Fraktur-OCR: Auch deu_latf (tessdata_best) liest alte Scans nicht fehlerfrei („Uls“ statt „Als“, „=“ statt „—“); das Ubuntu-Modell frk ist deutlich schwächer („ftarf“, „fam“). Alte Scans brauchen Nacharbeit (Weg B).
  • Gesperrte Überschriften („M e i n k l e i nes Stück D D R“) bleiben zerrissen; eine Korrektur wäre fehleranfällig.
  • Alte Scans mit eigener OCR-Ebene: --ocr always liefert meist besseren Text (die alte Ebene wird verworfen).
  • Gedicht wie Absatzanfänge eingerückt (Band 2, „Blinde Flecken“: alle Verse bei x = 94): geometrisch nicht von einzeiligen Dialogabsätzen zu unterscheiden; Verszeilen mit Satzende werden dort Absätze. Für reine Gedichtbände: --keep-lines.
  • Gedicht-Scans ohne --keep-lines: pymupdf-layout verschränkt eng stehende OCR-Zeilen („UndDon tauchteweißen“). Mit --keep-lines umgangen (Zeilen direkt aus Tesseract).
  • Listings mit eingedruckten Zeilennummern (Markdown Guide: „4 <html>“, „5 <head>“) werden nicht immer als ein Codeblock erkannt; Programmausgaben ohne typische Merkmale bleiben Text.

4. Wartung

  • Nach einem Update von pymupdf4llm (pip install -U pymupdf4llm) zuerst python3 -m pytest laufen lassen: pdf2md.py patcht drei Funktionen der Bibliothek. Version 1.28 hat z. B. das Format für Bildtext und die OCR-Erkennung geändert.
  • Bei Änderungen am Umbruch: Regressionsvergleich gegen den letzten Commit über das Probekorpus (Ljutsch Band 1/2, Zensur-Report, Markdown Guide, Register, Rust-Kochbuch, Kempis-Scan).