Nestor 0.5.2
dotnet add package Nestor --version 0.5.2
NuGet\Install-Package Nestor -Version 0.5.2
<PackageReference Include="Nestor" Version="0.5.2" />
paket add Nestor --version 0.5.2
#r "nuget: Nestor, 0.5.2"
// Install Nestor as a Cake Addin #addin nuget:?package=Nestor&version=0.5.2 // Install Nestor as a Cake Tool #tool nuget:?package=Nestor&version=0.5.2
Нестор — библиотека для работы со словоформами на русском языке. Аналог pymorphy2
, но для C#. Основана на словаре словоформ М.Хагена.
- Поиск леммы и грамматического описания слова по словоформе
- Постановка слова в заданную форму
- Токенизация и лемматизация строк
- Информация об ударениях
Инициализация библиотеки
Install-Package Nestor -Version 0.5.2
using Nestor;
var nMorph = new NestorMorph(); // загрузка библиотеки занимает некоторое время
Информация о словоформе
Word[] words = nMorph.WordInfo("стали");
В words
будет массив объектов Word
со всеми вариантами слова (слова считаются разными, если у них разные леммы — то есть нормальные формы). Например, для слова стали это два варианта: существительное сталь и глагол стать.
Структура объекта Word
string Stem; // неизменяемая часть слова
WordForm[] Forms; // список всех форм слова
WordForm Lemma; // нормальная форма слова
Tag Tag; // тег — грамматическое описание нормальной формы слова (см. ниже)
Структура объекта WordForm
string Word; // строковое представление текущей формы слова
int Stress; // номер слога, на который приходится ударение, начиная с 1
Tag Tag; // тег — грамматическое описание формы (см. ниже)
string[] Grammemes; // граммемы словоформы в сыром виде из словаря
Структура объекта Tag
Описание значений перечислений приведены ниже
Pos Pos; // часть речи
Gender Gender; // род
Number Number; // число
Case Case; // падеж
Tense Tense; // время
Person Person; // лицо
Значения перечислений
Pos — часть речи
Часть речи | Значение |
---|---|
Отсутствует* | Pos.None |
Имя существительное | Pos.Noun |
Имя прилагательное | Pos.Adjective |
Глагол | Pos.Verb |
Наречие | Pos.Adverb |
Имя числительное | Pos.Numeral |
Причастие | Pos.Participle |
Деепричастие | Pos.Transgressive |
Местоимение | Pos.Pronoun |
Предлог | Pos.Preposition |
Союз | Pos.Conjunction |
Частица | Pos.Particle |
Междометие | Pos.Interjection |
Предикатив | Pos.Predicative |
Вводное слово | Pos.Parenthesis |
* при нормальной работе слов без части речи не должно быть
Case — падеж
Падеж | Значение |
---|---|
Отсутствует | Case.None |
Именительный | Case.Nominative |
Родительный | Case.Genitive |
Дательный | Case.Dative |
Винительный | Case.Accusative |
Творительный | Case.Instrumental |
Предложный | Case.Prepositional |
Местный (на мосту) | Case.Locative |
Частичный/партитив (чаю) | Case.Partitive |
Звательный (старче) | Case.Vocative |
Gender — род
Род | Значение |
---|---|
Отсутствует | Gender.None |
Мужской | Gender.Masculine |
Женский | Gender.Feminine |
Средний | Gender.Neuter |
Общий (коллега) | Gender.Common |
Number — число
Число | Значение |
---|---|
Отсутствует | Number.None |
Единственное | Number.Singular |
Множественное | Number.Plural |
Tense — время
Время | Значение |
---|---|
Отсутствует | Tense.None |
Прошедшее | Tense.Past |
Настоящее | Tense.Present |
Будущее | Tense.Future |
Инфинитив | Tense.Infinitive |
Person — лицо
Лицо | Значение |
---|---|
Отсутствует | Person.None |
Первое | Person.First |
Второе | Person.Second |
Третье | Person.Third |
Постановка слова в нужную форму
const string w = "красивый";
var info = _nMorph.WordInfo(w)[0];
var f = info.ClosestForm(gender: Gender.Feminine, @case: Case.Accusative, number: Number.Singular);
Console.WriteLine(f.Word); // красивую
const string w = "красить";
var info = _nMorph.WordInfo(w)[0];
var f = info.ClosestForm(gender: Gender.Feminine, number: Number.Singular, tense: Tense.Past);
Console.WriteLine(f.Word); // красила
Документация дополняется
Лицензия
Данный проект использует для хранения словоформ ациклический граф с помощью библиотеки DawgSharp. По условиям лицензии данной библиотеки Нестор тоже попадает под GPL. Но если вы напишете свою релизацию Dawg, мою часть кода можете брать по MIT.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- DawgSharp (>= 1.3.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Nestor:
Package | Downloads |
---|---|
Nestor.Poetry
.NET poetic library for Russian language |
|
Nestor.Thesaurus
Russial NLP Thesaurus library |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.5.2 | 1,586 | 4/19/2023 |
0.5.1 | 806 | 4/19/2023 |
0.5.0 | 882 | 4/19/2023 |
0.4.9 | 853 | 7/26/2022 |
0.4.6 | 546 | 7/26/2022 |
0.4.5 | 1,448 | 2/14/2022 |
0.4.4 | 1,208 | 1/20/2022 |
0.4.3 | 550 | 1/20/2022 |
0.4.2 | 1,146 | 1/16/2022 |
0.4.1 | 1,210 | 1/15/2022 |
0.4.0 | 1,686 | 1/15/2022 |
0.3.1 | 574 | 5/23/2021 |
0.3.0 | 563 | 5/23/2021 |
0.2.7 | 466 | 4/27/2021 |
0.2.6 | 433 | 2/21/2021 |
0.2.5 | 480 | 12/17/2020 |
0.2.4 | 464 | 12/1/2020 |
0.2.3 | 466 | 12/1/2020 |
0.2.2 | 462 | 12/1/2020 |
0.2.1 | 458 | 11/30/2020 |
0.2.0 | 446 | 11/30/2020 |
0.1.3 | 474 | 11/9/2020 |
0.1.2 | 650 | 3/15/2020 |
0.1.1 | 527 | 3/15/2020 |
0.1.0 | 549 | 3/15/2020 |
0.0.9 | 719 | 10/22/2019 |
0.0.8 | 617 | 10/22/2019 |
0.0.7 | 600 | 10/22/2019 |
0.0.6 | 598 | 10/22/2019 |
0.0.5 | 593 | 10/22/2019 |
0.0.4 | 596 | 10/22/2019 |
0.0.3 | 634 | 10/22/2019 |
0.0.2 | 569 | 10/21/2019 |
0.0.1 | 499 | 10/21/2019 |