feat: Änderungsbericht Rohtext → Korrektur (aenderungen.py)
- Wortvergleich ohne Groß-/Kleinschreibung, Satzzeichen und „z. B.“-Varianten, damit nur echte Wortänderungen auffallen - HTML-Bericht: Änderungen nach Häufigkeit, korrigierter Text mit markierten Ersetzungen (Original dahinter), Einfügungen, Streichungen, Prüfmarken - rede_korrigieren.py schreibt den Bericht bei jedem Lauf (--kein-bericht) und zeigt die häufigsten Änderungen; Vergleich mit dem Rohtext vor Glossar - aenderungen.py als eigenes Skript für vorhandene Dateien Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6610679d80
commit
c1d270bc0e
1 changed files with 397 additions and 1 deletions
28
README.md
28
README.md
|
|
@ -12,6 +12,7 @@ Die Werkzeuge sind einzeln oder hintereinander nutzbar:
|
|||
| `yt_untertitel.py` | Untertitel eines YouTube-Videos als VTT herunterladen |
|
||||
| `vtt2txt.py` | VTT in eine Rohabschrift (Text) umwandeln |
|
||||
| `rede_korrigieren.py` | Rohabschrift (oder VTT direkt) mit dem Sprachmodell korrigieren |
|
||||
| `aenderungen.py` | Änderungsbericht: was hat das Modell gegenüber dem Rohtext geändert? |
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
|
|
@ -132,6 +133,7 @@ werden trotzdem umgewandelt; der Exit-Code ist dann 1.
|
|||
| `-o`, `--output` | Ausgabedatei; Standard: `<Eingabe ohne Endung>.korrigiert.txt` neben der Eingabe |
|
||||
| `-g`, `--glossar` | Glossar mit festen Ersetzungen und Schreibweisen; mehrfach angeben zum Kombinieren (Ersetzungen in Reihenfolge der Angabe) |
|
||||
| `-m`, `--model` | Ollama-Modell; Standard: `qwen3:32b` (Konstante `MODEL`) |
|
||||
| `--kein-bericht` | keinen Änderungsbericht schreiben |
|
||||
|
||||
## Ablauf
|
||||
|
||||
|
|
@ -147,8 +149,32 @@ werden trotzdem umgewandelt; der Exit-Code ist dann 1.
|
|||
Text selbst wird dabei nicht verändert. Absätze über 10 Sätze werden nochmals
|
||||
geteilt, Absätze unter 3 Sätzen mit dem Nachbarn verbunden.
|
||||
|
||||
6. **Änderungsbericht:** Rohtext (vor dem Glossar) und Ergebnis werden Wort für Wort
|
||||
verglichen, siehe unten.
|
||||
|
||||
Zweifelhafte Stellen markiert das Modell als `Lesart [prüfen: Originalwortlaut]`.
|
||||
|
||||
## Änderungsbericht
|
||||
|
||||
Jeder Lauf von `rede_korrigieren.py` schreibt neben die Ausgabe
|
||||
`<Name>.aenderungen.html` (aus `rede.korrigiert.txt` wird `rede.aenderungen.html`)
|
||||
und zeigt die häufigsten Änderungen in der Konsole. Der Bericht enthält:
|
||||
|
||||
- alle Änderungen nach Häufigkeit (`gedeiliche → gedeihliche`, `∅ → ist` für Einfügungen),
|
||||
- den korrigierten Text mit seinen Absätzen: ersetzte Wörter gelb mit dem Original
|
||||
dahinter, Einfügungen grün, Streichungen rot durchgestrichen, `[prüfen: …]` orange.
|
||||
|
||||
Nicht markiert werden Groß-/Kleinschreibung, Satzzeichen (auch eingefügte
|
||||
Gedankenstriche) und Schreibweisen wie „z.B.“ → „z. B.“. So bleiben die Wortänderungen
|
||||
übrig, die man prüfen sollte, gerade eigenmächtige wie „gedeiliche“ → „geregelte“.
|
||||
|
||||
Für vorhandene Dateien gibt es das eigene Skript:
|
||||
|
||||
```bash
|
||||
./aenderungen.py -a rede.txt -b rede.korrigiert.txt # → rede.aenderungen.html
|
||||
./aenderungen.py -a rede.de.vtt -b rede.korrigiert.txt -o bericht.html
|
||||
```
|
||||
|
||||
## Glossar
|
||||
|
||||
Eine Zeile pro Eintrag, `#` leitet Kommentare ein:
|
||||
|
|
@ -202,6 +228,8 @@ Die Tests brauchen kein Ollama: Modellaufrufe werden durch Fakes ersetzt. Geprü
|
|||
werden Abschnittsbildung, Glossar (inkl. „jede Ersetzung im Glossar einer Rede trifft
|
||||
diese Rede, jede im gemeinsamen Glossar trifft mindestens eine“), Streaming-Auswertung, Absatzgliederung (Text bleibt
|
||||
unverändert, 3–10 Sätze), Zwischenspeicher/Fortsetzen und die Kommandozeile.
|
||||
`tests/test_aenderungen.py` prüft den Wortvergleich (Satzzeichen, Groß-/Kleinschreibung
|
||||
und „z. B.“ zählen nicht) und den HTML-Bericht (vollständiger Text, Absätze, Escaping).
|
||||
`tests/test_extract_text.py` prüft den Gesamtablauf URL → Text, Sprachwahl
|
||||
(Original-Audio, manuell vor automatisch) und Fehlerfälle.
|
||||
`tests/test_yt_untertitel.py` prüft Spurauswahl, Aufruf von `yt-dlp` und
|
||||
|
|
|
|||
Loading…
Reference in a new issue