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

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

Предварительное сравнение точности CRFSuite и LSTM-CRF из keras.contrib
kelijah
Задача - анализ строковых данных из номенклатурного справочника.
Данные представляются цепочкой символов, разбивка на слова невозможна из-за специфики задачи. Каждому символу модель должна присвоить флаг в зависимости от того, относится ли символ к извлекаемой сущности. Сравниваемые модели используют одинаковый датасет с идентичной разбивкой на train/val.

1) Решение на базе классического NLP алгоритма на базе CRF использует реализацию CRFSuite и вручную выбранные фичи. Обучение длится примерно 20 часов. Достигаемая точность per char равна примерно 0.9947

2) Решение на базе keras-contrib.CRF. Никаких ручных фич нет, на вход bidir LSTM слоя подаются векторы исходных символов, настраиваемые через Embedding (см. референсную реализацию, я добавил туда лишь EarlyStopping и вычисление per instance accuracy). Обучение на GPU + Tensorflow идет примерно 1 час. Достигаемая точность per char равна 0.9988

Война с keras.contrib.CRF, Theano и Tensorflow
kelijah
По рабочей необходимости прочесываю все современные нейросетевые архитектуры и решения для выполнения sequence labeling. Сейчас боевое решение основано в том числе на старом добром CRFSuite через питоновскую обертку python-crfsuite и при разметке номенклатурных данных достигает неплохой точности от 99.5% до 97.8% в зависимости от категории извлекаемых данных.

Среди архитектур, которые я пробовал, есть замечательная штука под названием LSTM+CRF.
Read more...Collapse )

PS: под Ubuntu 16.04 удалось запустить нормальное обучение в варианте с Keras==2.0.6 и текущим Tensorflow. Вот такая она, цена поддержки разных бэкэндов в Keras:
Read more...Collapse )

Исходники чатбота после рефакторинга
kelijah
Текущие исходники кроме тренировочных скриптов выложены тут https://github.com/Koziev/chatbot/tree/master/PyModels/bot
Ядро диалоговой системы отделено от фронтэнда, что позволило минимальными усилиями реализовать простые фронтэнды в консоли и для Telegram:
Read more...Collapse )

Исходники чат-бота (диалоговой системы): утилита для генерации вопросно-ответного датасета
kelijah
Продолжение https://kelijah.livejournal.com/231141.html.
Исходный текст утилиты (C#, проект для VS Studio 2015) лежит тут https://github.com/Koziev/chatbot/tree/master/CSharpCode/GenerateQA
Далее подробное описание.

Read more...Collapse )

Исходники чат-бота (диалоговой системы)
kelijah
Все исходники буду выкладывать в репозиторий https://github.com/Koziev/chatbot
В ЖЖ буду размещать подробное описание всех использованных моделей.
Для затравки - вспомогательная утилита второго уровня, с помощью которой были сгенерированы некоторые датасеты в этом репозитории, например facts.txt.

Утилита для сбора предложений-фактов...Collapse )

Актуальная русская словарная база с моделями POS Tagging, syntax parsing и лемматизации
kelijah
Обучение всех моделей для русской словарной базы закончилось. Файлы моделей и прочие запчасти лежат в папке https://github.com/Koziev/GrammarEngine/tree/master/src/bin-windows64

Перед использованием надо распаковать *.zip файлы, так как они превышают предельный размер для репозитория в github'е.

Пробный диалоговый бот для Telegram
kelijah
После рафакторинга кода сделал пробный вариант чат-бота с использованием python-telegram-bot:
Read more...Collapse )

Весело начался год собаки
kelijah
Накручивая нейросетку поверх CRF для нормализации результатов разбора данных для ETL процедуры, случайно обнаружил, что модель для CRF разбила датасет в пропорции 20% на тренировку и 80% на валидацию. Спасибо остатку от деления на пять:
Read more...Collapse )

Динамическое обновление базы знаний в чат-боте
kelijah
Retrieval-based модель чат-бота с inference engine на базе нейросетки позволяет, в отличие от генераторной модели, делать быстрое обновление базы знаний бота. Это можно описать как one-shot memory, когда новый факт сразу же учитывается в последующих циклах общения без переобучения нейросетки:
Read more...Collapse )

Актуальность, субъективность и субъектность в нейросетевой модели чат-бота
kelijah
Вторая версия прототипа чат-бота, основанного на нейросетевых моделях диалога:
Прототип чат-бота с комментариями...Collapse )

?

Log in

No account? Create an account