?

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'е.

Начал выкладывать компоненты лемматизатора в репозиторий
kelijah
В репозитории грамматического словаря https://github.com/Koziev/GrammarEngine выложены все исходники и сборочные файлы для лемматизатор, см. каталог https://github.com/Koziev/GrammarEngine/tree/master/src/demo/ai/solarix/engines/lemmatizator.

Также выложен C# wrapper для вызова API лемматизатора из .NET код.

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

Рефакторинг нейросетевого лемматизатора
kelijah
В репозитории https://github.com/Koziev/word2lemma выполнена генеральная перепланировка и уборка.

Read more...Collapse )

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

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


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

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

Анализ текущих результатов лемматизации для MorphoRuEval2017
kelijah
Read more...Collapse )

Утилитка для слияния размеченных корпусов в MorphoRuEval 2017
kelijah
Организаторы конкурса добавили еще 2 корпуса в обучающий набор (см. в репозитории конкурса).
Если объединить все 3 корпуса, получается неплохой датасет для всякого машобуча по русским NLP.
Это хорошая новость.
Плохая новость в том, что форматы корпусов разные, различается состав колонок.
Вторая плохая новость - некоторая неконсистентность данные. В частности, лемматизация некоторых слов сделана систематически по-разному. Например, слово 'неё' в одном корпусе лемматизируется в 'он', в других в 'она'.

Это может мешать некоторым архитектурам машинного обучения по таким данным.

Поэтому я написал на питоне небольшой конвертер, который на входе берет 3 файла с корпусами конкурса, преобразует их к одному формату, нормализует лемматизацию местоимений и некоторых наречий, и сохраняет 3 файла:

united_corpora.dat - объединенный корпус
united_corpora_train.dat - 90% объединенного корпуса (разбивка по предложениям) для тренировки
united_corpora_test.dat - 10% объединенного корпуса для верификации

Моя модель лемматизации, написанная на питоне и использующая сеточную модель на Keras, достигла сегодня на united_corpora_test.dat ошибаемости в 1.95% без учета регистра букв.

Лемматизатор для MorphoRuEval2017: прикидочная оценка точности
kelijah
Нижняя оценка ошибаемости, когда обучаемся по обучающей выборке GIKRYA_texts.txt, и оцениваем модель по этому же корпусу ~3.1%.

Если обучать модель по GIKRYA_texts.txt, а тестировать на моем корпусе morpheval_corpus_solarix.dat, то получается верхняя оценка ошибаемости в ~5.7%

Во всех случаях регистр учитывался при сравнении лемм, а буквы е и ё считались равными.

PS: Исходники моделей буду выкладывать тут.

PPS: После корректировки кода и подкручивания гиперпараметров имеем:
1. Модель натренирована на GIKRYA_texts.txt, делает лемматизацию GIKRYA_texts.txt с ошибаемостью ~1.7%
2. Модель натренирована на GIKRYA_texts.txt, делает лемматизацию morpheval_corpus_solarix.dat с ошибаемостью ~3.5%

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

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

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

Read more...Collapse )


ТИЗЕР: сеточная лемматизация на питоне на предобученной модели
kelijah

Работа char-rnn модели лемматизатора в консольной программке для введенных слов “кошшки”, “барбудаемся”, “покрасавистее” и “красавистый”:

Read more...Collapse )

Простейшая программка позволяет ввести слово с консоли, векторизовать его, прогнать через модель и декодировать результат в символьное представление. Скриншот с примером работы этого скрипта приведен выше. Питоновский код, использующий Keras, можно взять по ссылке:http://www.solarix.ru/for_developers/download/polygon/word2lemma/lemmatize.py


Файлы модели, которые нужны для запуска скрипта:

http://www.solarix.ru/for_developers/download/polygon/word2lemma/char_rnn.arch

http://www.solarix.ru/for_developers/download/polygon/word2lemma/char_rnn.ALL.model

http://www.solarix.ru/for_developers/download/polygon/word2lemma/ctable.dat

http://www.solarix.ru/for_developers/download/polygon/word2lemma/dataset.config

Подробное описание архитектуры и реализации модели будет дано в следующих главах.