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 4.0.
  • Архитектура процессора: x86.
  • Для работы библиотеки необходим распространяемый компонент Microsoft Visual C++ для Visual Studio 2015, 2017 и 2019. В Windows 10 этот компонент уже установлен.
  • Библиотека не имеет интерфейса пользователя и не требует прав доступа ни к диску, ни к сети.
  • Все классы библиотеки неизменяемы и потокобезопасны.

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

Дата Версия  
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 - 2020.