Немного мудрости от читчата

Из тестовой выдачи - моделька читчата генерит ответы на вопросы "что такое" и "кто такой":
Collapse )

Самое эпичное - творческий подход к морфологии, аппроксимация "пенал" до "пенальти" и то, что модель сделала с воротами:

- что такое пенал ?
- штрафной удар по воротамал .

Эксперименты с GPT-2 в чатботе

В тестовый стенд чатбота интегрирована модель GPT-2, дообученная на массиве диалогов. Общий объем диалогов после отфильтровывания мата и жаргона - около 1 Гб, в основном чит-чат. Процедуру обучения GPT-2 пришлось немного доработать, так как оригинальный код рассчитан на большие тексты, а у нас - короткие реплики.

Некоторые тестовые разговоры двух ботов:
Collapse )

Небольшая проверка Sentence Trasformers на русскоязычных данных

Библиотечка https://www.sbert.net/docs/ содержит удобные инструменты как для получения эмбеддингов предложений (согласно доке, поддерживается 100 языков), так для некоторых базовых операций со списками предложений. Например, очень просто делается поиск ближайшего предложения для запроса. При этом используется косинусная метрика близости.

Уместный вопрос - насколько хорошо это работает "из коробки"?

Я сделал небольшой эксперимент с двумя моделями:
Collapse )


Кажется, что работает это с переменным успехом.

Планы по чатботу

Итак, текущее состояние проекта чатбота зафиксировано в релизе 0.0.2.16. Вика стала многословней и чуточку лучше поддерживает чит-чат:
Collapse )
Иногда тестовый бот раскручивает Вику на диалоги из 20+ реплик (с ошибками, увы, над ними еще работать и работать):Collapse )
Что в планах?

1. Надо что-то делать с составными ответами. Например, для человека естественным является такой обмен репликами:

- как тебя зовут
- меня Витя, а тебя?

Collapse )

Регулярки как основа голосового UI

Небольшой рассказ о Марусе (голосовой ассистент mail.ru):
Collapse )
Интересный момент на 21:23, спикер сообщает что-то такое:

"из последних инсайтов, которые почерпнула ... когда пользователь говорит про погоду ... он например может использовать фразу 'сообщи погоду' ... почему 'сообщи'?

Вот прямо немного запахло регулярками в разборе запросов в Марусе.
И до этого несколько раз она же говорит вещи, подразумевающие сопоставление запроса с шаблонами по буквальному представлению.

Посидим рядком, початботим ладком: парное полуавтоматическое тестирование чатботов

Ручное тестирование чатбота постепенно становится обременительным из-за роста числа разных тем, которые поддерживает движок. В связи с этим было решено поручить "протыкивание" второму чатботу. Затем листинги бесед двух мудрецов можно просмотреть и выявить явные разрывы, нерелевантные ответы и так далее.

И важное техническое решение: средняя длина диалогов чит-чата, судя по всему, неплохо подходит в качестве оптимизируемой метрики. Простыми словами, чем дольше два бота беседуют до затыка (при отсутствии повторов реплик), тем лучше. Например, "беседа" длиной 17 реплик:

Collapse )

Полный листинг с сотней диалоговых сессий - тут.

Сытое брюхо к прытливости глухо (генератор OOV лексики + генератор стихов)

Генератор OOV лексики и немного NLP'шной требухи в виде ударятора, тэггера и т.д. позволяют генерить вот такую народную мудрость:

Сытое брюхо к прытливости глухо

шлиботун в бороду, мужатбон в сторону

когда риботка урчит, голова молчит

Утливость от ботности недалеко падает

набитое брюхо к файболту глухо

дарёному коню в полты не смотрят
Collapse )

Генерация OOV лексики

Есть вот такой побочный результат небольшого ресеча в области русского словоизменения и словообразования. Относительно небольшой код генерирует словоформы в любых количествах, позволяя получить "out-of-vocabulary грамматический словарь" любого объема. Процесс unsupervised, то есть никаких ручных правил не требуется, псевдокорни и флексии берутся из имеющегося грамматического словаря. Без GPT-2 :).
Для примера - некоторые формы существительных:

Номинатив (кто? что?), единственное число:

труженолюбец
алхимчанин
весельчанин
служничек
мазонопятник
распрысенок
автовордист
коротрейдер

Collapse )

Интересный, и возможно умный вопрос возникает при просмотре этого безобразия. Многие формы забавны для русскоязычного нейтива, при том, что вот именно эти слова точно не входят ни в активный, ни в пассивный словарный запас. Должен быть какой-то объективный процесс из области когнитивной лингвистики, который обеспечивает эту самую "забавность".

PS: еще немного забавных номинативов:

Collapse )

Озвучка и визуализация стихов сервисом виртуального ведущего от mail.ru

Попробовал озвучить цифровые стихи с помощью сервиса от Mail.Ru.
Жаль, но движения губ диктора получились вообще не синхронизированы с текстом. Возможно, это результат "специфичного" текста, нейросетка при обучении такого контента, конечно, не видела.
А вот качество TTS вполне на высоте, не хуже Яндексовского TTS (вначале будет реклама, неизбежное зло):

Collapse )