Crates.io | morph-rs |
lib.rs | morph-rs |
version | 0.2.0 |
source | src |
created_at | 2024-03-12 16:23:00.369718 |
updated_at | 2024-03-13 14:33:18.442761 |
description | Dictionary Morphologizer for Russian language |
homepage | |
repository | |
max_upload_size | |
id | 1170778 |
size | 1,040,906 |
Мопс — морфологический анализатор для русского языка.
Инициализация морфологического анализатора требует словарь OpenCorpora, представленный на сайте, выходной каталог, где будут сохранены бинарные данные, и указание языка (на данный момент имеется только русский язык).
let dict = MorphAnalyzer::create(dictionary, db, language).unwrap();
let morph = MorphAnalyzer::init(dict).unwrap();
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.parse("стали").unwrap();
println!("{stali}");
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.normalize("стали").unwrap();
println!("{stali}");
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.inflect_forms("стали", grams![Gender::Feminine]).unwrap();
println!("{stali:?}");
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.parse("стали").unwrap().0[5]; // индекс соответствует глаголу "стать"
let stali = morph.inflect_parsed(stali, grams![Gender::Feminine]).unwrap();
println!("{stali:?}");
Возможность привести слово ко всем формам, считая связи между леммами. Например, стать -> стал, стала, стали, ставший, ставшая, ставшие и т.д.
Функция затратная по производительности. Если есть необходимый набор слов, который нужно будет искать во всех формах в тексте, лучше сделать вызов функции в начале работы приложения.
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.declension("стали").unwrap();
println!("{stali:?}");
let morph = MorphAnalyzer::open(dict_path).unwrap();
let stali = morph.parse("стали").unwrap().0[5]; // индекс соответствует глаголу "стать"
let stali = morph.declension_parsed(stali).unwrap();
println!("{stali:?}");
Результат нагрузочного тестирования может быть найден в benchmarks.md.
Там же находятся результаты сравнительного тестирования с PyMorphy2
.
Данный код распространяется под лицензией Kribrum-NC, которая основана на Apache License Version 2.0
.