?

Log in

No account? Create an account

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

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

Entries by tag: rnn

Изменения в модели wordchar2vector (посимвольный рекуррентный автоэнкодер)
kelijah
Подробное описание модели: https://github.com/Koziev/chatbot/blob/master/PyModels/trainers/README.wordchar2vector.md
Исходники выложены в репо https://github.com/Koziev/chatbot, в частности код тренера и скрипт запуска обучения.

Read more...Collapse )

Черновики по задаче "Вопросно-ответная система на русском языке"
kelijah
Отстрелялся в задаче "Вопросно-ответная система на русском языке".
Исходники решения выложил в репозиторий https://github.com/Koziev/NLP_Comp/tree/master/SDSJ_A

Самый красивый, хотя и не самый точный, вариант - сеточная модель со сверточной и рекуррентной частями, написанная на питоне и Keras: https://github.com/Koziev/NLP_Comp/blob/master/SDSJ_A/models/nn5.py

Autoencoders for word representations и ахитектура для встраивания доп. информации
kelijah
Для эксперимента WordRepresentations делаю последний вариант получения векторного представления слов с помощью автоэнкодеров.

Read more...Collapse )

Готовлю ансамбль к MorphoRuEval 2017
kelijah
Соревнование: http://www.dialog-21.ru/evaluation/2017/morphorueval/

Как в старые добрые времена, которые я не успел застать: машинное время на моем сервере на ближайшие пару недель расписано полностью. Все четыре ядра и 32 Гб памяти будут гонять питоновские скрипты.

На данный момент в проработке и тестах:

1. Сеточная char-level LSTM модель для лемматизации с трансдьюсерами.
2. Сеточная char-level LSTM модель для частеречной разметки. Замечательная и красивая штука, но ансамбль круче.
3. Ансамбль из char-level LSTM + DecisionTree + MaxEnt + NLTK ClassifierBasedPOSTagger для частеречной разметки.

Если успею, то в ансамбль войдет сеточная word-level LSTM модель.

Неудачные эксперименты - использование CRF, RandomForest и GradientBoostingClassifier (последние два из sklearn).

Все модели, в том числе неудачные, будут выложены на github и подробно описаны в запланированных постах. Использую только python, keras, sklearn и NLTK, никаких сторонних непереносимых библиотек.

Рекуррентная и сверточная сетка для парсинга цепочки слов
kelijah
(Продолжение - см. часть 1 syntax_chars)

На уровне цепочки слов есть множество вариантов построения сеточной модели, которая будет выдавать матрицу связности слов. Кратко опишу результаты для двух экспериментальных моделей - syntax_w2v_rnn и syntax_ff.
Read more...Collapse )

Синтаксический анализ на сверточных и рекуррентных сетках. Часть 1: syntax_chars
kelijah
Посмотрим, как с помощью нейросетевых моделей можно строить синтаксическое дерево зависимостей для предложения.
Читать далее (LSTM, Keras, char-based parsing)...Collapse )

Определение списка синтаксических ребер по words2words-вектору предложения
kelijah
Результаты по сравниваемой модели (условно называется syntax_ff) представлены тут http://kelijah.livejournal.com/197110.html.

Вторая модель берет вектор предложения, получаемый с помощью предобученного RNN-автоэнкодера word2words, и на выходе пытается выдавать такие же ребра.

Read more...Collapse )

Лемматизация на сетках
kelijah

Что делает сеточный лемматизатор?

Вот скриншот обучающейся модели, на котором видно, что поступало на вход сетки и что получалось на выходе:

Read more...Collapse )


Как бы нейросеть пытается передать смысл фразы своими словами ///забавный момент при обучении///
kelijah
Увидел в визуализации текущего состояния сетки, которая только-только начала обучаться.
Слева - исходная фраза, которую рекуррентная сетка упаковывает в вектор.
Справа - цепочка слов, которая сгенерирована второй рекуррентной сеткой из вектора фразы.

сначала поимка медведя ==> теперь енот сачком охотник

Работоспособная chars2vector модель для получения word2vector встраивания для любой цепочки символов
kelijah
Продолжение темы http://kelijah.livejournal.com/185930.html

Проверена модифицированная модель chars2vector.
На входе - слова как цепочки символов.
Цепочка кодируется набором LSTM ячеек, на последнем символе получаем некий вектор.
Следующий слой учится отображать этот вектор на вектор из word2vector модели.
На keras модель описана так:
Read more...Collapse )

Таким образом, для любой последовательности символов модель учится строить максимально близкий вектор word2vector. Если теперь брать слова, получать для них вектор через эту модель, и искать 10 самых близких по косинусу слов в word2vector, то получается такая интересная картина:
Read more...Collapse )

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