?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Entries by category: компьютеры

Немного болтовни с чатботом 0.0.0.13
kelijah
В новом релизе чатбота в движке сделаны некоторые правки, чтобы получались (иногда) вот такие диалоги:
Read more...Collapse )
Это уже намного ближе к обычной болтовне незнакомых людей, как, например, в этом датасете Toloka Persona Chat Rus. То есть меньше механичности, больше импровизации и проактивности. Хотя косяков пока многовато - иногда (кхм, частенько) бот выдает малорелевантные реплики, иногда модели генерации текста поставляют мусор.

Чтобы справится с этими косяками, нужна модель для оценки того, насколько реплика вписывается в общий дискурс диалога. Я попробовал сделать черновую модельку на базе ELMO из deeppavlov (ElmoEmbedder) плюс линейный регрессор для предсказания вектора следующей реплики, чтобы через cosine между предсказанным и фактическим вектором оценивать уместность реплики. Результат в целом нулевой, так как по метрике precision@k предсказанный вектор с трудом попадает в top-40% фраз, из которых одна - действительно релевантная. Следующая попытка - нейросетевой регрессор поверх BERT. Я проверил на ruBERT из deeppavlov плюс keras-bert, вроде бы немного более обнадеживающие результаты, будем препарировать тему дальше.

Профили в чатботе
kelijah
В новом релизе чатбота я добавил "профили" - текстовые файлы (json), в которых указываются пути к файлам с фактами и правилами. С их помощью, думаю, будет проще создавать разные "характеры". В этих же профилях в будущем будут доступны тонкие настройки характера бота (ну не прямо как тут, конечно, хотя...). Сейчас сделан базовый отладочный профиль, который позволяет чатботу отвечать на десяток простых вопросов о самом себе, примерно так:
Read more...Collapse )

Генеративная грамматика для проактивного чатбота
kelijah
Для реплики собеседника генеративная грамматика создает целый набор вопросов и просто реплик. В некоторых случаях одна только N-граммная языковая модель позволяет неплохо отсеять откровенную бессмыслицу и оставить более-менее разумные фразы:
Read more...Collapse )

Кластеризация предложений в векторном пространстве
kelijah
Если мы для каждого предложения умеем вычислять вектор фиксированной длины, то становится доступна и кластеризация. Именно кластеризация позволяет быстро проверить важную гипотезу,  что существует некоторое относительно небольшое количество предложений (словосочетаний, синтагм), описывающих некоторые типичные ситуации окружающей действительности и деятельности субъекта в этой действительности. Наличие таких текстовых архетипов позволит улучшить работу алгоритма семантического и синтаксического анализа текста, но об этом поговорим в отдельной главе.
Read more...Collapse )