Библиотека склонения на украинском языке
Купить
Библиотека Morpher.Ukrainian.dll выполняет автоматическое склонение ФИО на украинcком языке.
На входе программы — форма именительного падежа (називний вiдмiнок), на выходе — формы всех падежей в единственном числе
(демо). Множественное число пока не строится.
Склонение по падежам и определение рода
using Morpher.Ukrainian;
void Main()
{
Console.OutputEncoding = Encoding.UTF8;
var declension = new Declension();
INounPhrase nounPhrase = declension.Parse("Крутько Катерина Володимирiвна");
Console.WriteLine(nounPhrase.Dative); // Крутько Катерині Володимирівні
Console.WriteLine(nounPhrase.GenderAndNumber); // Feminine
}
В данном случае строится форма единственного числа дательного падежа (nounPhrase.Dative).
Интерфейс INounPhrase содержит следующие свойства:
interface INounPhrase
{
string Nominative; // Називний
string Genetive; // Родовий
string Dative; // Давальний
string Accusative; // Знахiдний
string Instrumental; // Орудний
string Locative; // Мiсцевий
string Vocative; // Кличний
GenderAndNumber GenderAndNumber; // Род и число
}
Свойство GenderAndNumber возвращает автоматически распознанные род и число словосочетания:
enum GenderAndNumber
{
Masculine, // мужской род
Feminine, // женский род
Neuter, // средний род
Plural // множественное число
}
Передача рода и числа в функцию склонения
В некоторых случаях, когда род невозможно определить по имени, бывает полезно указать программе желаемый род.
Передача рода и числа необязательна, но может помочь программе просклонять словосочетание правильно.
Это делается так:
var declensionArgs = new DeclensionArgs()
{
GenderAndNumber = GenderAndNumber.Feminine
};
INounPhrase nounPhrase = declension.Parse("Черновалюк Женя", declensionArgs);
Console.WriteLine(nounPhrase.Dative); // Черновалюк Жені, если женский
// Черновалюку Жені, если мужской
Пользовательский словарь
По аналогии с пользовательским словарем для русского языка, украинский пользовательский словарь служит для коррекции склонения отдельных словосочетаний. Чтобы подключить словарь к библиотеке, нужно передать его в конструктор класса Declension:
var declension = new Declension(new StreamReader ("MyDict.xml"));
IUserDictionary
Имеется также конструктор, принимающий пользовательский словарь в виде интерфейса IUserDictionary:
public interface IUserDictionary
{
Entry Lookup (string nominativeSingular);
}
Формат словаря
Все
рекомендации по составлению русского словаря также применимы и для украинского, но структура немного отличается:
<?xml version="1.0" encoding="utf-8"?>
<dictionary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Ukrainian.xsd">
<entry gender="masculine">
<Н>помідор</Н>
<Р>помідора</Р>
<Д>помідору</Д>
<З>помідор</З>
<О>помідором</О>
<М>помідорі</М>
<К>помідоре</К>
</entry>
<entry>
<Н>капуста</Н>
<Д>капусті</Д>
<З>капусту</З>
</entry>
</dictionary>
Файл схемы Ukrainian.xsd
Пропись чисел
var numberSpeller = new NumberSpeller();
INumeralPhrase numeralPhrase = numberSpeller.spell(10, "рубль");
Console.WriteLine($"У розмiрi {numeralPhrase.Numeral.Genitive}
{numeralPhrase.Unit.Genitive}");
В результате выполнения получим “У розмiрi десяти рублів”.
Технические характеристики библиотеки
- Поддерживаемые платформы: .NET 4.0+, .NET Standard 2.0+.
- Архитектура процессора: AnyCPU.
- Библиотека не имеет интерфейса пользователя и не требует прав доступа к диску или сети.
- Все классы неизменяемы и потокобезопасны.
История изменений
Дата |
Версия |
|
04.02.2020 |
1.2.0 |
Поддержка .NET Standard 2.0.
|
20.09.2019 |
1.1.1 |
Переход на .NET. Избавление от зависимости от MSVC++ Redistributable. Уменьшение размера сборки.
|
18.05.2018 |
1.1.0 |
Добавлена возможность исправления склонения отдельных словосочетаний с помощью
пользовательского словаря.
Реализовано склонение названий месяцев и дней недели.
В Nuget-пакет добавлен файл с XML-комментариями.
|
04.03.2018 |
1.0.1083 |
Первый релиз.
|
Купить