* 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>