21

Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

  • Upload
    yandex

  • View
    565

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс
Page 2: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Морфологический анализатор Mystem 3.0

Алексей Зобнин

Page 3: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Программа Mystem

│  Mystem – свободно распространяемый морфологический анализатор для русского языка, созданный в Яндексе

http://api.yandex.ru/mystem/

Первая версия программы была написана Ильёй Сегаловичем и его коллегами ещё в 1997 году

Page 4: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Словоформа и парадигма

Словоформа: чай кофе потанцуем Лемма: [ча]й [кофе] [потанц]евать Парадигма: -й -и - -ую -уем

-я -ев -уешь -уете -ю -ям -уй -уйте -й -и -ует -уют -ем -ями -евал

-евали -е -ях -евала -евало

-евать

Page 5: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Добавим грамматические теги

ковер [ковер] S, неод, муж, ед, им [ковр]а S, неод, муж, ед, род [ковр]у S, неод, муж, ед, дат [ковер] S, неод, муж, ед, вин [ковр]ом S, неод, муж, ед, твор [ковр]е S, неод, муж, ед, пр [ковр]ы S, неод, муж, мн, им [ковр]ов S, неод, муж, мн, род [ковр]ам S, неод, муж, мн, дат [ковр]ы S, неод, муж, мн, вин [ковр]ами S, неод, муж, мн, твор [ковр]ах S, неод, муж, мн, пр

Page 6: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

А если слова нет в словаре?

я иду {идти} по ковру {ковёр} мы идем {идти} по коврём {коврать?} ты идешь {идти} по коврёшь {коврать?} вы идете {идти} по коврёте {коврать?} он идет {идти} по коврёт {коврать?} они идут {идти} по коврут {коврать?}

Page 7: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

А если слова нет в словаре?

«Глокая куздра штеко будланула бокра и курдячит бокрёнка» Л. В. Щерба

глокая {глокать? глокий?}

куздра {куздра?}

штеко {штекий? штеко?}

будланула {будланул? будланула? будлануть?}

бокра {бокр? бокра? бокрый?}

и {и}

кудрячит {кудрячит? кудрячита? кудрячитый? кудрячить?}

бокренка {бокренк? бокренка? бокренок?}

Page 8: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Построение гипотез по образцу бокренка:

кенгуренка буренка тигренка сестренка

→ бокренок → бокренка черенка керенка

→ бокренок шестеренка → бокренка

будланула: обманула гранула

→ будлануть → будланула манула → будланул

Page 9: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

https://ru.wikipedia.org/wiki/Манул

Page 10: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Программа Mystem: новая версия

│  Мы представляем версию Mystem 3.0

http://api.yandex.ru/mystem/

│  Её отличия:

›  ранжирование разборов и снятие омонимии

›  поддержка фикслистов

›  разные форматы ввода-вывода

Page 11: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Ранжирование разборов

есть: есть=V,несов,пе=инф есть=INTJ= быть=V,нп=(…)

│  Задача №1: ранжировать разборы без учета контекста

Page 12: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Ранжирование разборов

есть: есть=V,несов,пе=инф есть=INTJ= быть=V,нп=(…)

айпад: айпада?=S,муж,од=(вин,мн|род,мн) айпад?=ADV= айпад?=S,муж,неод=(вин,ед|им,ед) айпада?=S,жен,неод=род,мн

│  Задача №1: ранжировать разборы без учета контекста

Page 13: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Ранжирование разборов

есть: 2. есть=V,несов,пе=инф 3. есть=INTJ= 1. быть=V,нп=(…)

айпад: айпада?=S,муж,од=(вин,мн|род,мн) айпад?=ADV=

1. айпад?=S,муж,неод=(вин,ед|им,ед) айпада?=S,жен,неод=род,мн

│  Должно получиться примерно так:

Page 14: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Частоты для ранжирования

›  Берём из подкорпуса со снятой омонимией Национального корпуса русского языка

›  Учитываем частоты слов из веба

│  Однако корпус не полон, и запоминать частоты для каждой словоформы расточительно. Поэтому мы «факторизуем» частоты, настраивая их отдельно для:

›  окончаний каждой схемы ›  основ каждой схемы ›  самих морфологических схем

Page 15: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Более формально

Пусть зафиксирована парадигма (схема разбора) scheme, и в слове word выделены основа stem и окончание flex.

Считаем, что события «встретить основу слова» и «встретить окончание слова» в рамках этой схемы независимы.

𝑃(𝑠𝑐ℎ𝑒𝑚𝑒|𝑤𝑜𝑟𝑑)=

= 𝑃(𝑤𝑜𝑟𝑑|𝑠𝑐ℎ𝑒𝑚𝑒)𝑃(𝑠𝑐ℎ𝑒𝑚𝑒)/𝑃(𝑤𝑜𝑟𝑑) =

= 𝑃(𝑠𝑡𝑒𝑚|𝑠𝑐ℎ𝑒𝑚𝑒)𝑃(𝑓𝑙𝑒𝑥|𝑠𝑐ℎ𝑒𝑚𝑒)𝑃(𝑠𝑐ℎ𝑒𝑚𝑒)/𝑃(𝑤𝑜𝑟𝑑) .

Page 16: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Оценка качества

Мы тестировали программу на подкорпусе НКРЯ со снятой омонимией, выбирая самую вероятную лемму из предложенных

│  Стратегии:

›  Первая по алфавиту лемма: 89%

›  Лемма с самой частотной парадигмой: 90%

›  Самая вероятная лемма в новой модели: 95,5%!

Page 17: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Снятие омонимии

›  Опция -d включает переранжирование разборов с учётом контекста

›  Модель обучена с помощью технологии машинного обучения MatrixNet

›  В качестве факторов используются в том числе «нормализующие подстановки» из модели Ю. Зеленкова, И. Сегаловича и В. Титова (Диалог-2005)

›  Точность первого разбора (по тексту леммы) составляет 97,8%

Page 18: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Пример

./mystem -n ./mystem -n -d сорока жила на горе сорока жила на горе сорока {сорок|сорока} сорока {сорока} жила {жить|жила|жило} жила {жить} на {на} на {на} горе {горе|гора|гор} горе {гора}

Page 19: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Дополнительные опции

›  Опция --generate-all строит все гипотезы для неизвестных слов, а не только те, где совпадение с образцом максимально

›  Опция --filter-gram разрешает строить только разборы с указанными грамматическими тегами

mystem --filter-gram V

батарея {батареть?=V,несов,нп=непрош,деепр}

Page 20: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Использование

│  Программа распространяется в бинарном виде и в виде динамической библиотеки для C

Пример использования – Томита-парсер

Page 21: Морфологический анализатор Mystem 3.0. Алексей ЗобнинЯндекс

Спасибо! http://api.yandex.ru/mystem/

[email protected]