ОБ АВТОМАТИЗАЦИИ СОСТАВЛЕНИЯ СЛОВАРЕЙ ЛОЖНОЙ ОМОНИМИИ ФЛЕКСИЙ
Н. М. Мищенко
Институт кибернетики им. В.М. Глушкова НАН Украины
nady@dolphin.icyb.kiev.ua
В. В. Калугина
Краснодарский Государственный университет
nady@dolphin.icyb.kiev.ua
Ключевые слова: флективные языки, ложная омонимия флексий, ложные флексии, словарь ложной омонимии флексий, спецификация флексий, алгоритм поиска слов с ложными флексиями.
В работе предложено определение ложной омонимии флексий и приведены примеры всех возможных случаев такой омонимии в русском языке. Неформально описан алгоритм поиска слов с ложными флексиями, применимый к разным флективным языкам. Разработаны формальные средства спецификации флексий и программа построения на их основе структур данных, ориентированных на программную реализацию описанного алгоритма.
- Введение
Омонимия флексий — это графическое совпадение флексий, имеющих разные грамматические значения. Такую омонимию флексий называют истинной, чтобы отличить ее от ложной омонимии. Ложная омонимия — это совпадение флексии с буквосочетанием в конце слова, которое не являются флексией этого слова. В таких случаях будем говорить, что слово имеет ложную флексию. Следовательно, цель алгоритма построения словаря ложной омонимии флексий для некоторого флективного языка состоит в том, чтобы для каждой флексии языка найти все слова, для которых эта флексия является ложной. Такие слова заносятся в словарь ложной омонимии в раздел, обозначенный соответствующей флексией. Источником для поиска слов с ложными флексиями служат словари лексики флективных языков. Словари ложной омонимии флексий могут быть использованы в процессе морфологического анализа.
Алгоритм поиска слов с ложными флексиями разработан Калугиной В.В. и использован ею для составления вручную Словаря ложной омонимии флексий русского языка [1]. В Словаре каждая флексия сопровождается также списком значений истинной омонимии. Словарь содержит свыше 30 тысяч слов с ложными флексиями. Порядок расположения слов в Словаре инверсионный алфавитный. Источником для поиска слов с ложными флексиями служили бумажные словари русского языка.
Алгоритм Калугиной В.В. был модифицирован с учетом его реализации на ЭВМ в виде программы SNOF и с учетом использования электронных словарей для поиска слов с ложными флексиями. Как и в большинстве работ по автоматической обработке текстов на естественных языках, в программе SNOF используются некоторые отступления от канонических определений терминов, например, к флексиям отнесены буквосочетания, не являющиеся флексиями (частицы -ся, -сь, нулевая флексия -0, символ -ь). Рассматриваются только одно-, двух- и трехбуквенные флексии. Часть слова, которая остается после отбрасывания флексии, условно называется основой. Изменения в основах при склонении и спряжении слов в программе не учитываются.
- Перечень случаев ложной омонимии флексий
Исходя из того, что основным источником ложной омонимии есть совпадение флексий с концами основ или с концами других, более длинных флексий, в Словаре [1] приводятся следующие теоретически возможные случаи ложной омонимии флексий:
- a) последняя буква основы и нулевая флексия совпадают с однобуквенной флексией: гд-е, дважд-ы, наканун-е, снов-а;
- b) две последние буквы основы и нулевая флексия совпадают с двухбуквенной флексией: ат-ом, впопых-ах, заран-ее, шл-ем;
- c) три последние буквы основы и нулевая флексия совпадают с трехбуквенной флексией: дор-ого, нич-его, поч-ему;
- d) последняя буква основы и однобуквенная флексия совпадают с двухбуквенной флексией: зм-ей, зерка-ло, вниман-ие;
- e) две последние буквы основы и однобуквенная флексия совпадают с трехбуквенной флексией: кар-ете, сол-ому, теор-ему;
- f) последняя буква основы и двухбуквенная флексия совпадают с трехбуквенной флексией. Такое совпадение в русском языке практически не встречается.
Выявление ложной омонимии флексий в неизменяемых словах (случаи a, b, c) и в прямых формах слов (случаи d, e) не составляет труда и выполняется путем сравнения концов слов с однобуквенными, двухбуквенными и трехбуквенными флексиями. Нахождение ложной омонимии в непрямых формах слов по словарным формам немного сложнее и требует построения ряда дополнительных структур данных на основе исходного списка (спецификации) флексий. Поэтому программа SNOF состоит из двух частей — Конструктора и Анализатора. На основе спецификации флексий Конструктор строит структуры данных, используемые Анализатором для отбора слов с ложными флексиями.
- Спецификация флексий
Основным разделом спецификации флексий, которую обозначим Sflex, служит последовательность строк, содержащих кортежи флексий изменяемых лексем и их имена. Кортежи флексий составляются на основе грамматических словарей. Каждый кортеж определяет класс лексем, словоформы которых принимают флексии, заданные в кортеже. Предполагается наличие в электронных словарях грамматической информации, позволяющей однозначно определять класс каждой лексемы словаря. Недостаточность или отсутствие необходимой информации в электронных словарях могут быть компенсированы участием в работе программы эксперта-лингвиста.
Кортеж содержит флексии: для именных частей речи русского языка — в порядке следования падежей от именительного до предложного, для глаголов кортеж начинается флексией неопределенной формы, за которой следуют флексии, начиная от первого лица единственного числа до третьего лица множественного числа. Для каждого времени глагола формируется отдельный кортеж. Число позиций в кортежах одинаково для всех слов одного языка, но может быть разным для различных языков.
Каждый кортеж имеет уникальное имя, расположенное в строке перед кортежем. В качестве имени можно использовать любой идентификатор или число. Для удобства работы со спецификацией в качестве имен в программе SNOF используются краткие формы задания грамматических признаков, например, в имени iс2т закодированы признаки: имя существительное среднего рода второго склонения твердой группы. Если некоторый грамматический класс лексем шире класса, определяемого кортежем, то есть задается несколькими кортежами, то для различения имен таких кортежей используется их нумерация. В этом случае имена имеют вид: iс2т-1, iс2т-2 и т.д. Так, строка спецификации флексий украинского языка, содержащая кортеж с именем iс2т, имеет вид: iс2т: { -о, -а, -у, -о, -ом, -i, -а, -0, -ам, -а, -ами, -ах, -о }.
Примеры слов, принимающих флексии кортежа iс2т: слово, дерево, озеро.
Имена кортежей имеют текстовую расшифровку, с помощью которой задаются постоянные грамматические признаки, характеризующие класс лексем с именованным кортежем. Текстовой расшифровкой имени iс2т может быть строка: имя сущ., ср. род, 2-ое скл., тв. гр. Детальное описание всех постоянных признаков может облегчить распознавание класса словарных лексем и обеспечить формирование полного списка значений истинной омонимии флексий.
Текстовая расшифровка имен кортежей составляет начальный раздел спецификации флексий.
- Структуры данных
По спецификации Sflex Конструктором строятся следующие структуры данных.
1) Списки f1, f2 и f3, соответственно, одно-, двух- и трехбуквенных флексий. Флексии в списках расположены в алфавитном порядке, начиная с конца. Число списков может быть больше трех. Каждой флексии соответствует файл для записи значений истинной омонимии флексии и словоформ, для которых флексия является ложной.
2) Таблица Tsflex, — машинное представление текстовой спецификации Sflex. По этой таблице определяется истинная омонимия флексий, значения которой заносятся в соответствующие файлы.
3) Общий список флексий Fflex, полученный путем слияния списков f1-f3.
4) Список Fsmall коротких флексий, которые являются концами других, более длинных флексий. Список содержит нулевое окончание, которое по определению является концом всех флексий.
5) Список более длинных флексий Flong, концы которых совпадают с флексиями списка Fsmall.
В программе SNOF используются машинные представления списков Fflex, Fsmall и Flong.
- Алгоритм Анализатора
Предлагаемый ниже алгоритм является новой версией алгоритма, воплощенного в действующей программе SNOF, которая применялась для построения словаря ложной омонимии флексий украинского языка на ограниченном словаре лексики. Действия А1-А7 выполняются одно за другим, если этот порядок не нарушается условными переходами.
А1. Извлекаем очередное слово из словаря. Если все слова уже просмотрены, то в каждом файле упорядочиваем слова с ложными флексиями по алфавиту, начиная с концов слов, а затем сливаем все файлы в один в порядке следования флексий в списках f1-f2. На этом работа Анализатора завершается.
Если слово извлечено из словаря, определяем его класс (имя кортежа).
А2. Если слово неизменяемое, то проверяем конец слова на совпадение с флексиями списка Fflex. В случае совпадения конца слова с некоторой флексией записываем слово в файл этой флексии. При любом исходе проверки переходим на А1.
А3. Если слово изменяемое, то ему должен соответствовать некоторый кортеж в таблице Tsflex. Если кортежа нет, переход на А1. Если кортеж есть, то просматриваем флексии кортежа, начиная с первой позиции, в которой находится окончание словарной формы. Для просмотра флексий в кортеже вводим переменную j, полагая сначала j = 1. Удаляем j-ую флексию кортежа из слова (“оголяем” основу слова).
А4. Если j-ая флексия в кортеже ненулевая, то переходим на А7.
А5. Если j-ая флексия в кортеже нулевая, то проверяем конец слова на совпадение с флексиями списка Fflex. В случае совпадения конца слова с некоторой флексией списка Fflex заносим слово в файл этой флексии.
А6. Увеличиваем j на 1. Если j больше длины кортежа, переходим на А1, иначе — на А4.
А7. Проверяем, есть ли j-ая флексия кортежа в списке Fsmall. Если нет, то переходим на А6. Иначе дописываем к основе слова j-ую флексию и проверяем, имеет ли место совпадение конца полученного слова с более длинной флексией из списка Flong. Если совпадение есть, то помещаем слово в файл этой более длинной флексии и убираем j-ую (короткую) флексию из слова. Переходим на А6.
Общий случай ложной омонимии флексий в косвенной форме слов можно описать следующим образом. Если слово w имеет флексию f в основной форме, а в некоторой косвенной форме имеет флексию k, которая совпадает с концом более длинной флексии d, то есть d=sk, то слово w может оканчиваться ложной флексией в косвенной форме, если его основа оканчивается буквосочетанием s.
Расмотрим в качестве примера слово украинского языка дерево, кортеж флексий которого с именем iс2т представлен в разд. 3 в качестве примера строки спецификации флексий. Флексия основной формы этого слова -о. Слово в предложном падеже принимает флексию -i, которая входит в список Fsmall, потому что совпадает с концом более длинной флексии –евi из списка Flong. Основа слова дерев- оканчивается буквосочетанием -ев-. Найдя флексию -i в списке Fsmall, присоединим ее к основе, получим слово деревi. После чего обнаружим совпадение конца слова деревi с более длинной флексией -евi из списка Flong. Поскольку слово оканчивается ложной флексией -евi, то оно заносится в файл этой флексии.
В заключение отметим прямую зависимость полноты словаря ложной омонимии флексий от объема словаря анализируемой лексики и от полноты последовательности кортежей.
Литература
- Калугина В.В. Словарь ложной омонимии флексий русского языка. Кишинев: Картя молдовеняске, 1965. 282 с.
About automatized compiling the dictionaries of false homonymy of inflections
- M. Mishchenko, V. V. Kalougina
Key words: inflected languages, false homonymy of inflections, false inflections, dictionary of false homonymy of inflections, inflection specification, algorithm for searching for words with false inflections.
The paper defines the false homonymy of inflections and illustrates all possible cases of this homonymy in the Russian language. The paper informally describes an algorithm to search for words with false inflections, which is applicable to a variety of inflected languages. The paper introduces formal specifications of inflections and data structures for a software implementation of the proposed algorithm.