?

Log in

No account? Create an account

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

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

Entries by tag: синтаксический разбор

Новая модель для синтаксического парсинга
kelijah
Я немного расширил набор фич в модели синтаксического парсинга и сделал предварительный grid search по метапараметрам.

Пока по предварительным замерами на валидации старая модель давет точность определения родителя примерно 96.83%, а новая модель дает минимум 98.54%.

Файлы новой русской синтаксической модели (предварительные) выложены в репозиторий: syntax.codebook и syntax.model.

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

Эксперимент с использованием reinforcement learning keras-rl для синтаксического парсинга
kelijah
Используется размеченный treebank отсюда: http://universaldependencies.org
Reinforcement learning делается средствами keras-rl
Парсер - простая стековая машина, не поддерживающая непроективные ребра.
Эксперимент пока неудачный, не могу добиться роста качества парсинга.
Питоновский исходник выложил здесь: https://github.com/Koziev/RI_Syntax

Рекуррентная и сверточная сетка для парсинга цепочки слов
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
На данный момент моя сеточная модель, выдающая dependency tree с нетипизированными ребрами, использующая word2vec встраивания слов с dim=1024, достигает неплохой точности ~97.4% (ошибаемость в районе 2,6%):
Read more...Collapse )

Анализ тональности отзывов
kelijah
Разобранный текст:Разобранный отзыв...Collapse )Сейчас система знает очень мало ключевых слов, это просто proof-of-concept, со срезанными углами везде, где можно. Но результаты не безнадежные:
Read more...Collapse )

Текущие выводы.

1. Из классического подхода с явно задаваемыми ключевыми словами для explicit/implicit aspects я выжал, наверное, все что можно.
2. Очень нужен хороший, надежный и быстрый алгоритм коррекции ошибок/опечаток в написании слов. Этих ошибок очень много, почти твиттер-стайл: "Персонал в ресторане дружельбный ."
3. Полный синтаксический анализ не нужен. Нет смысла строить единое дерево зависимостей, пытаясь устранить неоднозначности выбора ребер. Достаточно построить матрицу связанности. Это на пару порядков более простая задача.

Разбор отзывов
kelijah
До НГ тестировал парсер на самом тяжелом материале, который есть - на отзывах, которые люди оставляют в инете. В моем случае это отзывы на отдых в разных отелях.

Во-первых, теперь я на 100%, что синтаксис в варианте dependency tree является очень сильной идеализацией для повседневной речи. Ошибки, опечатки, потоки слов без разделитей постоянно сбивают парсер и сильно повышают процент ошибок:

Мы били с мужем в 2013 году в сентябре это ужас какой-то этот пансионат испортил нам весь отдых:
Таких как мы была целая очереди и в следующе дни тоже самое, те люди которые приезжали туда их отказывались заселять и врали им в лицо что их нет в списках...


Но это-то, конечно, не самое неприятное в рамках задачи определения тональности, для которой парсер и тестировался.
Вот как определять тональность в условиях сарказма и иронии:

Read more...Collapse )
А основной массив предложений с ненулевой тональностью вообще находится в категории "common sence", то есть понятно, почему это плохо, но объяснить это через лексический анализ (хоть bag of word, хоть как-то еще), по-моему, нереально:

Read more...Collapse )

Божественная английская рекурсия
kelijah
Разбираемое предложение: "I think you know what I mean."
Получаемое дерево зависимостей:
dependency tree...Collapse )

Английский part-of-speech tagger и парсер: текущая оценка
kelijah
Ошибаемость на частеречной разметке: 1.36% (против ~1.13% у русского варианта)

Синтаксический парсер DeSR, обученный на полученном tree bank, дал такие оценки ошибаемости:

Parent mismatch error level=5,650102%
Edge type error level=3,948264%

Это примерно на уровне русского варианта.