Вы находитесь на странице: 1из 21

Нормализация слов русского

языка
Докладчик:
Оксана Астапова
Научный руководитель:
Денис Турдаков
План
 Что такое нормализация?
 Проблемная область
 Специфика русского языка
 Существующие решения
Что это такое
 Нормализация – приведение слова к начальной
форме
 Лемматизация = нормализация
 Лемма = начальная форма
 Например:
Кошками -> кошка
Поаберрационнее -> аберрационный
Бежал -> бежать
Кому это нужно
 Информационный поиск
 Машинный перевод
 Кластеризация текстов
 Другие задачи обработки текстов на
естественных языках
Специфика русского языка
Естественные языки

Изолирующие Синтетические
(корень) Вьетнамский (аффикс)

Флективные Агглютинативные
(1 аффикс много значений) (1 аффикс одно значение)
Русский Финский
Специфика русского языка
 Aбонироваться# абони'роваться, абони'руюсь, абони'руемся,
абони'руешься,абони'руетесь, абони'руется, абони'руются, абони'руясь,
абони'ровался, абони'ровалась, абони'ровалось, абони'ровались, абони'руйся,
абони'руйтесь, абони'рующийся, абони'рующаяся, абони'рующееся,
абони'рующиеся, абони'рующегося, абони'рующейся, абони'рующегося,
абони'рующихся, абони'рующемуся, абони'рующейся, абони'рующемуся,
абони'рующимся, абони'рующийся, абони'рующуюся, абони'рующееся,
абони'рующиеся, абони'рующегося, абони'рующуюся и еще 40 словоформ

 Subscribe# subscribing, subscribed, subscribes


Если все словоформы известны
Для определения нормальной формы
используются
 готовые словари (разбор конечным автоматом);
 вручную прописанные правила.
 PPMV (pair of potential morphological variants) –
[кошками|кошка]

Верблюдами -> [верблюдами | верблюд] ->


-> верблюд
Почему важно обрабатывать слова,
которых нет в словаре
Heaps Law:
VR = Knβ
VR - количество новых слов в тексте объема n, K и β –
эмпирически определяемые параметры. Для
английского корпуса 0.4 < β < 0.6
Для Internet β -> 1.0 (заимствованные слова, опечатки,
окказионализмы)

Бесконечные время и место для обновления


словарей
Например, Google
Например, Яндекс
Общая идея
 Нормализация = стемминг + синтез
нормальной формы
 Стемминг – определение стеммы.
 Стемма – неизменяемая часть слова. кошка,
кошки, кошек - > кош
 PPMV (pair of potential morphological variants) –
[кошками|кошка]
Существующие реализации (для
русского языка)
 Стеммер Портера
 Mystem
 Stemka
Существующие решения:
Snowball (стеммер Портера)
http://tartarus.org/~martin/PorterStemmer/
Слово – формообраз. суффикс + правила
- «и»
- словообраз. суффикс + правила
- «ейш», «ь», «нн -> н»
= Стемма
* Наборы суффиксов и правил задаются вручную.

Старейший -> старейш -> стар

Проблема: кошек -> кошек, но кошка -> кошк; кровать -> крова
(обрезается глагольный суффикс «ть», т.е. предполагается
лемма «кроватить»)
Существующие решения:
Stemka (А. Коваленко)
http://www.keva.ru/stemka/stemka.html
1) корпус -> последние две буквы основы + суффикс
[вес]
2) удаляются модели с весом < 1/10000
3) строится таблица переходов конечного автомата
4) Входное слово сканируется по таблицам

Проблема: возвращает несколько возможных стемм,


низкая полнота
Но: самый быстрый из рассматриваемых
Существующие решения:
Mystem (И.Сегалович, Яндекс)
http://company.yandex.ru/technologies/mystem/
1) Словарь - > префиксное дерево инвертированных стемм +
дерево суффиксов
2) Слово = возможная стемма + суффикс
3) Стемма есть в дереве? Да -> словарное слово -> лемма из
словаря
Нет -> поиск всех стемм с таким же «хвостом» , пункт 2) с
более длинным суффиксом
4) Набор «близких» стемм -> синтез лемм по моделям из
набора

Проблема: медленнее остальных рассматриваемых алгоритмов,


возвращает набор предполагаемых лемм
Существующие решения:
Mystem (И.Сегалович, Яндекс)
 Для выбора единственной модели из
построенных – корреляция веб-запросов внутри
PPMV:
 [stockings| stock] vs [stockings | stocking] –
сравниваем первые N результатов поиска для
stockings, stocking и stock
Сравнение
Стеммер Всего Частых Алгоритм Тысяч слов в
PPMVs PPMVs секунду

Размечено в 484462 70028 Snowball 180-190


корпусе
Stemka 628154 82895
(агрессив.) Mystem 60-65

Stemka 108248 18014


(консерв.) Stemka 380-390

Mystem 718216 93863

Snowball 519262 72568


Существующие решения: наша
реализация нормализатора
 За основу стеммера был взят Mystem

Схема работы:
1. Построение модели : слово и все его
грамматические формы (словарь Зализняка) -> id
+ нормальная форма + часть речи + стемма +
набор возможных суффиксов
9783#встреча:1=встреч+а+и+и++е+ам+у+и+ей+ею+ами+е+ах
2. Внутреннее представление: дерево стемм,
дерево суффиксов
3. Получение гипотезы о нормальной форме
Существующие решения: наша
реализация нормализатора
4. Синтез нормальной формы для несловарных слов
5. Выбор единственной нормальной формы
(приоритет частей речи, лексикографический
порядок)
тилимилитрямдиями [тилимилитрямдия]
работу [работа] нашего [наш] нормализатора
[нормализатор] можно [можно] рассмотреть
[рассмотреть] на [на] этом [этот] примере [пример]
Проблема: выбор леммы для словарных слов при
совпадении частей стемм
Стемма(Замок) = зам Стемма(замокнуть)=замок

Замок -> замокнуть


Выводы
 Нормализация – приведение слов к начальной
форме.
 Нормализация необходима при обработке
естественных языков.
 Общая тенденция – разделять процесс
нормализации на стемминг и синтез леммы.
 На данный момент не существует алгоритма,
позволяющего однозначно и при том правильно
синтезировать лемму
Спасибо за внимание!

Вопросы?