?

Log in

No account? Create an account

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

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

Немного болтовни с чатботом 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 )

NER датасет из каггла "text-normalization-challenge-russian-language"
kelijah

Вот эти данные для entity типа DATA содержат огромное количество строк типа

Проверено 1 января 2016 . International Renaissance Foundation.
Проверено 16 января 2016 . Смотрим телевизор . | 16 января 2016
Проверено 21 февраля 2016 . Текмаш отметил 160 летие . | 21 февраля 2016


Уверен на 100%, что данные получены простой конвертацией викиданных из русской Википедии. Возможно, для некоторых моделей NER перекос в статистике паттернов будет снижать немного их качество. Ну и мусора там, конечно, прилично:

People ( 27 августа 2001 ) .
Deadline.com ( 17 ноября 2014 ) .
ESCToday ( 19 марта 2012 ) .


и т.д.



RASA, spacy, русский язык и NER
kelijah
После трех дней осады и борьбы, у меня заработала связка из текущей версии RASA и spacy (я взял готовые модели для русского языка, спасибо Юрию за помощь :) ).

Кроме того, я сделал конвертор для своего NER датасета в формат для обучения Spacy NER. После пары часов получилось дообучить спейсовский NER, взяв за основу код отсюда:
Read more...Collapse )

Еще датасеты со словосочетаниями, короткими и неполными предложениями
kelijah
В добавок к этому, залил в репозиторий старые (2015 год) залежи. В то время они были собраны для проверки синтаксияеского парсера. Например, S+V+INSTR.zip содержит сэмплы типа "Я вертел ими", в которых творительный падеж актанта однозначен, то есть эти сэмплы однозначно определяют соответствующий слот у глаголов. Еще любопытный пример - конструкции с  местоимениями "я" и "ты" в роли подлежащего и личным глаголом свидетельствуют о том, что глагол употребляется с одушевленным субъектом.

Сейчас хочу использовать эти данные для обучения языковых моделей чатбота, но, возможно, они кому-то еще пригодятся.
Read more...Collapse )

Датасет с сэмплами подлежащее+глагол+предлог+существительное
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 )