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

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

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

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

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

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

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

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

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

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

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

Модель, как и первая ее версия, выложена в репозитории проекта 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

1414
3 комментария

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

2
Ответить

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

Ответить

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

Ответить