?

Log in

No account? Create an account

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

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

Entries by category: it

Bottomup парсер на чистом питоне
entry is in top1000 ratingTop 1000
kelijah
Раз в два-три года я пробую делать какой-то новый парсер для русского языка. Последний раз это была неудачная попытка прикрутить reinforcement learning для shift-reduce парсера, обучаемого на корпусе эталонных разборов.

В этот раз за полтора месяца сделан прототип восходящего вероятностного парсера на чистом питоне.

Read more...Collapse )

Расширение поддержки русского языка в Duckling
kelijah
Duckling - библиотека от Facebook, позволяющая извлекать из текста структурированные данные. Например, с ее помощью из строки "смартфон стоит двенадцать тысяч рублей" можно выделить числительное "двенадцать тысяч". Попутно для извлеченной информации делается некоторая нормализация, то есть получим представление в числовом виде "12000".

Помимо других альтернативных инструментов, Duckling можно использовать в фреймворке чатботов RASA для NER.

Чтобы "пощупать" этот экстрактор, нужно скачать репозиторий, скомпилировать, запустить rest-сервис. После чего через браузер или curl можно прокачивать тексты и видеть json-результаты.

Попробуем:
Сборка, тестирование, расширение duckling...Collapse )

Изменения в порядке генерации ответов в чатботе
kelijah
В коде релиза 0.0.2.2 кроме всяких правок ошибок и более точных NLP моделек сделана одна существенная модификация в генераторе ответов.
Раньше чатбот на вопросы, относящиеся к нему "лично", генерировал ответ общим алгоритмом, то есть искал релевантный факт в базе знаний, брал отуда необходимый фрагмент и строил ответ. Выглядело это примерно так:
Read more...Collapse )

Релиз чатбота 0.0.1 (альфа) - вербальные формы, сценарии и прочее
kelijah
В проекте русскоязычного чатбота сделан релиз с большими изменениями в коде бота. В основном работа велась над возможность задавать поведение бота через вручную задаваемые правила - сценарии и вербальные формы.

Read more...Collapse )

Релиз чатбота 0.0.0.16 - встраивание движка в RASA
kelijah
В рамках этого релиза чатбота я серьезно переработал исходный код и "обиблиотечил" движок. Теперь бот можно встраивать в питоновский код, как это показано на примере интеграции с RASA.

Для встраивания бота необходимо зарегистрировать пакет командой, находясь в корне скачанного проекта:
Read more...Collapse )

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

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

Собранные русские словарные базы и исполнимые файлы для Грамматического Словаря
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 )

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

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

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

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


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

Read more...Collapse )