TODO: nächste Schritte, mögliche Erweiterungen, Grenzen, Wartung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-02 22:41:22 +02:00
commit 8614ea9575

51
TODO.md
View file

@ -1,16 +1,45 @@
# TODO # TODO
## Bekannte Schwächen (aus Probeläufen mit fremden PDFs) ## 1. Als Nächstes (Stand 2026-10-02)
- Gesperrte Überschriften („M e i n k l e i nes Stück D D R“) bleiben zerrissen. - **Gedichtbände neu erzeugen und prüfen** – die Dateien in `Output/` stammen von vor den
- Alte Scans mit eigener OCR-Ebene: `--ocr always` liefert meist besseren Text. Korrekturen (Commit 180d98a):
- Zeilengetreu: Ein Gedicht, das genauso eingerückt ist wie Absatzanfänge (Band 2, „Blinde ```bash
Flecken“: alle Verse bei x = 94 wie Absatzanfänge), ist geometrisch nicht von mehreren python3 pdf2md.py --epub --ocr always --keep-lines Neue_Gedichte_-_Rainer_Maria_Rilke.pdf Output/Neue_Gedichte_-_Rainer_Maria_Rilke.md
einzeiligen Dialogabsätzen zu unterscheiden; Verszeilen mit Satzende werden dort Absätze. 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
Für reine Gedichtbände: `--keep-lines`. ```
- Gedicht-Scans ohne `--keep-lines`: pymupdf-layout verschränkt eng stehende OCR-Zeilen 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). („UndDon tauchteweißen“). Mit `--keep-lines` umgangen (Zeilen direkt aus Tesseract).
- `--keep-lines` auf Scans: Zierleisten/Ornamente werden manchmal als Wortsalat gelesen - **Listings mit eingedruckten Zeilennummern** (Markdown Guide: „4 <html>“, „5 <head>“) werden
(„amm Cem wen rn“); keine Bilder aus Scanseiten. Idee: Option „ſ“ → „s“.
- Listings mit eingedruckten Zeilennummern (Markdown Guide: „4 <html>“, „5 <head>“) werden
nicht immer als ein Codeblock erkannt; Programmausgaben ohne typische Merkmale bleiben Text. 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).