Cloud of Science. 2016. T. 3. № 1 http:/ / cloudofscience.ru ISSN 2409-031X
Быстрый алгоритм анализа словоформ естественного языка с трехуровневой моделью словаря начальных форм
А. К. Розанов
Рязанский государственный радиотехнический университет 390005, Рязань, ул. Гагарина, 59/1
e-mail: [email protected]
Аннотация. Рассмотрен подход к определению форм слов естественных языков с постфиксным словоизменением. Предложен вариант представления правил формообразования с помощью встречных префиксных деревьев. Приводятся результаты измерения скорости определения форм слов.
Ключевые слова: преобразования строк, анализ форм слов, автоматическая обработка текста, структуры данных, иерархические модели.
1. Введение
В автоматической обработке текста задача определения форм слов (определение частей речи и грамматической информации, присущей каждому из слов) составляет самый первый этап анализа текста (либо следует непосредственно за этапом разбиения текста на слова в языках, для которых этот процесс нетривиален), поэтому разработка подходов к ускорению анализа форм слов представляет существенный интерес.
В [1] была предложена универсальная модель представления правил формообразования и алгоритм определения форм слов, использующий ее.
Все правила в рамках этой модели описываются в виде цепочек элементарных преобразований строк, каждая из которых обладает свойствами обратимости (для каждого преобразования P существует единственное обратное P- такое, что P_1(P(s)) = s для любой строки s, к которой применимо Р) и однозначности (результат применения Р к одному и тому же слову всегда одинаков).
Хотя предложенная в [1] модель и обладает достоинствами независимости от языка и двунаправленностью (допускает как определение, так и генерацию), скорость определения форм слов существенно ниже по сравнению с известными аналогами.
В настоящей работе мы рассматриваем только языки с постфиксным словоизменением, т. е. языки, в которых правила формообразования сводятся к замене окончания (либо окончания и суффикса), оставляя основу (или хотя бы приставки и
корень) неизменными. Русский язык, к примеру, является языком с постфиксным словоизменением, поскольку формообразующими в русском языке являются только окончания и суффиксы; приставки и интерфиксы же являются словообразующими морфемами [2].
Как показано в [3], предложенная модель представления правил словоизменения избыточна для языков с постфиксным формообразованием и может быть упрощена, что позволит применять более эффективный алгоритм для определения форм слов.
В последней части статьи приводится способ организации словаря системы анализа форм слов, позволяющий более эффективно описывать сложные парадигмы. Приводятся примеры описаний парадигм, иллюстрирующие удобство предложенного способа организации словаря.
В заключении приводятся результаты измерений скорости анализатора на тестовых текстах на русском языке и сравнение с современным аналогом (анализатором Mystem, разработанным компанией Yandex).
2. Представление набора правил формообразования
В [3] показано, что в случае постфиксного формообразования каждое правило получения словоформы из начальной формы слова может быть представлено в виде одной операции замены постфикса, которая является обратимой и однозначной.
Поэтому все множество правил формообразования может быть представлено в виде дуг C, соединяющих вершины двух встречных префиксных деревьев L и R, представляющих соответственно постфиксы начальных форм и возможные их замены (рис. 1).
Рисунок 1. Встречные префиксные деревья, описывающие правила генерации словоформ
С1оий о/Баеисе. 2016. Т. 3. № 1
Каждый узел левого дерева Ь на рис. 1 представляет собой постфикс, присущий хотя бы одному из слов словаря в начальной форме. Нулевой узел дерева соответствует «пустому постфиксу», т. е. операциям присоединения постфикса (когда удаление не требуется, например сын — сына) и пустой цепочке (когда искомая словоформа является начальной или совпадает с ней).
Аналогично каждый узел правого дерева Я соответствует постфиксу, присущему хотя бы одному из слов словаря в форме, отличной от начальной. Нулевой узел соответствует операциям удаления постфикса (река — рек).
Алгоритм определения форм слов в случае использования такого способа хранения правил словоизменения состоит из следующих шагов:
1) получение цепи Z узлов правого дерева, соответствующей символам, на которые оканчивается анализируемое слово (и, как следствие, исключение большей части правил, заведомо несовместимых с ним, из рассмотрения);
2) выборка очередного (перечислением Zi) способа разбиения слова на основу и постфикс;
3) перечисление всех правил, соответствующих дугам, входящим в Zi для отсева правил, обратные операции которых, будучи примененными к анализируемому слову, не производят слов в начальных формах, с которыми эти правила изначально ассоциированы в словаре;
4) полученное множество правил дает информацию о всех вариантах грамматической информации, возможно присущих слову и о соответствующих каждому из этих вариантов начальных формах. В случае если ни одного правила не найдено, слово считается неизвестным системе.
Таким образом [3],
- множество правил, которые нужно проверить на применимость, сокращается до небольшого набора, образованного дугами, входящими в Zi;
- применение каждого правила есть выполнение простой операции замены постфикса, доступной в виде стандартной функции в большинстве современных языков программирования;
- затраты памяти на хранение вспомогательных структур данных пренебрежимо малы по сравнению с затратами на хранение в памяти самого словаря (около 2 мегабайт для тестового словаря из чуть более 8000 слов в начальных формах; сам словарь в оперативной памяти занимал около 20 мегабайт), поэтому данный метод анализа форм слов подходит для применения на устройствах с малыми объемами оперативной памяти;
- процесс анализа хорошо распараллеливается, поскольку не содержит операций записи в общую память, поэтому скорость определения будет расти пропорционально числу параллельно выполняемых потоков.
3. Представление грамматической информации
При планировании структуры словаря системы, как правило, возникает необходимость выбрать способ разбиения множества начальных форм слов на группы, обладающие сходными либо одинаковыми наборами правил словоизменения. В языках со сложными правилами формообразования структура парадигмы слова может зависеть от большого числа обстоятельств (например, наличие и состав причастных форм зависит от вида глагола, наличие сравнительной степени возможно только у качественных прилагательных и т. д.). Поэтому следует разбивать все множество начальных форм, хранимое в словаре так, чтобы хранить как можно меньше одинаковых правил, связанных с разными подмножествами слов.
Была предложена иерархическая модель представления словаря, и было продемонстрировано в [4], также показано, что ее достаточно для описания полных парадигм русских слов. Предложенная модель может быть описана с помощью приводимой ниже последовательности определений.
1. Все множество грамматических категорий языка хранится в специальном общем реестре грамматических категорий:
ОУаЫвз = \GValue, ОУа1ив2, ...,ОУа1ием },
ОТуре8 = {кОТуре1, GValuesl), ..., (ОТурег, GValues2 )}.
Примеры грамматических категорий:
(Падеж, {Им., Род., Дат., Вин., Тв., Предл.}), (Число, {Единственное, Множественное}), (Одушевленность, {Да, Нет}).
2. При описании слов или их наборов каждое слово или набор может иметь не более одного значения ОУа!пе для каждого ОТуре. В случае отсутствия значения говорят, что соответствующая грамматическая категория для данного слова не определена (например, род для прилагательных во множественном числе) или отсутствует (например, возвратность глагола для существительных). Описание слов совокупностью значений грамматических категорий будем называть картой грамматических значений (ОУа!ыеМар). Примеры карт:
делами: {{Падеж: Тв.}, {Число: Мн.},
{Одушевленность: Нет}, {Род: Средний}} Все одушевленные существительные женского рода: {{Одушевленность: Да}, {Род: Женский}}
Cloud of Science. 2016. Т. 3. № 1
Карты грамматических значений применяются и при описании групп слов, и при представлении результатов анализа слов.
3. Таким образом, правила словоизменения представляются в системе в виде пар (Operation, GValueMap), где Operation — это конкретная операция по получению слова в нужной форме из слова в начальной, а GValueMap — грамматическая информация, которой будет обладать слово в нужной форме. Например, правило для получения творительного падежа множественного числа слова «дело» имеет вид
R=(-о+ами):{{Падеж: Тв.},{Число: Множественное}}.
Заметим, что в карте грамматических значений отсутствуют категории одушевленности и рода, поскольку они уже определены для группы слов, включающей в себя слово «дело» и являются неизменяемыми для существительных.
4. Зачастую грамматические категории влияют друг на друга (род в русском языке не определен для множественного числа, наличие причастных форм зависит от вида и переходности). Из-за этого перечисления всех изменяемых грамматических категорий недостаточно для эффективного описания парадигмы, поэтому вводится понятие карт словоизменения (или карт словообразования).
Карты словоизменения служат для представления структуры парадигмы в виде объединения подмножеств, образованных наборами независимых грамматических категорий. Каждая карта словоизменения состоит из:
- карты грамматических значений, постоянных в пределах данной карты словоизменения;
- множества изменяемых грамматических категорий;
- множества ограничений, накладываемых на изменяемые грамматические категории.
Табл. 1 описывает парадигму качественных прилагательных русского языка на примере прилагательного «ясный». Данный пример хорошо иллюстрирует проблему зависимостей между грамматическими категориями.
Для перечисленных шести категорий (число, род, одушевленность, степень сравнения, форма (краткая/полная), падеж) допускаются только 30 их комбинаций (из возможных 2 х 3 х 2 х 2 х 2 х 6 = 288). Поэтому парадигма в рамках предлагаемой модели описывается следующими восемью картами словоизменения:
InflectionMapi: ({{ЧислоМн. },{Форма:Краткая}},0,0)
(множественное число краткой формы уникально)
InflectionMap2:({{Number:Singular},{Form:Short}},{Gender},0)
(единственное число краткой формы изменяется по родам)
InflectionMap3: ({{ComparisonDegree:Comparative}},0,0)
(сравнительная степень также уникальна)
InflectionMap4: ({{Number:Plural}},{Case},{Case^Accusative})
(полная форма изменяется по падежам...)
InflectionMap5: ({{Number:Singular}},{Case,Gender},{Case^Accusative}) (.а в единственном числе - еще и по родам) InflectionMap6:
{{{Number:Plural},{CaseAccusative}},{Animacy},0) (формы винительного падежа зависят от одушевленности) InflectionMap-j:
({{Number: Singular }, { Case Accusative}},{ Gender }, {Gender^Masculine}) InflectionMap8:
({{Number:Singular},{CaseAccusative},{GenderMasculine}}, {Amm&cy},^)
Таблица 1. Парадигма прилагательного «ясный»
Число, род, одушевленность Степень сравнения, форма, падеж Единственное число мн.ч., одуш./ неод.
м. род, одуш./ неод. ж. род ср. род
Положительная степень сравнения Полная форма им. ясный ясная ясное ясные
род. ясного ясной ясного ясных
дат. ясному ясной ясному ясным
вин. ясного/ ясный ясную ясное ясные/ ясных
твор. ясным ясной/ ясною ясным ясными
предл. ясном ясной ясном ясных
Краткая форма ясен ясна ясно ясны
Сравнительная степень яснее
5. Наконец, все множество начальных форм слов делится на подмножества, для каждого из которых характерен один и тот же набор правил словоизменения. С каждым из таких наборов хранится карта значений постоянных грамматических категорий (например, род и одушевленность существительных).
Дальнейшее усложнение структуры словаря имеет целью упрощение процесса заполнения словаря путем снижения числа избыточных действий; на предложенный в настоящей работе алгоритм анализа форм слов дальнейшая структуризация множества начальных форм влияния не оказывает. Преимущества иерархической организации словаря, предлагаемой ниже, включают:
- автоматическую генерацию структуры парадигмы при добавлении новых слов в словарь по результатам их начальной классификации (например, при добавлении нового глагола можно более точно спрогнозировать парадигму, если оператор предварительно определит переходность и вид глагола);
- правила формообразования для новых слов могут предсказываться системой более точно за счет предпочтения известных правил, применимых к наиболее близким по иерархии семействам слов.
С1оий о/Баеисе. 2016. Т. 3. № 1
6. В предлагаемой модели выделяется три уровня организации слов: супертипы, типы и семейства.
Супертипы представляют собой высший уровень иерархии и соответствуют русским частям речи. Супертипы характеризуются одним и тем же набором постоянных грамматических категорий (так, для всех существительных постоянными являются одушевленность и род). Каждому супертипу соответствует набор карт формообразования. Так, русские существительные характеризуются единственной картой формообразования (0, {Число, Падеж}, 0).
Типы — это подмножества, входящие в супертипы. Каждый тип характеризуется картой грамматических значений, общей для каждого из входящих в этот тип слов, набором применимых карт словоизменения (некоторые карты могут быть неприменимы к некоторым типам), набором семейств слов (см. далее) и набором ограничений (чаще всего пустым), накладываемых на допустимые карты словоизменения. Например, для супертипа, описывающего русские существительные, в словаре созданной автором системы определения форм слов описаны 8 типов: одушевленные и неодушевленные женского и мужского родов; среднего рода; без единственного числа; без множественного числа; несклоняемые. Тип «без множественного числа» содержит карту постоянных грамматических значений {{Число .Множественное}}, что снижает число возможных форм слов до 6, т. е. по одной на каждый падеж.
Семейства представляют собой нижний уровень иерархии словаря и содержат набор слов, подчиняющийся одному и тому же набору правил словоизменения, и сам этот набор правил. Так, одно из самых многочисленных семейств существительных русского языка, включающее слово «телефон», содержит следующий набор из 12 правил:
Я1 = 0:{{Падеж:Им.},{Число:Ед.}} Я2 = (+а):{{Падеж:Род.},{ Число.Ед.}} Я3 = (+у):{{Падеж:Дат.},{Число:Ед.}} Я4 = 0:{{Падеж:Вин.},{Число:Ед.}} Я5 = (+ом):{{Падеж:Тв.},{ Число.Ед.}} Я6 = (+е):{{Падеж:Предл.},{Число:Ед.}} Я7 = (+ы):{{Падеж:Им.},{ЧислоМн.}} Я8 = (+ов):{{Падеж:Род.},{ЧислоМн.}} Я9 = (+ам):{{Падеж:Дат.},{Число:Мн.}} Я10 = (+ы):{{Падеж:Вин.},{ЧислоМн.}} Я11 = (+ами):{{Падеж:Тв.},{Число:Мн.}} Я12 = (+ах):{{Падеж:Предл.},{ЧислоМн.}}
Правила Я] и Я4 содержат одно и то же преобразование строки, поскольку для неодушевленных существительных мужского рода формы именительного и винительного падежей совпадают.
4. Оценка скорости определения форм слов
Для получения данных о быстродействии был подготовлен словарь, содержащий более 8000 слов русского языка. Рис. 2 демонстрирует распределение частей речи в тестовом словаре.
Хотя сам словарь содержит лишь немногим более 8000 слов, полный набор всех возможных словоформ, получаемых из них, будет содержать более 240000 слов. Поэтому для тестовых текстов более 70% слов были верно распознаны, что позволило оценить скорость анализа форм слов и сравнить ее со скоростью анализа при помощи программы Mystem [5].
Тесты проводились на компьютере, оснащенном процессором Intel Core i7 4800MQ (2.7 ГГц) и 16 гигабайтами оперативной памяти, под управлением операционной системы Windows 7. Алгоритмы были реализованы на языке программирования C# 6.0 для платформы .NET Framework 4.5.
Первый сценарий тестирования подразумевал измерение скорости определения слов текста, в котором отсутствовали повторяющиеся словоформы. Отношение скоростей анализа в этом случае варьировало от 1 до 0.5 в пользу анализатора Mystem, в зависимости от числа неизвестных слов в тексте.
Второй сценарий тестирования подразумевал анализ обычных текстов на русском языке (для примера использовались произведения художественной литературы). Отношение скоростей анализа в этом случае варьировало от 1.5 до 2 в пользу предлагаемого метода анализа. Более того, благодаря кэшированию время анализа текста В, вдвое большего по числу слов, всегда оказывалось меньше удвоенного времени анализа текста А.
Грубая оценка скорости определения форм слов для обоих сценариев приведена в табл. 2.
1 Nouns
2 Verbs
3 Adjectives
4 Adverbs
В Unchangeable words
6 Numerals
7 Pronouns
4135
2267
1603
304
104
50
27
Рисунок 2. Состав тестового словаря
Cloud of Science. 2016. Т. 3. № 1
Таблица 2. Сравнение скоростей анализа форм слов.
Реализация предлагаемого алгоритма Mystem Отношение
Без повторений, 250000 слов 55000 слов/с 80000 words/second 0.69
Обычный текст, 250000 слов 180000 слов/с 120000 words/second 1.5
5. Заключение
В статье продемонстрирован подход к определению форм слов естественных языков, использующий общий алгоритм, не зависящий от конкретных правил формообразования при условии сводимости каждого из них к замене постфикса.
С учетом того, что замеры производительности выполнялись с использованием реализации алгоритма с помощью высокоуровневого языка программирования, есть все основания полагать, что скорость анализа форм слов может быть улучшена еще больше с применением низкоуровневого языка программирования и оптимизирующего компилятора.
Литература
[1] Пруцков А. В. Генерация и определение форм слов естественных языков на основе их последовательных преобразований // Вестник Рязанского государственного радиотехнического университета. 2009. № 27. С. 51-58.
[2] Русская грамматика. Академия наук СССР, Институт русского языка. Т. 1: Фонетика. Фонология. Ударение. Интонация. Словообразование. Морфология / Н. Ю. Шведова (гл. ред.). — М. : Наука, 1980.
[3] Миронов В. В., Розанов А. К. Подходы к оптимизации алгоритма определения форм слов естественных языков, основанного на цепочках последовательных преобразований строк // Информатизация образования и науки. 2015. № 25. С. 43-54.
[4] Розанов А. К. Организация словаря в системах генерации и определения форм слов естественных языков // Вестник Рязанского государствен—ного радиотехнического университета. 2014. № 49. С. 55-63.
[5] Segalovich I. A fast morphological algorithm with unknown word guessing induced by a dictionary for a web search engine // Proc. MLMTA-2003. — Las Vegas, 2003.
Автор:
Алексей Константинович Розанов — аспирант кафедры вычислительной и прикладной математики, Рязанский государственный радиотехнический университет
Fast vocabulary-based algorithm for natural language word
form analysis
Alexey Rozanov
Ryazan State Radio Engineering University Gagarin Str., 59/1, Ryazan, Russian Federation, 390005
e-mail: [email protected]
Abstract. In the field of Natural Language Processing, identifying word forms and, more precisely, identifying part-of-speech and grammatical information for each of the words in the input text usually comprises the very first level of text processing (or immediately follows splitting the text into words, should such task be non-trivial), therefore development of approaches to speed up the word form analysis pose significant interest. In this work, by using the work [1] as a basis, we present an approach to analysis of word forms for natural languages with postfix inflection, following the work done in [3]. We propose a way of representing the postfix inflection rules associated with a natural language and an algorithm for word form analysis based on it. In conclusion, we provide the benchmark data indicating the increase in speed compared to known analysis methods.
Key words: string transformation, analysis forms of words, automatic processing of the text data structure, hierarchical model.
References
[1] Prutzkow A. V. (2009) VestnikRGRTU, 27:51-58. [In Rus]
[2] Shvedova N. (Ed.) (1980) Russkaja grammatika. Akademija nauk SSSR, Institut russkogo jazyka. Vol. 1: Fonetika. Fonologija. Udarenie. Intonacija. Slovoobrazovanie. Nauka. [In Rus]
[3] Mironov V. V., Rozanov A. K. (2015) Informatizacija obrazovanija i nauki. 25:43-54. [In Rus]
[4] Rozanov A. K. (2014) Vestnik RGRTU, 49:55-63. [In Rus]
[5] Segalovich I. (2003) A fast morphological algorithm with unknown word guessing induced by a dictionary for a web search engine. In Proc. MLMTA-2003. Las Vegas.