Использование стеммера для работы с русским текстом

Использование стеммера на платформе .NET

В ссылки проекта необходимо добавить сборку StemmerFX.dll. Других внешних зависимостей, в том числе файлов данных, стеммер не имеет.

Стемминг слова выполняется вызовом метода Stemmer.stem_str:

string stem_str = Solarix.Stemmer.stem_str("зеленого");
int stem_len = Solarix.Stemmer.stem("зеленого");

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

Исходный код стеммера на C# генерируется полностью автоматически по данным из лексикона. Это позволяет учитывать разнообразные особенности русского словоизменения на большом фактическом материале. Кроме того, собранный стеммер проверяется по всей словарной базе, давая в результате оценки количества ошибок, без которых обойтись невозможно из-за ограничений алгоритма.

Вышеупомянутые особенности русского склонения/спряжения/словообразования приводят к тому, что для некоторых неизменяемых слов стеммер все-таки отсекает 'окончание', а в других случаях отсекает слишком длинный аффикс, оставляя чрезмерно короткую основу. Эти ошибки проистекают из двух особенностей. Во-первых, стемминг выполняется без учета контекста, поэтому для обрабатываемого слова недоступна информация о части речи. Во-вторых, в русском языке невозможно безошибочно выявить аффиксы, не привлекая информацию из словаря. Наконец, частичная омонимия приводит к тому, что стеммер может применить неправильную эвристику, усекая к примеру, опал до опа, основываясь на парадигме глагола опасть.

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

Дополнительные материалы

Стеммер

Алгоритмы русской морфологии

Лемматизатор

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

Глубокая нормализация текста

Особенности словообразования в русском языке

  © Козиев Илья 2019
изменено 25-Aug-11