Несколько студий в одной строке, разбор противоречий, правки парсеров студий
docker / build (push) Successful in 1m21s
docker / build (push) Successful in 1m21s
Парсеры (PARSE_VERSION 9): «т/к» и единицы битрейта не режутся по слэшу, техпараметры (kb/s, Кбит/сек, 16 бит, channels, CBR, Atmos) и пол голоса (муж./жен.) не становятся студией, «от X» -> X; «N-й канал», «5 канал», «Лексикон» больше не выбрасываются как мусор; строка без типа со списком из 3+ имён (актёры, титры сабберов) не даёт дорожек; в кодек-строках имя рядом со скобкой пола становится кандидатом, а строка только с мусором даёт дорожку с типом без студии. Несколько авторов строки («Многоголосый (HDRezka Studio, LostFilm)» — верны все): prepare_data склеивает строки релиза в одну со списком spans, обучение размечает все спаны BIO, span_exact сравнивает наборы, decode_spans возвращает все прогоны; сервис отдаёт studio_spans / studios / studio_confidences, в ответе релиза — дорожка на каждого автора. Противоречий в датасете 20 % -> 1.2 %; проверочная tiny2 находит весь набор студий в 71 % строк с 2+ авторами (прежняя модель — 1 %). Разбор противоречий (collect.py, пункт 8): тексты, которые релизы разметили по-разному; решения в data/text_fixes.csv применяются в prepare_data поверх labels.csv. Метки и модель не пересобраны: нужны collect.py build --relabel, prepare_data, переобучение. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
0f359837c5
commit
8511744d3a
15 files changed
+560
-119
No files matched your search
@@ -106,6 +106,9 @@
|
||||
| `studio_span` | string \| null | фрагмент текста, распознанный как автор/студия |
|
||||
| `studio` | string \| null | каноническое имя автора из словаря алиасов; неизвестное имя возвращается как в тексте; `null` — автора нет |
|
||||
| `studio_confidence` | float \| null | средняя вероятность токенов спана |
|
||||
| `studio_spans` | array of string | все авторы, найденные в строке, по порядку в тексте («Многоголосый (HDRezka Studio, LostFilm)» → два); первый совпадает со `studio_span`; пусто — автора нет. В ответе релиза такая строка раскладывается на дорожку на каждого автора, и в каждой дорожке здесь один элемент |
|
||||
| `studios` | array of string | канонические имена для `studio_spans`, в том же порядке |
|
||||
| `studio_confidences` | array of float \| null | уверенность для каждого элемента `studio_spans` |
|
||||
| `is_18plus` | bool | дорожка помечена 18+ (по модели или по строке «Аудио … 18+» страницы) |
|
||||
| `age_confidence` | float 0..1 | вероятность предсказанного класса 18+ |
|
||||
| `lang` | string \| null | язык дорожки, ISO-подобный 3-буквенный код: `RUS`, `UKR`, `ENG`, также `BEL`, `KAZ`, `POL`, `FRA`, `DEU`, `ITA`, `SPA`, `JPN`, `KOR`, `CHI`, `CZE`, `LAV`, `LIT`, `EST`, `GEO`, `ARM`, `AZE`, `UZB`, `TUR`, `POR`, `HIN`; `null` — не определён |
|
||||
@@ -184,6 +187,9 @@ type Track = {
|
||||
studio_span: string | null; // null — автора в тексте нет
|
||||
studio: string | null; // null вместе со studio_span
|
||||
studio_confidence: number | null; // null вместе со studio_span
|
||||
studio_spans: string[]; // все авторы строки по порядку; [] — автора нет; [0] == studio_span
|
||||
studios: string[]; // канонические имена studio_spans, тот же порядок
|
||||
studio_confidences: (number | null)[]; // уверенность каждого автора
|
||||
is_18plus: boolean;
|
||||
age_confidence: number; // 0..1
|
||||
lang: string | null; // 3-буквенный код или null
|
||||
|
||||
Reference in new issue
Block a user