?

Log in

No account? Create an account

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

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

Датасет с сэмплами подлежащее+глагол+предлог+существительное
kelijah
Обнаружил у себя датасет (файл в репе 3 Мб) с большим списком сэмплов такого вида:
Read more...Collapse )
Сэмплы были собраны автоматически из 10Гб корпуса текстов. Некоторые сэмплы содержат неполные предложения ("Я расскажу с позиции"). Я планирую использовать их для обучения модели валидации синтаксиса для чатбота, но, возможно, они будут кому-то полезны и для других языковых моделей.

Собранные русские словарные базы и исполнимые файлы для Грамматического Словаря
kelijah
В репозиторий https://github.com/Koziev/GrammarEngine выгружены полные актуальные сборки русской словарной базы для 64-битных Windows и Linux. Историческая ремарка - необходимость в разных версиях словаря под вин и лин объясняется такой замечательной особенностью C++, как отсутствие гараний размера основных типов данных. В частности, wchar_t для вин для большинства компиляторов имеет размер 2 байта, для лин - 4 байта.

Для начала использования под Windows вообще не нужно компилировать ничего - репозиторий содержит все необходимое. Если запустить exe64\lexicon.exe, то можно в консоли проверить поиск слов в лексиконе. Запустив scripts\syntax\console_syntax.cmd, можно посмотреть, как разбираются простые предложения в rule-based синтаксическом парсере. Пересборка словарной базы выполняется скриптом scripts\dictionary\russian.cmd

Для работы в Linux нужно собрать исполнимые файлы. Процесс сборки описан в README.md. Ничего особого там нет, просто набор приседаний со скачиванием и установкой зависимостей и запуском сборки в CMake.

Но есть и проблема - под VisualStudio 2017 перестал собираться один из компонентов Парсера.

Текущие задачи, решенные в чатботе плохо или не решенные вообще
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 )