morpher.ru +7 (925) 336 9960
nowhere@morpher.ru
 
 
Мой Морфер

Библиотека склонения на украинском языке

Купить

Библиотека 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.
  • Для работы библиотеки необходим Microsoft Visual C++ 2015 Redistributable.
  • Библиотека поддерживает 32 и 64 битную архитектуру.
  • Библиотека не имеет интерфейса пользователя и не требует прав доступа к диску или сети.
  • Все классы неизменяемы и потокобезопасны.

История изменений

Дата Версия  
18.05.2018 1.1.0 Добавлена возможность исправления склонения отдельных словосочетаний с помощью пользовательского словаря. Реализовано склонение названий месяцев и дней недели. В Nuget-пакет добавлен файл с XML-комментариями.
04.03.2018 1.0.1083 Первый релиз.
Купить

 

Библиотеки

Заметили опечатку? Выделите слово мышкой и нажмите Ctrl-Enter. Система Orphus

© Сергей Слепов, 2003 - 2018. Перепечатка материалов сайта только с разрешения автора.