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" />
<PackageVersion Include="Nestor" Version="0.5.2" />
<PackageReference Include="Nestor" />
paket add Nestor --version 0.5.2
#r "nuget: Nestor, 0.5.2"
#:package Nestor@0.5.2
#addin nuget:?package=Nestor&version=0.5.2
#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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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
.NET Thesaurus for Russian language |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.5.2 | 2,412 | 4/19/2023 |
| 0.5.1 | 953 | 4/19/2023 |
| 0.5.0 | 1,029 | 4/19/2023 |
| 0.4.9 | 986 | 7/26/2022 |
| 0.4.6 | 691 | 7/26/2022 |
| 0.4.5 | 1,643 | 2/14/2022 |
| 0.4.4 | 1,354 | 1/20/2022 |
| 0.4.3 | 704 | 1/20/2022 |
| 0.4.2 | 1,306 | 1/16/2022 |
| 0.4.1 | 1,376 | 1/15/2022 |
| 0.4.0 | 1,880 | 1/15/2022 |
| 0.3.1 | 760 | 5/23/2021 |
| 0.3.0 | 722 | 5/23/2021 |
| 0.2.7 | 623 | 4/27/2021 |
| 0.2.6 | 597 | 2/21/2021 |
| 0.2.5 | 660 | 12/17/2020 |
| 0.2.4 | 642 | 12/1/2020 |
| 0.2.3 | 661 | 12/1/2020 |
| 0.2.2 | 646 | 12/1/2020 |
| 0.2.1 | 640 | 11/30/2020 |