Обученный сегментатор страниц (главный путь), правила — запасной; фикстура rt-topic-6870900

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Sonnet 5.5 committed 2026-10-27 18:06:47 +07:00
1 parent 96e5fa0d75
commit d155b8584b
7 files changed
+1257 -4

No files matched your search

+14
View File
@@ -301,5 +301,19 @@ _agg2 = aggregate([_t("проф. дубляж", "Продубляж"), _t("пр
check("aggregate: дорожка без студии того же типа схлопывается",
[x["translation_type"] for x in _agg2["tracks"]] == ["проф. дубляж", "проф. двухголосый"])
print("== сегментатор (модель) ==")
try:
from src.segmenter import LineSegmenter, is_test_release # noqa: E402
_seg = LineSegmenter("models/segmenter", "cpu")
_fx = open("data/samples/rt-topic-6870900.html", encoding="utf-8").read()
_lines = _seg.select_lines(html_to_text(_fx))
check("сегментатор: найдены 4 строки «Перевод N» реальной страницы",
sum(l.startswith("Перевод") for l in _lines) == 4, str(_lines[:5]))
check("сегментатор: «Субтитры» и «Оригинальная аудиодорожка» не дорожки",
not any(l.startswith(("Субтитры", "Оригинальная")) for l in _lines))
check("разбиение страниц детерминировано", is_test_release("6870900") == is_test_release("6870900"))
except Exception as e: # noqa: BLE001
print(f" пропущено (нет models/segmenter): {e}")
print(f"\nитог: {PASS} ok, {FAIL} failed")
sys.exit(1 if FAIL else 0)