?

Log in

No account? Create an account

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

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

Entries by tag: частеречная разметка

PyParser - обертка синтаксического парсера для Питона (пре-альфа)
kelijah
Пока собрано и проверено только для Python 2.7 Windows 64 (Anaconda).

Исходники парсера, сильно отрефакторенные, с новой иерархией для введения абстрагирования от способа вывода результатов парсинга, лежат в репозитории. Сборка выполнена с помощью VisualStudio 2015, соответствующее решение Parser.sln лежит в этой папке. Обертка для вызова C++ кода из питоновского сделана с помощью boost::python.

В проекте пока нет установки пакета, поэтому проверить и  использовать можно только руками. В папке лежат готовые бинарники pyparser.pyd и libdesr.dll. Разумеется, также нужны файлы словарной базы (можно взять из дистрибутива парсера, выложенного тут).

Пример выполнения частеречной разметки на Питоне:
Read more...Collapse )

PS: добавлен скрипт setup.py для установки собранного модуля pyparser штатным механизмом питона. Для этого надо перейти внутрь каталога src копии репозитория (там лежит setup.py и прочие запчасти) и выполнить:

pip install .

Будет установлен пакет Solarix, в котором есть модуль pyparser.
Разумеется, делать это можно как глобально, так и для virtualenv-окружения.

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

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

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

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

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

Предварительная оценка 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%

Тюнинг 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 Мб)

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

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

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

Закончился расчет модели для русского Part-Of-Speech Tagger'а с L1 регуляризацией
kelijah
Четверо суток продолжался пересчет новой модели русской частеречной разметки с найденными в ходе random search'а оптимальными параметрами регуляризации L1=0.1 L2=0.5

Новая версия: ошибаемость=1.08%  размер=17,195,012 байта
Старая версия:  ошибаемость=1.11%  размер=76,889,132 байта

Таким образом, отбито 4 сотых процента в точности, и благодаря L1 модель сжалась в пяток раз. Но время расчета модели выросло раза в два.