rumorph 0.2.0

Fast Russian morphological analyzer: lemmas, Universal Dependencies features and inflection
Documentation

rumorph

Быстрый морфологический анализатор русского языка на Rust - ядро библиотеки ruMorph для Python.

  • Разборы словоформы по словарю OpenCorpora: лемма, часть речи и признаки Universal Dependencies в соглашениях трибанка SynTagRus, вероятность разбора.
  • Незнакомые слова: числа, знаки, латиница, сокращения, слова через дефис и с приставками, угадывание по окончанию.
  • Формы лексемы, форма с заданными признаками и согласование с количеством.
  • Словарь отображается в память или читается из данных программы без копий: загрузка около 3 мс, разбор словоформы - около 0,6 мкс.

Установка

[dependencies]
rumorph = "0.2"

Словарь OpenCorpora входит в крейт rumorph-dict-ru и подключается feature bundled (по умолчанию). Без нее словарь читается из файла: Dictionary::open.

Пример

use rumorph::Dictionary;

fn main() -> Result<(), rumorph::Error> {
    let dictionary = Dictionary::bundled()?;
    let analysis = &dictionary.analyze("стали")[0];
    let tag = dictionary.ud_tag(analysis.ud).unwrap();
    assert_eq!((analysis.lemma.as_str(), tag.pos()), ("стать", "VERB"));
    assert_eq!(tag.feat("Tense"), Some("Past"));

    let cat = &dictionary.analyze("кошка")[0];
    assert_eq!(dictionary.inflect(cat, &[("Case", "Gen")]).unwrap().word, "кошки");
    let ruble = &dictionary.analyze("рубль")[0];
    assert_eq!(dictionary.agree(ruble, 5).unwrap().word, "рублей");
    Ok(())
}

Словарь загружается и проверяется при каждом вызове Dictionary::bundled и Dictionary::open: создайте его один раз и разбирайте им весь текст, в том числе из нескольких потоков.

Команда rumorph

cargo install rumorph --features cli
echo "Мы стали друзьями в ковиде." | rumorph -f conllu

Команда пишет леммы, части речи и признаки UD в форматах lemmas, conllu, tsv и jsonl; параметры - в документации.

Features

  • bundled (по умолчанию) - словарь из крейта rumorph-dict-ru: Dictionary::bundled.
  • build - сборка своих словарей: Builder.
  • cli - команда rumorph.

Лицензия

Код распространяется под лицензией MIT. Словарь в крейте rumorph-dict-ru собран из словаря OpenCorpora и распространяется по лицензии CC BY-SA 3.0.