feat: Glossar-Entwurf aus Rohtext und Korrekturlauf (glossar_vorschlag.py)
- Das Modell sucht abschnittsweise vermutete Hörfehler (Namen, Orte, Fremdwörter, Komposita); nur Funde, die wörtlich im Rohtext stehen - Sichere Funde als Einträge, unsichere auskommentiert („# ?“) - -k: Änderungen eines Korrekturlaufs, immer auskommentiert, da oft zusammenhangsabhängig - -g: vorhandene Glossare werden vorher angewendet und nicht erneut vorgeschlagen - Modellantworten im Zwischenspeicher <Entwurf>.parts/ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c1d270bc0e
commit
bc09ddf3bf
1 changed files with 391 additions and 0 deletions
37
README.md
37
README.md
|
|
@ -13,6 +13,7 @@ Die Werkzeuge sind einzeln oder hintereinander nutzbar:
|
|||
| `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? |
|
||||
| `glossar_vorschlag.py` | Glossar-Entwurf: vermutete Hörfehler bei Namen und Begriffen |
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
|
|
@ -199,6 +200,40 @@ und Hörfehler eines Redners und eines je Rede. Beispiel zu den Testdaten:
|
|||
`magdeburg.glossar.txt`. Das gemeinsame Glossar zuerst angeben, damit seine
|
||||
Ersetzungen vor den speziellen greifen.
|
||||
|
||||
### Glossar-Entwurf: `glossar_vorschlag.py`
|
||||
|
||||
Ein Glossar von Hand zu erstellen heißt, den ganzen Rohtext zu lesen. Den ersten
|
||||
Entwurf liefert das Skript:
|
||||
|
||||
1. Das Modell sucht abschnittsweise vermutete Hörfehler: Namen, Orte, Fremdwörter,
|
||||
Fachbegriffe und falsch zusammen- oder getrennt geschriebene Wörter. Behalten werden
|
||||
nur Funde, die wörtlich im Rohtext stehen. Sichere Funde sind aktive Einträge,
|
||||
unsichere stehen auskommentiert als `# ? falsch => richtig`.
|
||||
2. Mit `-k` kommen die Wörter dazu, die ein Korrekturlauf geändert hat. Diese sind
|
||||
alle auskommentiert, denn vieles davon hängt vom Zusammenhang ab (`das → dass`)
|
||||
und wäre als feste Ersetzung falsch.
|
||||
|
||||
Einträge aus den mit `-g` angegebenen Glossaren werden vorher angewendet und nicht
|
||||
erneut vorgeschlagen.
|
||||
|
||||
```bash
|
||||
./glossar_vorschlag.py -i testdaten/Lahnstein.de-orig.txt \
|
||||
-k testdaten/Lahnstein.de-orig.korrigiert.txt -g krone-schmalz.glossar.txt
|
||||
# → testdaten/Lahnstein.de-orig.glossar.entwurf.txt
|
||||
```
|
||||
|
||||
| Option | Bedeutung |
|
||||
|---|---|
|
||||
| `-i`, `--input` | Rohabschrift (`.txt` oder `.vtt`), Pflicht |
|
||||
| `-k`, `--korrigiert` | korrigierter Text eines Laufs (optional) |
|
||||
| `-g`, `--glossar` | vorhandene Glossare, mehrfach möglich |
|
||||
| `-o`, `--output` | Entwurf; Standard: `<Eingabe ohne Endung>.glossar.entwurf.txt` |
|
||||
| `-m`, `--model` | Ollama-Modell; Standard: `qwen3:32b` |
|
||||
|
||||
Der Entwurf ist ein Ausgangspunkt, kein fertiges Glossar: jeden Eintrag prüfen,
|
||||
Brauchbares ins Glossar der Rede (oder ins gemeinsame) übernehmen. Die Modellantworten
|
||||
werden in `<Entwurf>.parts/` zwischengespeichert.
|
||||
|
||||
## Testdaten
|
||||
|
||||
`testdaten/` enthält drei Reden, jeweils als automatische YouTube-Untertitel
|
||||
|
|
@ -228,6 +263,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_glossar_vorschlag.py` prüft Filter (nur Funde im Text, keine bekannten),
|
||||
Ausgabeformat (gültiges Glossar, Unsicheres auskommentiert) und Zwischenspeicher.
|
||||
`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
|
||||
|
|
|
|||
Loading…
Reference in a new issue