feat: Glossar für die Magdeburg-Rede
- magdeburg.glossar.txt: 64 feste Ersetzungen (Namen, Orte, Hörfehler) und 10 Hinweis-Begriffe; jede Ersetzung trifft den Rohtext - Test prüft jetzt beide Beispiel-Glossare gegen ihre Testdaten - README: Glossare zu beiden Testdaten erwähnt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
8e1945e406
commit
8fe7c394f1
2 changed files with 13 additions and 8 deletions
|
|
@ -86,7 +86,7 @@ Multi-Domain Task Force
|
||||||
```
|
```
|
||||||
|
|
||||||
Ersetzungen ohne Treffer werden gemeldet (Tippfehler im Glossar).
|
Ersetzungen ohne Treffer werden gemeldet (Tippfehler im Glossar).
|
||||||
`ramstein.glossar.txt` ist ein Beispiel für eine Rede über die US Air Base Ramstein.
|
`ramstein.glossar.txt` und `magdeburg.glossar.txt` sind Beispiele zu den Testdaten.
|
||||||
|
|
||||||
## Testdaten
|
## Testdaten
|
||||||
|
|
||||||
|
|
@ -95,7 +95,7 @@ Ersetzungen ohne Treffer werden gemeldet (Tippfehler im Glossar).
|
||||||
für das Programm):
|
für das Programm):
|
||||||
|
|
||||||
- `ramstein.de.*`: Rede über die US Air Base Ramstein (mit Glossar `ramstein.glossar.txt`)
|
- `ramstein.de.*`: Rede über die US Air Base Ramstein (mit Glossar `ramstein.glossar.txt`)
|
||||||
- `magdeburg.de-orig.*`: Rede in Magdeburg (noch ohne Glossar)
|
- `magdeburg.de-orig.*`: Rede in Magdeburg (mit Glossar `magdeburg.glossar.txt`)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./vtt2txt.py -i "testdaten/*.vtt" # erzeugt alle .txt neu
|
./vtt2txt.py -i "testdaten/*.vtt" # erzeugt alle .txt neu
|
||||||
|
|
@ -112,8 +112,8 @@ python3 -m pytest
|
||||||
```
|
```
|
||||||
|
|
||||||
Die Tests brauchen kein Ollama: Modellaufrufe werden durch Fakes ersetzt. Geprüft
|
Die Tests brauchen kein Ollama: Modellaufrufe werden durch Fakes ersetzt. Geprüft
|
||||||
werden Abschnittsbildung, Glossar (inkl. „jede Ersetzung in `ramstein.glossar.txt`
|
werden Abschnittsbildung, Glossar (inkl. „jede Ersetzung in den Beispiel-Glossaren
|
||||||
trifft die Testdaten“), Streaming-Auswertung, Absatzgliederung (Text bleibt
|
trifft ihre Testdaten“), Streaming-Auswertung, Absatzgliederung (Text bleibt
|
||||||
unverändert, 3–10 Sätze), Zwischenspeicher/Fortsetzen und die Kommandozeile.
|
unverändert, 3–10 Sätze), Zwischenspeicher/Fortsetzen und die Kommandozeile.
|
||||||
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: jede `.vtt` in `testdaten/`
|
`tests/test_vtt2txt.py` prüft die VTT-Umwandlung: jede `.vtt` in `testdaten/`
|
||||||
ergibt genau die zugehörige `.txt`, echte Wiederholungen bleiben erhalten,
|
ergibt genau die zugehörige `.txt`, echte Wiederholungen bleiben erhalten,
|
||||||
|
|
|
||||||
|
|
@ -107,10 +107,15 @@ def test_build_system_appends_terms():
|
||||||
assert "- Kreml\n- Egon Bahr" in system
|
assert "- Kreml\n- Egon Bahr" in system
|
||||||
|
|
||||||
|
|
||||||
def test_sample_glossary_replacements_all_match(capsys):
|
@pytest.mark.parametrize("glossary, sample", [
|
||||||
"""Every rule in ramstein.glossar.txt must hit the sample transcript."""
|
("ramstein.glossar.txt", "ramstein.de.txt"),
|
||||||
_, replacements = rk.read_glossary(GLOSSARY)
|
("magdeburg.glossar.txt", "magdeburg.de-orig.txt"),
|
||||||
rk.apply_replacements(flat(SAMPLE.read_text(encoding="utf-8")), replacements)
|
])
|
||||||
|
def test_sample_glossary_replacements_all_match(capsys, glossary, sample):
|
||||||
|
"""Every rule in a sample glossary must hit its sample transcript."""
|
||||||
|
_, replacements = rk.read_glossary(REPO / glossary)
|
||||||
|
text = (REPO / "testdaten" / sample).read_text(encoding="utf-8")
|
||||||
|
rk.apply_replacements(flat(text), replacements)
|
||||||
assert "ohne Treffer" not in capsys.readouterr().out
|
assert "ohne Treffer" not in capsys.readouterr().out
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue