Библиотека склонения на украинском языке
    Купить
    
        Библиотека 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 | 
            
                Первый релиз.
             | 
        
    
    Купить