?

Log in

No account? Create an account

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

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

Entries by tag: pos tagger

Обновление парсера для Windows x86 и x64
kelijah

Русские модели морфологии и синтаксиса для парсера пересчитаны после обновлений в лексиконе и обучающем корпусе.

Русская словарная база (лексикон) тщательно вычищена, из нее убраны "плохие" словарные статьи, в основном для составных слов типа "робот-гитарист".

Сделана выверка части обучающего treebank, на котором тренируются вероятностные модели. В результате этого точность частеречной разметки на тестовом наборе достигла 99.1%, то есть ошибаемость упала ниже 1%.

Архивы с бинарниками парсера:

Win64 RU парсер 73 Мб

Win32 RU парсер 78 Мб

Декодер Витерби для нейросетки Part-Of-Speech tagger
kelijah
Пожалуй, это последний штрих к модели частеречной разметки Model1.

Странно, что я не сделал это раньше, так что пришлось в шесть утра освежать в памяти, что такое алгоритм Витерби и припаивать его поверх нейросетки (аналогично тому, как это делается в MEMM поверх maxent-классификатора).

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

Сеточные char-level модели морфологического анализа и лемматизации для MorphoRuEval 2017
kelijah

Далее будут кратко описаны три модели. Две модели для частичной разметки соответствуют последовательным экспериментам по выбору общей архитектуры. Условно они называются Model1 и Ensemble. Модель лемматизации общая, ансамбль для нее я не делал, хотя это безусловно возможно и даже желательно.


Исходные тексты можно найти на гитхабе: https://github.com/Koziev/MorphoRuEval2017

Read more...Collapse )
PS: Ансамбль будет описан отдельно.

Предварительная оценка part-of-speech tagger на базе LSTM/классификатора для MorphoRuEval2017
kelijah
Первая модель - одиночная char-level рекуррентная сетка, LSTM для упаковки контекста слова и softmax-классификатор на выходе.
Делаю оценку точности сверху, на будущей конкурсной тестовой выборе результат будет, конечно, существенно хуже.

part_of_speech_err_rate=0.00512569657917 tagset_err_rate=0.0258748260202

Ошибаемость при определении классифицируемых по условиях состязания частей речи - примерно 0.5%
Ошибаемость определения полного tagset'а, причем ошибка в любом теге считается за полную ошибку, - примерно 2,6%

Готовлю ансамбль к 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, никаких сторонних непереносимых библиотек.

Тюнинг UnigramTagger+AffixTagger+DefaultTagger до 97,5%
kelijah
В продолжение http://kelijah.livejournal.com/199946.html.

Если организовать цепочку backoff-тэггеров AffixTagger по окончаниям от 1 до 4 символов, плюс добавить DefaultTagger, и повесить всё это на UnigramTagger, то качество вырастает почти на полпроцента:

UnigramTagger+AffixTagger(4,3,2,1)+DefaultTagger accuracy=0.97537562778

Дефолтный тэггер настроен на выдачу СУЩЕСТВИТЕЛЬНОЕ, поскольку морфология прилагательных очень регулярна и отлично ловится AffixTagger'ами.

Обновленный код на питоне лежит там же.

NLTK Part-Of-Speech Tagger по русскому корпусу
kelijah
Ингредиенты:

1. Python
2. NLTK, точнее та часть, которая лежит в nltk.tag
3. Набор предложений с ручной морфологической разметкой слов собственного производства, примерно 2,2 миллиона слов.
Простой способ получить точность в 97%...Collapse )

Сеточная модель для определения части речи слова по его символьному представлению
kelijah
Еще одна сеточная модель для char-based language modeling.
Для произвольной цепочки символов пытаемся определить, к какой части речи это слово относится.
Read more...Collapse )

Обновление синтаксического парсера
kelijah

Большое обновление всех компонентов русского синтаксического парсера (http://solarix.ru/parser.shtml):

Read more...Collapse )Ссылка на архив с бинарниками (русская словарная база в комплекте, вероятностные модели и исполнимые файлы): http://solarix.ru/for_developers/download/win/parser-ru-win64.7z

Синтаксический парсер и модуль частеречной разметки под Windows 64
kelijah
Выложил на сайте последнюю сборку парсера и part-of-speech tagger'а с самой актуальной русской словарной базой: www.solarix.ru/for_developers/download/win/parser-ru-Win64.7z (80 Мб)

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

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

наикрасивейший-красивый
покрасивее-красиво/красивый