{"id":13835,"url":"\/distributions\/13835\/click?bit=1&hash=e1e12adea1499cc9a8db40cc1c07cce3ce795a6c7a3d073493e1291f48a4a843","title":"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f: \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u043f\u043e\u0447\u0442\u0443, \u0447\u0430\u0442 \u0438 \u0444\u0430\u0439\u043b\u043e\u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a \u0437\u0430 \u043f\u0430\u0440\u0443 \u0447\u0430\u0441\u043e\u0432","buttonText":"\u0427\u0438\u0442\u0430\u0442\u044c","imageUuid":"728ad728-b270-5f6e-aa5a-d8a9339fb1b2","isPaidAndBannersEnabled":false}

Восстановление знаков пунктуации и заглавных букв на 4 языках — теперь и на длинных текстах

После релиза нашей первой модели, расставляющей знаки препинания и большие буквы в тексте, было много пожеланий доработать её, чтобы она могла обрабатывать тексты целиком, а не отдельные предложения. Это коллективное пожелание и было осуществлено в нашей новой версии модели.

В целом, архитектура и датасеты остались прежними.

Что изменилось:

  • Обучение теперь производилось не на отдельных предложениях, а на нескольких последовательных предложениях (принимаем во внимание, что конструктивное ограничение модели при обучении — 512 токенов на вход, что позволяет свободно подавать ~150 слов на любом из четырех поддерживаемых языков);
  • Для ускорения обучения модели сокращение словаря теперь проводилось не только на инференсе, но и на трейне, что позволило увеличить размер батча;

Примеры работы модели

Как и раньше, приведем непосредственные примеры работы модели — в этот раз поможем Агенту Смиту с пунктуацией и заглавными буквами на трех оставшихся языках:

Как запустить

Модель, как и первая ее версия, выложена в репозитории проекта silero-models. А вот простой минималистичный запуск модели (прокликать более детальные примеры, как обычно, можно в colab):

import torch (model, example_texts, languages, punct, apply_te) = torch.hub.load(repo_or_dir='snakers4/silero-models', model='silero_te') input_text = input('Enter input text\n') apply_te(input_text, lan='en')

Дальнейшие планы

В перспективе есть мысли переработать и расширить тренировочный корпус текстов — например, сейчас в нем заметно не достает примеров разговорной живой речи, как в субтитрах.

Еще одна особенность модели, тоже проявившаяся именно при работе с целыми абзацами текста: из-за того, что модель предсказывает заглавные буквы и пунктуацию раздельно — на каждую подзадачу отдельная голова, — изредка эти предсказания выходят несогласованными. В процессе разработки модели мы пробовали делать общую голову для обеих задач, но она работала хуже раздельных. Опция, которую хорошо бы еще проверить, — предсказывать сначала расстановку заглавных букв (это более простая задача), а потом подавать это предсказание вместе с входной текстовой последовательностью для расстановки пунктуации.

P. S.

Делитесь остроумными примерами работы модели в комментариях и голосуйте за понравившиеся! Лучшие фразы добавим как встроенные примеры в следующем релизе :D

0
3 комментария
Михаил

В указанном тексте не помешало бы расставить знаки препинания. И опечатки в статье.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Читать все 3 комментария
null