Библиотека склонения на казахском языке
Купить
Библиотека 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)); // минус үш
В данном примере функция возвращает количественное числительное прописью.
Параметры:
- number – число.
- useOne – писать ли «бір» перед словами «жүз», «мың», «миллион», «миллиард» и так далее:
миллион или
бір миллион.
Преобразование количественных числительных в порядковые
Console.WriteLine(speller.MakeOrdinal("жеті")); // жетінші
Console.WriteLine(speller.MakeOrdinal("елу мың отыз үш")); // елу мың отыз үшінші
Параметры:
- 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));
// бір мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз
Параметры:
- date – дата для прописи.
- useOne – писать ли «бір» перед словами «жүз» и «мың»:
мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз или
бір мың тоғыз жүз тоқсан бесінші жылғы үшінші тамыз.
Пропись дня и месяца
Console.WriteLine(speller.SpellDayOfMonth(10, 2)); // ақпанның оны
Параметры:
- day – число (1-31).
- 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 |
Реализовано склонение по лицам, а также:
-
Учет беглых гласных (әріп — әрпі и подобные).
-
Учет различных случаев выпадения согласных при склонении
(программист — программиске и др.)
-
Учет слов арабско-персидского происхождения на -ә,
принимающих твердые окончания в некоторых падежах:
күнә — күнәнің, күнәға (не -ге),
күнәні, күнәдан (не -ден), күнәда (не -де), күнәмен
и другие, подробнее см. abai.kz/post/80050.
Качество работы программы проверено по базе из более чем 5000 тестов,
составленных и выверенных тремя независимыми носителями языка.
|
11.07.2019 |
1.0.0 |
Первый релиз. Склонение по падежам и числам.
|
Купить