?

Log in

No account? Create an account

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

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

Текущие задачи, решенные в чатботе плохо или не решенные вообще
kelijah
Зафиксировал текущее состояние всех алгоритмов чатбота релизом 0.0.0.12. Как и раньше, это proof-of-concept, работающий на очень ограниченном domain'е, прежде всего "здрасьте - как вас зовут". В релизе добавлены новые правила и доработан workflow чатбота, что позволяет отрабатывать такие тестовые диалоги:
Read more...Collapse )

Побочный эффект от генеративной грамматики: режим шаблонизатора
kelijah
Фрагмент тестового диалога с экспериментальной версией чатбота (H:> реплики человека, B:> реплики бота)
Read more...Collapse )

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

Твердое "может быть" в вопросно-ответной системе
kelijah
В догонку к предыдущему - еще пример обмена репликами, когда буквальное значение и подразумеваемое противоположны:

- Хотите повторить?
- Почему бы и нет?


Ответ (кстати, в форме вопроса, хе-хе) содержит "нет", но однозначно подразумевает "да". Даже так - он полностью синонимичен "да":

- Хотите повторить?
- Да.

Наглядный пример, почему семантика - это не логика
kelijah
Добавляю в чатбот обработку некоторых сценарией "персонального ассистента" и "мажордома". Среди прочего - команда на проверку почты:

B:> Добрый день

H:> нет ли новой почты?
B:> Фиктивная проверка почты в функции on_check_email

H:> новая почта есть?        
B:> Фиктивная проверка почты в функции on_check_email



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

прототип движка для entity extraction в чатботе
kelijah
В код чатбота добавлен движок (черновой proof-of-concept прототип) для entity extraction. В качестве тестового примера сделана обработка запросов для прогноза погоды:
Read more...Collapse )

Генеративная модель чатбота, основаная на правилах
kelijah
Добавил для эксперимента в движок чатбота поддержку генеративной грамматики (описание тут) для создания реплик в ответ на не-вопрос собеседника:


B:> Добрый день
H:> я поиграл в компьютерную игру
B:> Как называется эта компьютерная игра?





Read more...Collapse )

Большой рефакторинг чатбота: все правила в одном файле и модель определения intent'ов
kelijah
В репозиторий https://github.com/Koziev/chatbot залита текущая версия чатбота с множеством изменений и исправлений.
Read more...Collapse )

auto-FAQ чатбота и планы по intent/entity extraction движку
kelijah
1. Я немного автоматизировал процесс hard negative mining для чатбота, добавил найденные негативные сэмплы в датасеты и переобучил все модели. Заодно расширил тестовый диалог, в котором проверяется модель синонимичности. Теперь чатбот умеет кое-что о себе рассказывать:
Read more...Collapse )

Кастомизация чатбота: переобучение модели релевантности
kelijah

Модель релевантности - алгоритм, который для двух заданных фраз (предпосылка и вопрос), определяет, содержит ли предпосылка всю информацию, необходимую для ответа на вопрос.

Добавление новых сэмплов и переобучение


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

Read more...Collapse )