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

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

Купить

Библиотека Morpher.Kazakh.dll выполняет автоматическое склонение по падежам слов и словосочетаний на казахском языке, включая ФИО, звания, должности, профессии, названия предприятий и отделов, товаров и услуг, географические названия. На входе программы — форма именительного падежа (атау септік), на выходе — формы всех падежей в единственном и множественном числе (демо).

Склонение по падежам и числам

        
            using Morpher.Kazakh;
            [...]
            var declension = new Declension();
            ParseResult parse = declension.Parse("Қазақстан Республикасы");
            Console.WriteLine(parse.GetForm(false, Case.LOCATIVE)); // Қазақстан Республикасында
        
    

В данном случае строится форма местного падежа (Case.LOCATIVE) единственного числа. Число задается первым параметром: false = единственное, true = множественное.

Падеж задается следующим перечислением:

        
            public enum Case
            {
                NOMINATIVE,   // Атау септік,  именительный падеж
                GENITIVE,     // Ілік септік,  родительный падеж
                DATIVE,       // Барыс септік, дательно-направительный падеж
                ACCUSATIVE,   // Табыс септік, винительный падеж
                ABLATIVE,     // Шығыс септік, исходный падеж
                LOCATIVE,     // Жатыс септік, местный падеж
                INSTRUMENTAL  // Көмектес септік, творительный падеж
            }
        
    

Склонение по лицам

        
            var declension = new Declension();
            ParseResult parse = declension.Parse("бала");
            Console.WriteLine(parse.GetForm(false, Case.GENITIVE, Person.FIRST_PERSON)); // баламның
        
    

В данном примере добавляется притяжательные окончания первого лица (Person.FIRST_PERSON).

Лицо задается следующим перечислением:

        
            public enum Person
            {
                NO_PERSON,               // без личного окончания
                FIRST_PERSON,            // I-жақ (жекеше),   1 лицо (ед.число) 
                SECOND_PERSON,           // II-жақ (жекеше),  2 лицо (ед.число) 
                SECOND_PERSON_RESPECTFUL,// II-жақ сыпайы (жекеше), 2 лицо уважительное (ед.число) 
                THIRD_PERSON,            // III-жақ (жекеше), 3 лицо (ед.число) 
                FIRST_PERSON_PLURAL,     // I-жақ (көпше),    1 лицо (мн.число) 
                SECOND_PERSON_PLURAL,    // II-жақ (көпше),   2 лицо (мн.число) 
                SECOND_PERSON_RESPECTFUL_PLURAL, // II-жақ сыпайы (көпше), 2 лицо уважительное (мн.число) 
                THIRD_PERSON_PLURAL      // III-жақ (көпше),  3 лицо (мн.число) 
            }
        
    

Пропись количественных числительных

        
            var speller = new Speller(new Declension());
            Console.WriteLine(speller.Spell(5, false)); // бес
            Console.WriteLine(speller.Spell(125, false)); // жүз жиырма бес
            Console.WriteLine(speller.Spell(125, true)); // бір жүз жиырма бес
            Console.WriteLine(speller.Spell(-3, false)); // минус үш
        
    

В данном примере функция возвращает количественное числительное прописью.

Параметры:

  1. number – число.
  2. useOne – писать ли «бір» перед словами «жүз», «мың», «миллион», «миллиард» и так далее:
    миллион или
    бір миллион.

Преобразование количественных числительных в порядковые

        
            Console.WriteLine(speller.MakeOrdinal("жеті")); // жетінші
            Console.WriteLine(speller.MakeOrdinal("елу мың отыз үш")); // елу мың отыз үшінші
        
    

Параметры:

  1. cardinal – число прописью.

Функция может возвращать null, если cardinal не содержит гласных букв.

Пропись дат

        
            Console.WriteLine(speller.SpellDate(new DateTime(2018, 5, 1), false)); 
            // екі мың он сегізінші жылғы бірінші мамыр
            Console.WriteLine(speller.SpellDate(new DateTime(1995, 8, 3), false)); 
            // мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз
            Console.WriteLine(speller.SpellDate(new DateTime(1995, 8, 3), true)); 
            // бір мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз
        
    

Параметры:

  1. date – дата для прописи.
  2. useOne – писать ли «бір» перед словами «жүз» и «мың»:
    мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз или
    бір мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз.

Пропись дня и месяца

        
            Console.WriteLine(speller.SpellDayOfMonth(10, 2)); // ақпанның оны
        
    

Параметры:

  1. day – число (1-31).
  2. month – номер месяца (1-12).

Технические характеристики библиотеки

  • Поддерживаемые платформы: .NET Standard 2.0+ AnyCPU.
  • Библиотека не имеет интерфейса пользователя и не требует прав доступа ни к диску, ни к сети.
  • Все классы библиотеки неизменяемы и потокобезопасны.

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

Дата Версия  
26.02.2020 1.3.0 Добавлены функции прописи дат, дня месяца, количественных и порядковых числительных.
5.10.2019 1.2.0 Добавлено свойство IsPlural, показывающее число слова.
30.09.2019 1.1.1 Исправлено склонение слов на -ю (аю, ою).
05.09.2019 1.1.0 Реализовано склонение по лицам, а также:
  1. Учет беглых гласных (әріп — әрпі и подобные).
  2. Учет различных случаев выпадения согласных при склонении (программист — программиске и др.)
  3. Учет слов арабско-персидского происхождения на -ә, принимающих твердые окончания в некоторых падежах: күнә — күнәнің, күнәға (не -ге), күнәні, күнәдан (не -ден), күнәда (не -де), күнәмен и другие, подробнее см. abai.kz/post/80050.
Качество работы программы проверено по базе из более чем 5000 тестов, составленных и выверенных тремя независимыми носителями языка.
11.07.2019 1.0.0 Первый релиз. Склонение по падежам и числам.
Купить

 

Библиотеки

© Сергей Слепов, 2003 - 2021.