?

Log in

No account? Create an account

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

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

Динамическое создание атрибутов - штатная фича Питона и малоизвестная фича C#
kelijah
Любой, кто начинает изучать Питон, быстро узнает такую фичу языка, как создание нового атрибута объекта в результате присваивания:
Read more...Collapse )

неудачная попытка использовать либу NNSharp для запуска Keras-модели в C#
kelijah
Репозиторий проекта: https://github.com/adamtiger/NNSharp

Файлы со скриптом тренировки простейшей рекуррентной модели на Keras и использование в C#: https://gist.github.com/Koziev/ce781f1acd9df0bb34a7e5d89411bb1e

Сразу надо сказать, что входящий в NNSharp скрипт KerasModeltoJSON.py может работать только с так называемыми sequential моделями Keras. Более удобные и функционально более гибкие functional модели вызывают ошибку в строке 29, когда делается попытка получить размеры данных на первом слое. У functional моделей может быть несколько входов, поэтому этот подход не работает.

Тем не менее, я сделал простейшую sequential модель, которая вычисляет сумму 10 случайных чисел от 0 до 10.

И в C# мне не удалось получить адекватные результаты. В частности, сумма десяти нулей дает результат, существенно отличающийся от выдачи самой Keras модели после обучения.

Тем не менее не исключаю собственный косяк. И пока остаюсь сторонником прямого подхода - создание микросервисов с flask+keras, чтобы не заниматься в бою отладкой глюков преобразования моделей.
Tags: , ,

Неудачные эксперименты с triple и contrastive loss архитектурами для определения перефразировок
kelijah

1. Постановка задачи

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

Read more...Collapse )


Наглядно о текущих проблемах в чатботе
kelijah
1. Текущая реализация чатбота имеет примитивнейшие зачаточные функции проактивного диалога и knowledge mining'а. Но кроме ограниченности самих функций, проблему составляет и "туповатость" модели понимания (интерпретации), что видно по последнему вопросу чатбота, когда он не понял последний мой ответ:
Read more...Collapse )

Взаимная информация и алгоритм Леска для отбора ассоциаций: граф Бозон де Валуа
kelijah
Что там с бозоном?

У обычного человека, более-менее интересующегося околонаучными новостями, для слова "бозон" скорее всего ассоциируются "Хиггс",  "коллайдер" и прочее. А что можно сказать по поводу следующего фрагмента:

"Происхождение Бозона неизвестно. Он родился не позже 800 года. Известно о нём не очень много. Его владения находились в Италии."

Звучит странно? Странно. Тем не менее, это достоверный факт, насколько можно верить википедии - см. викистатью Бозон Древний. Вообще, со словом "бозон" связано множество викистатей, что делает вторую часть рассказа про взаимную информацию немного более интригующей.
Read more...Collapse )

Датасет с ударениями для русского лексикона (>1.6 миллионов слов)
kelijah
В репозиторий https://github.com/Koziev/NLP_Datasets выложен мой датасет с данными об ударениях.
Примерно такой объем был использован в коде лексического шаблонизатора для конкурса ClassicAI.
Поясненения есть в README.md, сам упакованный датасет доступен по ссылке.

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

Черновой вариант модели интерпретации ответов пользователя в чатботе
kelijah
Исходный текст аппликатора модели в чатботе доступен в репозитории.
То, что делает эта модель, можно пояснить таким примером диалога:
Read more...Collapse )

Альтернативный подход к генерации фраз для чатбота из classic.sberbank.ai
kelijah
Вообще я планировал, что в каком-то виде алгоритм, или его части, созданный для https://classic.sberbank.ai, будет использоваться в чатботе при генерации ответа. У него среди прочего есть такая интересная особенность, что он рандомизирован, и может выдавать разные ответы на каждую попытку - то, чего не хватает сейчас чат-боту.

Например:
Read more...Collapse )

Волшебство seq2seq нейросетки в чатботе - вот кто так еще умеет?
kelijah
Тренер модели и тестирующая часть доступны в файле nn_chargenerator.py.
Готовая модель натренирована на моем датасете вопросов и ответов, она выложена тут (файлы nn_chargenerator.*). Ее назначение - генерация ответа чатбота при наличии нескольких предпосылок (от 0 до 3) и вопроса. В рассматриваемом случае предпосылок нет, текст вопроса содержит в себе все необходимое.

Запускать в консоли надо так: python nn_chargenerator.py --run_mode query

Ответы модели на вопросы "Сколько букв в слове ...?":
Read more...Collapse )