tools/audit_tracks.py и reports/tracks_audit.md — аудит всех дорожек
техданных по data/raw с планом. Пункт 1 плана: harvest_core.codec_line_rows
добавляет студии из строк «Аудио 2: AC3 … (MVO, LostFilm)», «Аудио Rus: … |
TVShows» (studio_source=codec), которых нет среди строк релиза; тот же шаг
в tools/relabel_studios.py (повторный запуск ничего не добавляет).
labels.csv: +6 428 строк в 2 862 релизах (kinozal 3 444, nnm 1 609,
rutracker 1 375), со студией 29 331 -> 35 759. tests/e2e_segmenter.py:
модель через E2E_MODEL.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* harvest_core.nnm_part_studio: студия из части строки «Перевод:» nnm
(«Дублированный (Невафильм)», «… - Jaskier»); раньше такие строки шли с
«(не указана)», и модель училась не извлекать студию даже из
«Дублированный (Пифагор)». tech-строки со студиями больше не
выбрасываются, если на странице нет строк «Аудио N» с именами.
* harvest_core.kz_title_rows: kinozal, студии из заголовка «ПМ (LostFilm,
HDrezka Studio)», которых нет на странице; вход — сегмент как у сервиса,
строка «Аудио Rus: … | Студия» — в audio_raw.
* tools/relabel_studios.py — то же по готовому labels.csv без пересборки
страниц; применено к data/labels.csv: со студией 22 061 -> 29 331 строк
(nnm +3 051, kinozal +4 219 строк в 3 007 релизах); prepare_data:
39 418 строк, спан студии 24 004 -> 31 214.
* e2e: эталон как aggregate — «тип без студии» убирается, если у типа есть
студия.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>