?

Log in

No account? Create an account

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

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

Entries by tag: вероятностная модель

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

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

Синтаксический парсер и модуль частеречной разметки под 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 модель сжалась в пяток раз. Но время расчета модели выросло раза в два.

Подбор метапараметров CRF/LBFGS для POS Tagger's
kelijah
В этом цикле обновления парсера и POS Tagger'а я решил немного поиграться параметрами оптимизатора, попробовать выжать парочку сотых процента в точности.
Read more...Collapse )

Лемматизация в новой версии парсера
kelijah
На тестовых данных выглядит очень многообещающе и даже чудесно.
Исходное предложение:

Хазяин беспакоится за чистату басейна.

Результат частеречной разметки и лемматизации в новой версии парсера, которую я сейчас обучаю на новом корпусе:
Read more...Collapse )

Таким образом, движок смог скорректировать все опечатки в этом предложении!

Остается вопрос со слиянием и дроблением слов, то есть с ошибками типа "вобщем". Из общих соображений, задача должна решиться с помощью обычной language model, которая сможет присвоить вероятность цепочке слов при наличии множества oov. Из множества альтернатив я пока выбрал два варианта для экспериментальной реализации:

1. старая и очень добрая Kneser-Ney language model
2. многообещающий класс RNN language model типа тынц или тынц

Релиз версии 14.10 синтаксического парсера с ru/en базами и моделями
kelijah

Для скачивания и свободного использования подготовлены два варианта синтаксического парсера под 32-битную Windows:

Русская словарная база объемом 275,136 статей, 3,718,970 словоформ

Английская словарная база объемом 274,982 статьи, 473,971 словоформа

RU парсер 79.5 Мб

EN парсер 19.6 Мб

В состав архива русского парсера входит вероятностная модель русской морфологии (part-of-speech tagger), русского синтаксиса, обученная на текущем эталонном корпусе, и новая модель лемматизатора.

В состав английского парсера входят вероятностные модели английской морфологии и синтаксиса.

Оба парсера включают в себя все необходимое, не требуют установки и регистрации в системе каких-либо компонентов, и не оставляют следов в реестре и системных папках.

Пример запуска парсера с правильным набором параметром - файл run.cmd


Лемматизация с учетом морфологического контекста - тестовый забег нового лемматизатора в парсере
kelijah
(начало тут http://kelijah.livejournal.com/173429.html)
Вот простой пример того, как правильное определение морфологического контекста слова позволяет правильно выбрать лемматизирующее правило.
Исходное предложение: Гораздо интереснее обстоят дела с интерконнектом и программным обеспечением.

Слово интерконнектом не словарное. Как получить его нормальную форму? Если действовать просто по аналогии, то можно попасть в ловушку неоднозначных падежных окончаний. Например, есть слово коннектом, поэтому вне контекста можно ошибочно предположить, что интерконнектом является нормальной формой. Это неправильно, так как в этом контексте намного более вероятно, что перед нами форма существительного (а не краткая форма прилагательного типа "знаком") в творительном падеже, а у него обычно применяется другое правило получения нормальной формы. Как определить эти ключевые морфологические признаки? С помощью штатного алгоритма part-of-speech tagging, который использует вероятностную модель русской морфологии. Именно так работает новый лемматизатор в составе персера:

<token>
<word is_unknown='true'>интерконнектом</word>
<position>5</position>
<lemma>интерконнект</lemma>
<part_of_speech>СУЩЕСТВИТЕЛЬНОЕ</part_of_speech>
<tags>ЧИСЛО:ЕД|ПАДЕЖ:ТВОР|ПАДЕЖВАЛ:РОД|РОД:МУЖ</tags>
</token>
<token>

В выдаче парсера видно, какие морфологические признаки парсер выбрал для этого слова на основе контекста, и что выбранное правило лемматизации дает верную нормальную форму (лемму) интерконнект. Ура-ура.

А что получится из случая с Оливером?

Исходный текст изобилует несловарной лексикой и ставит парсер в трудное положение:

Случай с Оливером...Collapse )
Неполный список примеров правильной лемматизации:
Read more...Collapse )

Заметим, что лемматизация может иногда сталкиваться с пропажами гласных:

- <token>
<word is_unknown="true">подстоголками</word>
<position>1</position>
<lemma>подстоголок</lemma>
<part_of_speech>СУЩЕСТВИТЕЛЬНОЕ</part_of_speech>
<tags>ОДУШ:НЕОДУШ|ЧИСЛО:МН|ПАДЕЖ:ТВОР|РОД:ЖЕН</tags>
</token>

В рамках вероятностной модели не обойтись без досадных ошибок:

Read more...Collapse )

Новая модель лемматизации, заточенная под задачу Named Entry Recognition
kelijah
Новая модель лемматизации работает поверх морфологической модели, и поэтому лучше приспособлена к работе с несловарными элементами - всякими фамилиями, названиями и так далее.

Эта модель будет включена в следующую версию Парсера.

Простой (отладочный) пример. На входе - предложение "Я встретил В.И.Ленина".

На выходе парсера имеем такую частеречную разметку:
Read more...Collapse )

Обратим внимание на следующий элемент:
Read more...Collapse )

Первый бенчмарк английского Парсера
kelijah
Собрана морфологическая модель (part-of-speech tagger) и синтаксическая модель (восходящий парсер) для английского языка по относительно небольшому корпусу.
Эти модели подключены в Парсере, который ранее бегал с русской словарной базой. Теперь, значит, он умеет работать и с английскими текстами.
Итог тестового забега с морфологическим и синтаксическим разбором:

Done, sentence_count=10000, elapsed_time=207 sec, rate=484.353 words/sec

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

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

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

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

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