textmachine/eval/pkg7/README.md

22 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# `eval/pkg7/` — терминологическая ресёрч-программа (полигон, пакет-7)
Инструменты фазы A. Отчёт с цифрами и вердиктами — `docs/archive/reports/POLYGON_TERM_RESEARCH_A_2026-07-26.md`.
Всё здесь **$0**: ни одного вызова LLM-провайдера, ни одного чтения ключей.
| Скрипт | Что делает | Заметки |
|---|---|---|
| `split_book.py` | книга → JSONL-субстрат `{chapter, chunk_idx, source}` | правила глав — ДАННЫЕ (`RULES`), добавить книгу = добавить строку; epub парсится stdlib (bs4/ebooklib в venv нет) и чистится от колонтитулов |
| `minerharness/` | вызов БОЕВОГО `internal/miner` из модуля ВНЕ репо | `build.sh <work-dir> [commit]`; `replace` смотрит в `git archive`-копию коммита, а НЕ в рабочее дерево |
| `mine_nonhan.py` | кандидаты-термы для en/ja тремя раздельными каналами | ORTHO · DISP · CONTRAST; кандзи сознательно без контраста (см. шапку) |
| `kwic.py` | KWIC-контексты вхождения | разметка по тексту, а не по памяти; `--stats` даёт объём контекстов для сметы |
| `seed_recall.py` | recall WHICH-канала против подписанного сида | майнер обязан гоняться с ПУСТЫМ сидом, иначе метрика вырождается |
| `rubric_probe.py` | измеримость критериев рубрики на подписанном сиде | M1 морфология (pymorphy3) · M2 транскрипция · M3 коллизии банка |
## Правила, выученные на своих ошибках в этом пакете
1. **Пин обязателен.** Харнесс `replace`-ит копию коммита, не рабочее дерево: параллельная бэкенд-сессия правит `backend/` под руками, и прогон стал бы невоспроизводимым. Все цифры отчёта — на `996bade`.
2. **Ссылки `файл:строка` — по коммиту пина.** В рабочем дереве те же якоря уже уехали; первая редакция отчёта содержала номера строк рабочего дерева.
3. **Порог частоты и алфавит кандидатов — свойство ЯЗЫКА, не движка.** Японские названия техник живут на частотах 210 и в катакане/руби; ханьский n-граммный канал их не видит вовсе.
4. **Правило вершины словосочетания зависит от типа терма** (у имени вершина последняя, у нарицательного — первая). Морфо-чекер без этого правила меряет не то: первая версия `rubric_probe.py` склоняла «Вина» в «Монах Цветочного Вина».
5. **Контраст без опоры вырождается в частоту.** Ранжирование кандзи против словаря другого языка даёт log частоты, а не над-представленность; канал понижен до инвентаря.
6. **Отклонение методики — замерять, а не декларировать.** Нарезка здесь не боевая; свип целевого размера чанка (800/2000/6000) дал Жаккар 1.000 — только после этого цифры можно было предъявлять.