УДК 004.912 + 811.512.122*322
В. Б. Барахнин, Л. Х. Лукпанова, А. А. Соловьев
Институт вычислительных технологий СО РАН пр. Акад. Лаврентьева, 6, Новосибирск, 630090, Россия
Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия
Казахский национальный технический университет имени К. И. Сатпаева ул. Сатпаева, 22, Алма-Ата, 050040, Республика Казахстан
E-mail: [email protected], [email protected], [email protected]
АЛГОРИТМ ПОСТРОЕНИЯ СЛОВОФОРМ С ИСПОЛЬЗОВАНИЕМ ФЛЕКТИВНЫХ КЛАССОВ ДЛЯ СИСТЕМ МОРФОЛОГИЧЕСКОГО АНАЛИЗА КАЗАХСКОГО ЯЗЫКА *
Рассматриваются принципы разбиения существительных казахского языка на флективные классы и построение основанного на этом разбиении алгоритма синтеза словоформ. Ключевые слова: морфология казахского языка, флективные классы.
Введение
При создании информационных систем, предназначенных для работы с документами научно-технической тематики, огромное значение имеет предоставление пользователю удобных поисковых интерфейсов. Как было показано, например, в монографии [1], квалифицированному пользователю обычно недостаточно возможностей контекстного поиска и стандартных систем классификации документов, ему необходим, прежде всего, поиск «по аналогии». Для полноценной реализации такого поиска информационная система должна включать тезаурус, а зачастую и онтологию предметной области. В свою очередь, при работе с тезаурусами и онтологиями неизбежно встает задача морфологического разбора текстов на естественном языке, что порождает необходимость генерации всех словоформ изменяемых слов данного языка. Попутно отметим, что эти словоформы используются и в других информационных системах и приложениях, например, в системах автоматического перевода, в словарях программных приложений, проверяющих правописание, а также в некоторых алгоритмах координатного индексирования текстов (см., в частности, [2]).
Разумеется, объем словаря любого естественного языка подразумевает требование автоматизации процесса генерации словоформ. Более того, поскольку словарь естественного языка постоянно пополняется новыми словами (прежде всего - научными терминами), постольку задачу генерации словоформ нельзя решить «раз и навсегда», вследствие чего необ-
* Работа выполнена при частичной поддержке РФФИ (проекты № 12-07-00472, 13-07-00258), Президентской программы «Ведущие научные школы РФ» (грант НШ 5006.2014.9) и интеграционных проектов СО РАН.
Барахнин В. Б., Лукпанова Л. Х., Соловьев А. А. Алгоритм построения словоформ с использованием флективных классов для систем морфологического анализа казахского языка // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2014. Т. 12, вып. 2. С. 25-32.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2014. Том 12, выпуск 2 © В. Б. Барахнин, Л. X. Лукпанова, А. А. Соловьев, 2014
ходим простой и понятный алгоритм синтеза словоформ, который допускает возможность достаточно простой программной реализации.
Для русского языка алгоритмы морфологического анализа и синтеза слов, основанные на разбиении всех слов на морфологические классы, каждый из которых характеризуется определенным типом изменения буквенного состава форм слов, входящих в этот класс, подробно изложены в монографии [3]. Морфологические классы русского языка делятся на два вида: основоизменительные и флективные, при этом для каждой изменяемой части речи существует, вообще говоря, свое разбиение на морфологические классы. Флективные классы строятся на основе анализа синтаксической функции слов и систем их падежных, родовых и личных окончаний. Поскольку в русском языке не существует зависимости типа изменения окончаний от буквенного состава основы слова (так, к разным флективным классам относятся схожие по буквенному составу слова боль и соболь; волос, голос и колос и т. п.), постольку флективные классы определяются их типичными представителями, при этом число классов весьма велико: например, для существительных в [3] выделено 66 флективных классов. Ввиду этого процесс отнесения слова к тому или иному флективному классу может быть автоматизирован лишь частично: эксперт должен вручную выбрать флективный класс (чтобы сузить число объектов-альтернатив до приемлемого для возможности эффективного ручного выбора, эксперту следует предварительно определить грамматические характеристики слова).
За время, прошедшее с момента публикации монографии [3], изложенные в ней алгоритмы убедительно продемонстрировали свою эффективность, в том числе и при их реализации на базе современных информационных технологий (см., например, работы [1; 2], в которых представлена модификация алгоритма синтеза словоформ, применяющаяся при пополнении базового лексического словаря программной библиотеки, используемой в системах информационного обеспечения научной деятельности).
Отметим, что альтернативные алгоритмы решения рассматриваемой задачи демонстрируют намного большую сложность при меньшей точности. Так, в работе [4] классы словоформ определялись без учета теоретических изысканий из монографии [3]: путем непосредственного анализа типов окончаний (не в морфологическом, а в «обычном» смысле) слов, что привело к появлению более 10 тысяч классов для существительных (к одному классу в [4] были отнесены слова, у начальных форм которых совпадают 3 последние буквы). Такое количество классов делает алгоритм трудновоспроизводимым. Однако даже столь детальное разбиение неспособно дать абсолютно точное различение слов по типу склонения, как показывает приведенный выше пример), к тому же «эмпирический» характер разбиения может вызвать определенные вопросы относительно полноты описания классов.
В настоящее время возникает необходимость решения подобной задачи для государственных языков некоторых государств СНГ, в которых начинают активно развиваться интернет-технологии, в частности для казахского (отметим, что на сегодняшний день ни Google, ни Yandex не предоставляют возможность автоматического перевода с казахского языка или на казахский язык). Об актуальности создания алгоритмов обработки семантической информации на казахском языке свидетельствует большое количество публикаций на эту тему (см., например, [5-7]).
В [5] описан разработанный в Евразийском национальном университете им. Л. Н. Гумилева интеллектуальный морфологический анализатор казахского языка на основе формализации морфологических правил с помощью семантических сетей, в [6] тем же авторским коллективом представлена аппаратная реализация синтеза словоформ казахского языка с помощью ассоциативного запоминающего устройства, наконец, в [7] сотрудниками Казахского национального технического университета им. К. И. Сатпаева для морфологического анализа и генерации словоформ казахского языка использован подход на основе конечных автоматов.
Перечисленные работы отличает, с одной стороны, детальное изложение особенностей реализации алгоритмов (вплоть до заполнения конкретных регистров ассоциативного запоминающего устройства в [6] и фрагментов программного кода в [7]), а с другой стороны, почти полное отсутствие описания лежащей в основе алгоритмов теоретической базы, относящейся к области компьютерной лингвистики. В итоге алгоритмы, описываемые в перечис-
ленных работах, трудновоспроизводимы, поскольку за деталями их реализации практически не видна их суть, хотя выполнение требования воспроизводимости алгоритмов генерации словоформ весьма важно, поскольку создатели информационных систем (прежде всего, научной тематики) постоянно вынуждены пополнять лексические словари этих систем словоформами новых терминов. Необходимость требования воспроизводимости алгоритмов могла бы быть снята наличием общедоступного веб-приложения для генерации словоформ произвольных слов, но такие приложения ни для казахского, ни для русского языка нам неизвестны (мы не случайно сделали оговорку относительно произвольности слов, так как, например, веб-приложение для морфологического анализа слов русского языка 1, созданное на основе Грамматического словаря А. А. Зализняка, выдает словоформы лишь тех слов, которые содержатся в словаре программы).
В настоящей статье рассматриваются принципы разбиения существительных казахского языка на флективные классы и построение основанного на этом разбиении алгоритма синтеза словоформ (мы ограничили подробный анализ лишь существительными, поскольку, как показано в [3], в качестве «новых» слов при пополнении лексического словаря практически всегда выступают существительные или прилагательные, однако в казахском языке прилагательные, выступающие в роли определений, не приобретают окончаний, а изменение прилагательных, выступающих в роли существительных, не отличается от изменения существительных).
Разбиение существительных казахского языка на флективные классы
Казахский язык относится к классу агглютинативных языков [8], т. е. словоформы в нем образуются путем добавления к корню аффиксов (суффиксов и окончаний). Например, для имен существительных к корню сначала добавляется суффикс, а далее: окончание множественного числа, притяжательное окончание, падежное окончание и, наконец, личное окончание предикативности. Принципиальным отличием морфологии казахского языка от морфологии русского является наличие в казахском языке (как и в других тюркских языках) закона сингармонизма, в соответствии с которым аффиксы слова полностью определяются звуковым составом его основы.
На основании анализа [8] и грамматики казахского языка 2 можно выделить следующие основные правила казахского языка.
• После твердого слога следует твердое окончание, после мягкого слога следует мягкое окончание.
• Порядок следования окончаний таков: первым окончанием идет окончание множественного число, вторым - притяжательное окончание и только третьим - окончание какого-либо падежа, т. е. слово + число + притяжательность + падеж. Например: адамдарымызга (нашим людям): адам + дар + ымыз + га / множественное число + 1 лицо, мн. число + да-тельно-направительный падеж. (Идущее последним личное окончание предикативности в данной работе не рассматривается, поскольку для научной лексики указанная словоформа нехарактерна.)
Мягкость и твердость слов в казахском языке определяется наличием определенной гласной в последнем слоге слова. Например, слово твердое, когда присутствуют гласные а, о, ы, я, а мягкое, когда присутствуют гласные э, е, Y, ^ е. Твердость или мягкость слов коррелирует также с наличием некоторых согласных: слово твердое, если в нем присутствуют согласные ^ и г, и мягкое, если присутствуют к и г.
Каждое следующее окончание зависит от предыдущего по нескольким параметрам.
• По твердости: если последний слог слова твердый, то каждое следующее окончание будет твердым, так как твердость очередного окончания зависит от предыдущего. Таким образом, если слово твердое, то все окончания твердые, если мягкое, то мягкие.
• По последней букве окончания: каждое последующее окончание зависит от последней буквы предыдущего окончания.
1 Морфологический анализатор. URL: http://starling.rinet.ru/cgi-bin/morphque.cgi?encoding=wm
2 Грамматика казахского языка. URL: http://kaz-tili.kz/
Исследуя структурированные правила присоединения окончаний, приведенные в Грамматике казахского языка, мы установили для существительных казахского языка 14 флективных классов:
1) твердое, оканчивается на гласную (кроме у);
2) твердое, оканчивается на б, в, г, д;
3) твердое, оканчивается на ж, з;
4) твердое, оканчивается на л;
5) твердое, оканчивается на м, н, ц;
6) твердое, оканчивается на р, у, й;
7) твердое, оканчивается на глухую согласную;
8) мягкое, оканчивается на гласную (кроме у);
9) мягкое, оканчивается на б, в, г, д;
10) мягкое, оканчивается на ж, з;
11) мягкое, оканчивается на л;
12) мягкое, оканчивается на м, н, ц;
13) мягкое, оканчивается на р, у, й;
14) мягкое, оканчивается на глухую согласную.
Перечисленное разбиение слов на флективные классы полностью и без пересечений покрывает все возможные варианты слов казахского языка, что означает полное корректное решение поставленной задачи (можно отметить, что некоторые подварианты не реализуются: например, как сказано выше, твердые слова не могут оканчиваться на букву г, однако мы указали и это сочетание, чтобы не нарушалась формальная полнота покрытия).
В таблице приведены окончания флективных классов для падежей и множественного числа.
Флективные классы с набором окончаний
№ флективного Падеж
класса Исходный Местн. Дат.-направит. Род. Вин. Тв. Множ. число
1 / 8 дан / ден га / ге ньщ / нщ ны / ш мен лар / лер
2 / 9 тан / тен та / те ка / ке тын/тщ ты / п пен тар / тер
3 /10 да / де га / ге дьщ / дщ ды / д бен дар / дер
4 /11 га / ге дын/ дщ ды / д мен дар / дер
5 /12 нан / нен да / де га / ге нын/ нщ ды / д мен дар / дер
6 /13 да / де га / ге дын/ дщ ды / д мен лар / лер
7 /14 тан / тен та / те ка / ке тын/тщ ты / п пен тар / тер
Подчеркнем, что в отличие от русского языка, для которого процесс отнесения слова к определенному флективному классу может быть автоматизирован лишь частично, принадлежность слова казахского языка к тому или иному флективному классу жестко детерминирована его буквенным составом. Это обстоятельство заметно облегчает как реализацию алгоритма, так и его практическое использование.
Алгоритм генерации словоформ
Для существительных возможны следующие комбинации окончаний (в скобках указан условный код данной комбинации):
1) число (1);
2) притяжательность (2);
3) падеж (3);
4) число + притяжательность (12);
5) число + падеж (13);
6) притяжательность + падеж (23);
7) число + притяжательность + падеж (123).
Так как в казахском языке следующее окончание зависит от предыдущего, то для генерации форм окончаний типов 12 и 13 требуются сгенерированные варианты форм окончаний типа 1, для форм типа 23 - формы типа 2 и т. п. Таким образом, окончания генерируются в следующем порядке:
1) 1, 2, 3;
2) 12, 13, 23;
3) 123.
Окончания типов 1, 2, 3 идут непосредственно сразу после основы слова, т. е. они непосредственно зависят от флективного класса данного слова. При генерации составных окончаний добавление того или иного очередного окончания определяется буквенным составом предыдущего, однако весь процесс добавления окончаний однозначно определяется принадлежностью основы слова к тому или иному флективному классу.
В итоге были сгенерированы все варианты окончаний существительных - для 14 флективных классов получилось около 3 500 вариантов окончаний.
Поскольку на вход алгоритма подается слово в именительном падеже единственного числа, не имеющее окончаний, постольку возникает задача нормализации словоформ «новых» слов, когда они употреблены в тексте не в начальной форме. К сожалению, полностью автоматическое решение этой задачи вряд ли возможно, так как последний слог основы некоторых слов (в том числе заимствованных) может совпадать с одним из окончаний казахского языка, и для выяснения того, какая именно из этих альтернатив реализована в данном конкретном случае, требуется, как минимум, синтаксический анализ предложения, в котором встретилось «новое» слово.
Таким образом, алгоритм генерации словоформ состоит из следующих этапов.
1. На вход подается слово в именительном падеже единственного числа.
2. Слово разбивается на слоги.
3. Определяется твердость / мягкость слова.
4. По последней букве слова с учетом твердости / мягкости определяется флективный класс.
5. С использованием таблицы окончаний флективных классов генерируются все словоформы данного слова.
6. На выходе получается таблица, содержащая все возможные словоформы данного слова.
Практическая реализация и тестирование алгоритма
Мы разработали веб-приложение для генерации словоформ существительных казахского языка, размещенное в открытом доступе сети Интернет 3. Пример работы приложения показан на рисунке (для краткости приведена только часть словоформ).
Была проведена проверка правильности генерации словоформ. Для этого с сайта грамматики казахского языка случайным образом выбиралось слово, а также определялась одна из его словоформ, которая будет использована для тестирования. После этого с помощью приложения генерировались все словоформы данного слова и выяснялось, правильно ли сгенерирована словоформа, выбранная для тестирования (один из авторов статьи является носителем казахского языка).
В итоге для 400 произвольно выбранных словоформ было получено 100 % правильно сгенерированных, из чего следует, что алгоритм работает корректно.
3 Программа генерации словоформ казахского языка. ЦКЪ: http://my.ict.nsc.ru/~salerat/kaz/
Введите слово в именительном падеже (пример; адам) |адам
Сгенерировать
Конфрнтрацня слово образования Форма слова
Исходный падеж адамнан
Местный падеж адамда
Дагельно-направит. падеж адамга
Родительный падеж адамныч
Винительный падеж адамды
Творительный падеж адаммен
Множественное число адамдар
Отрицание, вопрос ад амба
1 лицо, ед.число адамым
1 лицо, мн.число адамы мыз
2 лицо, ед, число адамы н
2 лицо, мн. ЧИСЛО адамын
2 лицо, (ув) ед, число адамы Ь(ыз
2 лицо, (ув) мн, число адамы ьц>13
3 лицо, ед. число адамы
3 лицо, мн. число адамы
Притяжательные окончания 2-ая форма адамди
Множественное число + Исходный падеж адамдардан
Множественное число + Местный падеж адамдарда
Множественное число + Деггельно-нагтравит. падеж адамдар f а
Множественное число + Родительный падеж адамдардын
Множественное число + Винительный падеж адамдарды
Пример работы приложения
Заключение
В настоящей статье построено разбиение существительных казахского языка на флективные классы и изложен основанный на этом разбиении алгоритм синтеза словоформ. Отличительными особенностями построенного алгоритма являются его понятность и достаточно легкая воспроизводимость, что позволяет, в частности, без особых трудозатрат применить его для генерации словоформ других изменяемых частей речи казахского языка, прежде всего глаголов. Было разработано веб-приложение для генерации словоформ существительных казахского языка, размещенное в открытом доступе сети Интернет [11]. Тестирование показало корректность его работы.
Список литературы
1. Шокин Ю. И., Федотов А. М., Барахнин В. Б. Проблемы поиска информации. Новосибирск: Наука, 2010.
2. Барахнин В. Б., Куперштох А. А. Алгоритм координатного индексирования электронных научных документов // Тр. Междунар. конф. «Вычислительные и информационные технологии в науке, технике и образовании» / Казахстан, Павлодар, 20-22 сентября 2006 г. Павлодар, 2006. Т. 1. С. 228-232.
3. Белоногов Г. Г., Новоселов А. П. Автоматизация процессов накопления, поиска и обобщения информации. М.: Наука, 1979.
4. Каневский Е. А. Некоторые вопросы пополнения морфологического словаря терминами предметной области // Тр. Междунар. семинара «Диалог'2001» по компьютерной лингвистике и ее приложениям. Аксаково, 2001. Т. 2. C. 156-160.
5. Шарипбаев А. А., Бекманова Г. Т., Ергеш Б. Ж., Бурибаева А. К., КарабалаеваМ. Х. Интеллектуальный морфологический анализатор, основанный на семантических сетях // Материалы Междунар. науч.-техн. конф. «Открытые семантические технологии проектирования интеллектуальных систем» (0STIS-2012) / Минск, БГУИР, 16-18 февраля 2012 г. Минск, 2012. С. 397-400.
6. Бурибаева А. К., Шарипбаев А. А., Бекманова Г. Т., Ергеш Б. Ж., Карабалаева М. Х. Аппаратная реализация синтеза словоформ казахского языка с помощью ассоциативной памяти // Вестн. Евраз. нац. ун-та им. Л. Н. Гумилева. 2012. Спец. вып. С. 180-183.
7. Заурбеков Д. Л., Кайракбай Б. М. Построение конечного преобразователя для морфологического анализа и генерации словоформ казахского языка // Materially VIII Mi^dzynarodowej naukowi-praktycznej konferencji «Wschodnie partnerstwo - 2012». Przemysl, 07-15 wrzesnia 2012 r. Vol. 8. Filologiczne nauki. Przemysl: Nauka i studia. S. 30-39.
8. Каза^ грамматикасы. Фонетика, сезжасам, морфология, синтаксис. Астана: Астана полиграфия, 2002
Материал поступил в редколлегию 24.04.2014
V. B. Barakhnin. L. Kh. Lukpanova, A. A. Solovyev
THE ALGORITHM FOR CONSTRUCTING WORDFORMS
USING INFLEXIONAL CLASSES FOR SYSTEMS OF KAZAKH LANGUAGE MORPHOLOGICAL ANALYSIS
The article considers the principles of Kazakh nouns distribution on inflexional classes and development of wordforms synthesis algorithm based on this distribution.
Keywords: the morphology of the Kazakh language. inflexional classes.
References
1. Shokin Yu. I.. Fedotov A. M., Barakhnin V. B. Problemy poiska informacii [Problems of information retrieval]. Novosibirsk. Nauka. 2010. (In Russ.)
2. Barakhnin V. B.. Kupershtokh A. A. Algoritm koordinatnogo indeksirovaniya jelektronnyh nauchnyh dokumentov [Coordinate indexing algorithm electronic scientific documents]. Proceedings of the International Conference «Computational and Informational Technologies for Research, Engineering and Education». Pavlodar. Kazakhstan. September 20-22. 2006. vol. 1. p. 228-232. (In Russ.)
3. Belonogov G. G.. Novoselov A. P. Avtomatizaciya processov nakopleniya. poiska i obobshheniya informacii [Automation of the Processes of Search Automation and Information Generalization]. Moscow. Nauka. 1979. (In Russ.)
4. Kanevsky E. A. Nekotorye voprosy popolneniya morfologicheskogo slovarya terminami predmetnoj oblasti [Some questions of replenishment of the morphological dictionary of the terms of the subject sphere]. Proceedings of the International Seminar «Dialog'2001: Computational Linguistics and this Applications». Aksakovo. Russia. 2001. vol. 2. p. 156-160. (in Rus.)
5. Sharipbaev A. A.. Bekmanova G. T.. Ergesh B. J.. Buribaeva A. K.. Karabalaeva M. H. In-tellektual'nyj morfologicheskij analizator. osnovannyj na semanticheskih setyah [The intellectual morphological analyzer based on semantic networks]. Proceedings of the International Scientific-
Technical Conference «Open Semantic Technology of Intelligent Systems» (OSTIS-2012). Minsk, February, 16-18, 2012, p. 397-400. (In Russ.)
6. Buribayeva A. K., Sharipbayev A. A., Bekmanova G. T., Karabalayeva M. H, Yergesh B. J. Apparatnaya realizaciya sinteza slovoform kazahskogo yazyka s pomoshh'yu associativnoj pamyati [Hardware realization of synthesis of word forms of the Kazakh language by means of associative memory]. Heralds of the L. N. Gumilyov Eurasian National University, 2012, Special issue, p. 180183. (In Russ.)
7. Zaurbekov D. L., Kayrakbay B. M. Postroenie konechnogo preobrazovatelya dlya mor-fologicheskogo analiza i generacii slovoform kazahskogo yazyka [The construction of the Finite State Transducer for morphological analysis and generation of word forms of the Kazakh language]. Proceedings of the VIII International Scientific-Practical Conference «Eastern Partnership - 2012». Przemysl, Poland, September 07-12, 2012. Przemysl, Nauka i studia, 2012, p. 30-39. (In Russ.)
8. Kazakh grammar. Phonetics, vocabulary, morphology, syntax. Astana, Astana Polygrafia, 2002. (in Kazakh)