xinatanil / kyrgyz_tili

Kyrgyz language word forms generator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тесты Build Status

Кыргыз тили

Генератор словоформ кыргызского языка

Здесь собраны множество правил и алгоритмов генерации слов кыргызского языка и реализованы на языке Python 3. С помощью данного проекта было сгенерировано около 1 000 000 словоформ из 12 000 корневых слов. Эти слова используются для проверки правописания кыргызского языка на сайте http://orfo.kg.

В будущем планируется создать FST(Finite-State Transducer) используя эти правила и сгенерированные слова. С помощью FST можно будет генерировать, проверять правописание и определять его свойства.

Введение

Мүчө(mucho) - суффикс

Все суффиксы кыргызского языка добавляются в конец слова и меняются в зависимости от последнего слога слова. Например суффикс -лар, который используется для построения множественного числа, может иметь следующие формы:

  • -дар, -дор, -дөр, -дер

  • -лар, -лор, -лөр, -лер

  • -тар, -тор, -төр, -тер

  • китеп + тер (книги)

  • алма + лар (яблоки)

Зависимость формы суффиксов от слова приблизительно одинаковая у всех суффиксов:

  • От типа согласной буквы в конце слова
  • От типа гласной буквы в последнем слоге

Перед началом склонения слова, определяются его свойства. В частности: тип согласной буквы в конце слова и тип гласной буквы в последнем слоге.

После изучения множества суффиксов, в каждом измерении я выделил по 4 возможных значения и получил такую матрицу с примерами подходящих слов:

согл\гл аы оу еи өү
- тараза, казы бозо, козу теке, тиги бөлө, бөрү
лмн тан, кыл жол, сум жем, ким көл, түн
рй ыр, ай тор, уй кий, тер көйгөй, бүчүр
пктш.. таш, кыш тоок, куш бет, кит төш, сүт

Используя матрицу с примерами слов можно составить матрицу форм для каждого суффикса. Например для суффикса -лар будет следующая матрица:

согл\гл аы оу еи өү
- -лар -лор -лер -лөр
лмн -дар -дор -дер -дөр
рй -лар -лор -лер -лөр
пктш.. -тар -тор -тер -төр

Теперь, после определения свойства любого слова, можно выбрать для него соответсвующую форму суффикса из таблицы.

Например: китеп - согласная буква в конце: п (твердая, 4 строка), гласная буква в последнем слоге: e (3 столбец). По адресу 4 строка, 3 столбец находится форма -тер. Получится китеп+тер.

Таким образом, для всех суффиксов предоставлены их таблицы форм.

Использование

Примеры использования внутренних классов можно посмотреть в тестах.

Добавлена SQLite БД с 12665 словами, у которых указана часть речи. Используя эти данные можно сгенерировать правильные словоформы.

Подготовка окружения

Для запуска подойдет любая версия Python выше 3.1. Чтобы проверить версию вашего Python, запустите следующую команду:

python --version

Также необходимо установить необходимые Python пакеты командой:

pip install -r requirements.txt

Запуск

Команда для генерации всех возможных словоформ слова:

python generator.py [слово]

Например, команда:

python generator.py  адам

выведет такой список:

адам
адамдардын
адамдарга
адамдарды
адамдарда
адамдардан
адамдын
адамга
адамды
... еще 110 форм

Если не указывать параметры, сгенерируется список всех возможных форм всех слов из БД:

python generator.py 

About

Kyrgyz language word forms generator

License:GNU General Public License v3.0


Languages

Language:Python 100.0%