Обученный сегментатор страниц (главный путь), правила — запасной; фикстура rt-topic-6870900
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
1 parent
96e5fa0d75
commit
d155b8584b
7 files changed
+1257
-4
No files matched your search
@@ -64,3 +64,23 @@ BIO-разметка строится по символьным спанам ч
|
||||
|
||||
Лучшая по joint exact на held-out test копируется в `models/best`.
|
||||
Итог — в `reports/summary.md`.
|
||||
|
||||
## Сегментатор страниц (src/segmenter.py) — главный путь
|
||||
|
||||
Какие строки страницы описывают дорожки, решает обученная модель
|
||||
(rubert-tiny2, бинарная классификация строки с контекстом «пред. || след.»),
|
||||
а не регулярки. Правила (`html_extract.extract_segments`) — запасной путь:
|
||||
используются, если `models/segmenter` нет или модель не нашла ни одной строки;
|
||||
режим можно форсировать: `predict_release(..., segmenter="rules")`.
|
||||
|
||||
* Обучение: `python -m src.segmenter --train` (~1 мин). Разметка строк — по
|
||||
`raw` из `labels.csv` (362 страницы в `data/pages`); синтетика: `raw` всех
|
||||
train-строк (в т.ч. nnm/kinozal без страниц) вставляются в контекст реальных
|
||||
строк страниц. Страницы делятся по хешу `release_id` (≈20% в тест).
|
||||
* Метрики: строки (test) P 0.936 / R 0.994; e2e на непросмотренных страницах
|
||||
rutracker (n=64) — precision 0.904 → 0.946 против правил, recall 0.975 → 0.975
|
||||
(`tests/e2e_segmenter.py`; выборка мала, разброс большой).
|
||||
* Нарезка ВНУТРИ строки («Дублированный, многоголосый») в данных не размечена
|
||||
(91 группа из 6735) — остаётся на правилах `_split_entries`, но только на
|
||||
строках, выбранных моделью.
|
||||
* ONNX-путь (Rust/TS) сегментатор пока не включает: там по-прежнему правила.
|
||||
Reference in new issue
Block a user