MOrPh-rS
Мопс — морфологический анализатор для русского языка.
Главное
- Приведение к начальной форме слова.
- Грамматическая характеристика слова: получение грамматической информации о слове.
- Работа с OpenCorpora-совместимыми словарями.
- ✨Производительность✨: скорость разбора в десятки раз превышает PyMorphy2.
Примеры использования
Создание словаря
Инициализация морфологического анализатора требует словарь OpenCorpora, представленный на сайте, выходной каталог, где будут сохранены бинарные данные, и указание языка (на данный момент имеется только русский язык).
let dict = create.unwrap;
let morph = init.unwrap;
Парсинг
let morph = open.unwrap;
let stali = morph.parse.unwrap;
println!;
Нормализация
let morph = open.unwrap;
let stali = morph.normalize.unwrap;
println!;
Склонение слова в нужную форму.
let morph = open.unwrap;
let stali = morph.inflect_forms.unwrap;
println!;
let morph = open.unwrap;
let stali = morph.parse.unwrap.0; // индекс соответствует глаголу "стать"
let stali = morph.inflect_parsed.unwrap;
println!;
Склонение/спряжение слова во все формы.
Возможность привести слово ко всем формам, считая связи между леммами. Например, стать -> стал, стала, стали, ставший, ставшая, ставшие и т.д.
Функция затратная по производительности. Если есть необходимый набор слов, который нужно будет искать во всех формах в тексте, лучше сделать вызов функции в начале работы приложения.
let morph = open.unwrap;
let stali = morph.declension.unwrap;
println!;
let morph = open.unwrap;
let stali = morph.parse.unwrap.0; // индекс соответствует глаголу "стать"
let stali = morph.declension_parsed.unwrap;
println!;
Производительность
Результат нагрузочного тестирования может быть найден в benchmarks.md.
Там же находятся результаты сравнительного тестирования с PyMorphy2
.
План развития
- Предсказание грамматических характеристик несловарного слова по постфиксу.
- Работа со словами с дефисом.
- Склонение несловарных слов.
Лицензия
Данный код распространяется под лицензией Kribrum-NC, которая основана на Apache License Version 2.0
.
Благодарности
- Руководству Крибрум, которое позволило вывести эту работу в OpenSource.
- Разработчикам PyMorhpy2 за создание источника вдохновения при разработке Мопса.
- Создателям OpenCorpora за формирование словаря, который Мопс использует по умолчанию.
- Руководителю группы разработки Nikita Patsakula за консультации и активное ревью.