Процедура машинного обучения в задаче морфологической разметки текста и определения частей речи в флективных языках

УДК 004.9

DOI 10.21685/2072-3059-2017-1-5

Д. В. Тарасов, Н. А. Романов

ПРОЦЕДУРА МАШИННОГО ОБУЧЕНИЯ В ЗАДАЧЕ МОРФОЛОГИЧЕСКОЙ РАЗМЕТКИ ТЕКСТА И ОПРЕДЕЛЕНИЯ ЧАСТЕЙ РЕЧИ В ФЛЕКТИВНЫХ ЯЗЫКАХ

Аннотация.

Актуальность и цели. Компьютерный анализ текста, одним из этапов которого является автоматическая разметка текста по частям речи (POS-tagging), необходимо проводить для целого ряда повседневных задач во многих IT-отраслях (таких как продвижение сайтов в Интернете). Однако достаточно качественно выполнить морфологическую разметку для русского языка значительно сложнее, нежели для английского. Хорошие библиотеки, реализующие такой функционал, либо медленные, либо имеют закрытый исходный код, либо требуют дополнительного анализа. Цель работы - реализация методов распознавания текста для русского языка.

Материалы и методы. Реализация методов распознавания проводилась на основе метода опорных векторов применительно к задачам классификации объектов и с использованием национального корпуса русского языка - СинТагРус. Программная реализация машинного обучения осуществлялась на языке С/С++.

Результаты. В работе был предложен алгоритм классификации для анализа текста и определения частей речи русского языка в текстах различной тематики. Данный алгоритм обработки текста требует для качественного анализа наличия большой репрезентативной выборки. Предложена эффективная схема выбора характеристик (признаков) для построения процедуры обучения.

Выводы. Процедура машинного обучения продемонстрировала эффективность порядка 87-95 % для анализа частей речи в предложениях различной тематической направленности (на примере русского языка) и может быть использована при компьютерном анализе текста в задачах IT-отрасли.

Ключевые слова: метод опорных векторов, процедура машинного обучения, линейные классификаторы, условия Каруша - Куна - Таккера.

D. V. Tarasov, N. A. Romanov

MACHINE LEARNING FOR THE OBJECTIVE OF MORPHOLOGICAL TAGGING AND POS DETERMINATION IN INFLEXIONAL LANGUAGES

Abstract.

Background. The computer analysis of texts with one of its stages being POS-tagging is required for multiple routine objectives in many IT-fields (such as website promotion). However, it is much harder to execute morphological tagging for Russian language, than for English language. Good libraries capable of realizing such potential are either slow or require additional analysis. The aim of the work is to implement methods of Russian language text recognition.

Materials and methods. Recognition methods were implemented through the method of support vector machines with regard to problems of object classification and using the Russian National Corpus - SinTagRus. Software implementation of machine learning was carried out via С/С++.

Results. The study has offered a classification algorithm for text analysis and POS determination in Russian language texts of various topics. The given text processing algorithm requires high representative sampling for high-quality analysis. The authors have offered an effective parameter (tag) selection scheme for learning procedure establishment.

Conclusions. The machine learning procedure has demonstrated the efficiency of about 87-95 % when analyzing POS in senteces of various topical areas (by the example of Russian language). It cand be used in computer analysis of tets for IT purposes.

Key words: support vector machine, machine learning procedure, linear classifiers, Karush-Kuhn-Tucker conditions.

Введение

Разметка текста по частям речи (автоматическая морфологическая разметка, POS-tagging, part-of-speech tagging) - этап автоматической обработки текста, задачей которого является определение части речи и грамматических характеристик слов в тексте (корпусе) с приписыванием им соответствующих тегов. POS-tagging является одним из первых этапов компьютерного анализа текста, который необходимо проводить для целого ряда повседневных задач во многих IT-отраслях (таких как продвижение сайтов в Интернете). Конечно, данный анализ для каждого языка, будь то английский, арабский или какой-то другой, имеет свою специфику, т.е. важна флективность (гибкость) языка [1].

Для решения данной задачи используется два фундаментальных подхода:

1. Алгоритмы, основанные на правилах. Данный алгоритм схож с тем, который используется человеком при ручном определении частей речи.

2. Эмпирический подход, в основе которого лежит выделение какого-то конечного набора языковых признаков, и по ним выносится гипотеза о принадлежности слова к той или иной части речи. Точность такого метода будет зависеть от выбора первоначальных признаков и непосредственно алгоритма классификации. В данной работе будет рассмотрен именно такой подход, причем для обучения можно использовать национальный корпус русского языка -СинТагРус - коллекцию текстов с размеченной информацией для каждого слова, такой как часть речи, число, падеж, время глагола и т.д.

В настоящий момент существует множество реализаций стохастических методов распознавания. Данной проблемой занимались такие гиганты Интернет-индустрии, как Яндекс и Google, а также самые именитые университеты (в одном только Стэнфордском университете было разработано несколько реализаций). Однако достаточно качественно выполнить POS-tagging для русского языка при помощи данных решений удается редко, так как правила русского языка значительно сложнее. Хорошие библиотеки, реализующие такой функционал, либо медленные, либо имеют закрытый исходный код, либо требуют дополнительного анализа. Таким образом, реализация методов распознавания текста для русского языка является актуальной задачей исследования.

1. Постановка задачи классификации и вспомогательные утверждения

Задача классификации - формализованная задача, в которой имеется множество объектов X (ситуаций), разделенных некоторым образом на классы Y. Между объектами и классами существует неизвестная заранее зависи-

мость у : X ^ Y . Конечное множество объектов Xl = (х^,у^}, у^ = у(xi),

/ = 1, l, для которых известно, к каким классам они относятся, обычно называемое выборкой. Принадлежность остальных объектов к конкретным классам неизвестна. Необходимо построить алгоритм a : X ^ Y , способный отнести некий произвольный объект x е X из первоначального множества к одному из заданных классов.

Классифицировать объект - определить элемент из множества заданных классов, к которому относится данный объект.

В математической статистике задачи классификации называются также задачами дискриминантного анализа. В машинном обучении задача классификации решается при помощи методов искусственных нейронных сетей при постановке эксперимента в виде обучения.

В задачах классификации выделяют еще одно важное понятие, такое как классификатор. Классификатор - это некоторая кривая или поверхность в пространстве, относительно положения которой можно сделать вывод о принадлежности произвольного объекта x е X к конкретному классу. В данной работе особое внимание уделено линейным классификаторам (это в общем виде гиперплоскости) и задаче машинного обучения.

Задача машинного обучения. Пусть существуют два множества: множество объектов и множество реакций (ответов). Между ними существует зависимость, общий вид которой неизвестен. Известна только конечная совокупность прецедентов - пар «объект, ответ», называемая тестовой выборкой. По имеющимся данным необходимо восстановить зависимость (т.е. построить алгоритм), способную для любого объекта выдать достаточно точный ответ. Для измерения точности ответов вводится определенный функционал, называемый функционалом качества.

2. Метод опорных векторов в задачах классификации. Линейные классификаторы

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

Линейный классификатор - это первый способ решения задачи классификации. Для наглядности возьмем простейшую задачу бинарной классификации: имеется коллекция серых и черных точек на плоскости. Необходимо найти такое правило, по которому новую, неокрашенную точку можно было бы покрасить в один из этих двух цветов. Идея заключается в следующем: найти прямую, которая отделяет все серые точки от черных точек. Если удастся найти такую прямую, то классифицировать каждую новую точку можно будет следующим образом: если точка лежит выше прямой, то она серая, если ниже - черная. Формализуем эту классификацию: необходимо найти вектор w такой, что для некоторого граничного значения Ь и новой точки x^ выполняется условие:

ъ • X > Ъ ^ УI =Ъ ъ • х < Ъ ^ у( =-1. Уравнение ъ • х{ = Ъ описывает гиперплоскость, разделяющую классы

в пространстве Ж" .

Если скалярное произведение вектора ъ на х^ больше допускающего значения Ъ, то новая точка принадлежит первой категории, если меньше -второй. На самом деле вектор ъ перпендикулярен искомой разделяющей прямой, а значение Ъ зависит от кратчайшего расстояния между разделяющей прямой и началом координат.

Рассмотрим пример на рис. 1. Для прямой ¿2 граница Ъ равна 0, а для прямой ¿1 - длине перпендикуляра, опущенного на ¿1 из начала координат.

Рис. 1. Пример классифицирующих разделяющих прямых 2.1. Случай линейной разделимости

Случай линейной разделимости подразумевает, что возможно построить такую прямую (плоскость), когда с каждой стороны от нее будут собраны объекты лишь одного класса. Конечно, с точки зрения практики, это почти невозможно, ведь зачастую найдется хотя бы одна точка, нарушающая это правило. Этот случай относится уже к нелинейной разделимости.

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

Формализуем задачу разделения данных на два класса (бинарной классификации) для пространств произвольной размерности: {хг-, у^}, х^ е^^, у, е {-1,1}, / = 1,1. Предположим, что существует гиперплоскость, которая разделяет положительные (у^ = 1) и отрицательные (у^ = -1) объекты (разделяющая гиперплоскость). Точки, которые лежат на гиперплоскости, удовле-

творяют равенству и>х + Ъ = 0, где ъ - нормаль к гиперплоскости, -¡р-^ - рас-

м

стояние от гиперплоскости до начала координат. Пусть d+ (d_) - расстояние от разделяющей гиперплоскости до ближайшего положительного (отрицательного) объекта. Назовем величиной зазора гиперплоскости сумму d+ + d_. Для линейно разделимого случая метод опорных векторов ищет гиперплоскость с максимальной величиной зазора. Формально это значит, что вся обучающая выборка удовлетворяет следующим условиям:

wxi > b + e ^ yi = 1, wxi < b _ e ^ yi = _1.

Заметим, что параметры линейного классификатора определены с точностью до нормировки: алгоритм не изменится, если w и b одновременно умножить на одну и ту же положительную константу. Тогда после нормировки имеем:

wxi + b > 1, yi = 1,

wxi + b <_1, yi =_1.

Эти условия могут быть объединены в один набор неравенств:

y {wxt + b)-1 > 0, Vi.

Теперь рассмотрим точки, для которых имеет место равенство в (1). Эти точки лежат на гиперплоскости H1 : wxi + b = 1 с нормалью w и расстоя-

нием до начала координат ^—¡р . Аналогично для точек, которые удовлетво-

w

ряют равенству (2), получаем гиперплоскость H2 : wxi + b = _ 1, лежащую от

|_1 _ b| 1 начала координат на расстоянии —|—|—1. Однако d+= d _ = |—|, и величина

2

зазора равна просто |—|. Отметим, что H1 и H2 параллельны друг другу,

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

условии соблюдения ограничений (3).

Таким образом, решение для типичного двумерного случая будет иметь вид, показанный на рис. 2. Точки обучающей выборки, для которых равенство в уравнении (3) имеет место (т.е. те, которые лежат на одной из гиперплоскостей H1 или H2), и удаление которых изменит найденное решение, называются опорными векторами; на рис. 2 такие точки обведены.

У рассматриваемого метода есть два существенных недостатка:

1) метод не работает в случае, если классы линейно не разделимы;

2) предположим, что в учебной коллекции есть ошибка - неправильно классифицирован один или несколько элементов. Из-за этих элементов результирующая разделяющая полоса может сильно отличаться от той, которая получилась бы в случае с корректной учебной коллекцией.

Рис. 2. Разделяющая полоса

Переформулируем постановку задачи с использованием функций Ла-гранжа. Для этого есть две причины. Во-первых, ограничения (3) будут заменены ограничениями в виде множителей Лагранжа, которые будут гораздо проще в обращении. Во-вторых, в такой формулировке проблемы результат работы алгоритма будет зависеть не напрямую от данных обучающей выборки, а от скалярных произведений векторов, входящих в нее. Это очень важное свойство, которое позволяет обобщить метод опорных векторов на нелинейный случай.

Для переформулировки задачи введем положительные множители Ла-гранжа аг-, по одному на каждое из неравенств в (3). Для ограничений-равенств множители не определены. Получим:

Необходимо минимизировать Lp относительно w, Ь и потребовать равенства нулю всех частных производных по ^ при аг- > 0 (обозначим такой набор ограничений как ^). Это выпуклая задача квадратичного программирования, так как целевая функция выпукла, а точки, удовлетворяющие условиям, сами образуют выпуклое множество. Таким образом, одновременно можно поставить следующую двойственную проблему: максимизировать Lp при условии, что его градиент относительно w и Ь равен нулю и аг- > 0 (назовем этот набор ограничений ^2). Такая постановка задачи называется двойственной задачей Вулфа [2]. Она обладает свойством, что максимум Lp при условии соблюдения ограничений ^2 достигается при тех же значениях w, Ь и аг-, как и минимум Lp , с учетом ограничений ^ .

Равенство нулю градиента Lp относительно w и Ь приводит к следующим условиям:

2 агУг = О-

Подставим полученные значения в уравнение (4), чтобы перейти к эквивалентной задаче:

Лагранжианы имеют разные обозначения (Р для основного, О для двойственного), чтобы подчеркнуть, что две формулировки различны: Ьр и Ьо возникают из той же целевой функции, но с различными ограничениями. Отметим также, что если мы сформулируем проблему с Ь = 0 , т.е. все гиперплоскости проходят через начало координат, ограничение (6) не появляется. Это слабое ограничение для больших пространств позволяет понизить число степеней свободы на единицу.

Обучение при помощи опорных векторов (для линейно разделимой выборки) сводится в итоге к максимизации Ьо относительно аг- с учетом (5), (6). Множитель Лагранжа а7- существует для каждой точки учебной выборки. Те точки, у которых аг- > 0, называются опорными векторами и лежат на одной из гиперплоскостей Н или Н. Для данного метода это ключевые точки. Так как они лежат ближе всего к разделяющей плоскости, все остальные точки могут быть удалены или перемещены (но не между гиперплоскостей Н или Н^) без какого-либо влияния на разделяющую гиперплоскость.

Приведенный выше алгоритм при применении к неразделимой выборке (рис. 3) даст недопустимое решение: целевая функция (в двойственной форме) будет возрастать неограниченно. Чтобы избежать этого, необходимо ослабить условия (1), (2). Позволим алгоритму допускать ошибки на обучающих объектах, но при этом постараемся, чтобы ошибок было меньше. Введем набор дополнительных положительных переменных ^, 7 = 1,...,I, в ограничения следующим образом:

Таким образом, чтобы произошла ошибка в процессе обучения, соот-

верхней границей совокупного числа ошибок обучения. Естественный способ

2.2. Линейно неразделимая выборка

wxj + b > 1 , y = 1, WXi + b <-1 + , yi =-1,

^ > 0 Vi .

i2

W

назначить штраф за ошибки - изменить целевую функцию с

2

на

w

ц2

(

2

г

+ С 2 , где С - настраиваемый параметр, с увеличением которого

V « )

растет и штраф за совершение ошибки.

Рис. 3. Линейно неразделимая выборка

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

ld = Z ai ~1Z aiаjytyjxix

при условиях

t,J

0 < ÖLj < C .

Z aiyi=0-

Решение будет иметь вид

Ъ

w = 2 а«У«х«,

г=1

где - число опорных векторов.

Таким образом, в отличие от случая линейной разделимости, коэффициенты а« будут ограничены сверху значением С.

Далее сформулируем условия Каруша - Куна - Таккера, которые играют ключевую роль в задачах условной оптимизации. Лагранжиан основной задачи примет вид

^ = 2И2 + С2^ ~ 2а« (« (ИХ + Ь)"1 + ^)" 2^^,

где - множители Лагранжа, введенные, чтобы обеспечить положительность коэффициентов ^. Тогда условия Каруша - Куна - Таккера для основной проблемы примут следующий вид:

= - ^ «улу = 0, дwv ^

дЬр _ db

_-2 а;У; _0,

^ = С-«7-цг. = 0,

Уг + Ь)- 1 + > 0, > 0, «7 > 0, ц > 0, «7

^ ^ = 0,

где 7 изменяется от 1 до числа точек обучающей выборки, у - от 1 до размерности пространства, в котором проходит обучение.

Условия Каруша - Куна - Таккера выполняются для любой задачи условной оптимизации (неважно - выпуклой или нет), если выполняется ряд условий (подробнее [2, 3]). Данное предположение для метода опорных векторов носит технический характер, так как в данном методе условия всегда линейны. Более того, имеет место задача выпуклого программирования, для которой (если соблюдаются условия регулярности) условия Каруша - Куна -Таккера необходимы и достаточны для существования решения. Таким образом, решение задачи метода опорных векторов аналогично нахождению решения условий Каруша - Куна - Таккера.

Чтобы определить величину Ь, можно использовать дополнительные уравнения (9) и (10). Из уравнений (8) и (9) следует, что ^ = 0 при « < С. Таким образом, можно взять любую точку обучающей выборки, для которой 0 < «7 <С, чтобы вычислить Ь. Аналогично случаю линейной разделимости в целях повышения точности можно взять среднее арифметическое значений Ь для каждой точки выборки [4, 5].

3. Машинное обучение для анализа текста и определения частей речи 3.1. Линейная разделимость для бинарного алгоритма

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

Пусть существует множество точек X е [0,1] . Все точки, большие 0,5, принадлежат классу У1, меньше - у-1. Очевидно, что классы не пересекаются.

В качестве обучающей выборки рассмотрим множество X случайных точек с нормальным распределением N (ц, о2), где математическое ожидание

ц = 0,5, среднеквадратическое отклонение о = 0,05. Это не обязательное условие поможет повысить репрезентативность выборки и осуществлять более уверенную классификацию. Впрочем, данное утверждение носит эвристический характер. Вполне возможно использовать и другое распределение.

На рис. 6 показан результат работы алгоритма при использовании различных обучающих данных из к элементов. Точки ниже оси абсцисс относятся к классу у_1, выше - У1. Синим обозначены точки, которые были неверно классифицированы.

046

а)

б)

-0.5

-1.0+ ••••••••••••••••••••

в)

Рис. 6. Демонстрация работы алгоритма с линейной разделимостью: а, б - при к = 15; в - при к = 45

Следует отметить, что тезис о том, что точность классификации зависит не только от размеров выборки, но и от ее структуры, подтвердился на практике. Из рис. 6 видно, что при одинаковом размере выборки точность может различаться. Расчеты были проведены в системе Wolfram Mathemati-ca 9.0.

3.2. Линейная неразделимость для бинарного алгоритма

Пусть теперь X е^ . В качестве критерия для разделения на классы будем использовать какую-либо прямую L. Точки выше нее (красные на рис. 7) отнесем к первому классу, ниже (синие) - ко второму.

Для обучающей выборки возьмем набор точек, равномерно распределенных в квадрате [0,1] х [0,1] (на рис. 7 часть синих точек вдали от классификатора удалена, чтобы повысить репрезентативность выборки и уменьшить

время обучения). Кроме того, обеспечим некоторый шумовой вброс: на малом удалении е (на рис. 7 е = 0,04) от классифицирующей прямой некоторые точки в обучающих данных могут быть отнесены к ошибочному классу.

Рис. 7. Пример обучающей выборки с линейной неразделимостью

При параметре C = 16 результаты работы алгоритма представлены на рис. 8. Зеленым обозначена разделяющая полоса, ярко-зеленая прямая посередине полосы - непосредственно сам построенный классификатор. На краях полосы отчетливо видны опорные векторы. В данном случае обучающая выборка состоит из 233 векторов, из них 10 опорных и 70 нарушителей, по которым и строится классификатор. Расчеты были проведены в системе Wolfram Mathematica 9.0.

3.3. Процедура классификации в анализе текста и задаче определения частей речи

Алгоритм классификации и сам анализ текста требуют наличия большой репрезентативной выборки для обучения и некоторой модификации алгоритмов бинарного разделения. Дело в том, что число частей речи в языках достигает порядка 15-20 значений, и их распознавание в самом простом случае может потребовать множественного применения бинарного разделения.

Для проведения численного эксперимента в качестве обучающей выборки была использована часть национального корпуса русского языка Син-ТагРус [6]. В ней содержатся примеры текстов на разные темы с полностью размеченными характеристиками в формате XML: части речи и многое другое (рис. 9). В теги <se> заключены границы предложений, в тегах <w> слова, а в атрибутах <ana gr=""> характеристики слов. Из ряда перечисленных характеристик для поставленной выше задачи интересна лишь первая из них -часть речи слова.

;.4 :• г Js i:

Рис. 8. Демонстрация работы алгоритма с линейной неразделимостью

<se>

<w><ana 1ех="позиция" gr="S,f,inan=sg,nom"></ana>no3'иция</ы> <w><ana 1ех="налоговый" gr="A=m,sg,gen,p1en"></ana>нал~огового</ы> <w><ana 1ех="орган" gr="S,m,inan=sg,gen"></ana>'opraHa</w> . </se> <se>

<w><ana 1ex="cpoK" gr="S,mДnan=p1,acc"></ana>ср~оки</w> <w><ana 1ex="действие" gr="S,n,inan=sg,gen"></ana>A~ействия</ы> <w><ana 1ex="договор" gr="S,m,inan=sg,gen"></ana^ огов'opa</w>; </se>

Рис. 9. Разметка текста в формате XML национального корпуса русского языка СинТагРус

В табл. 1 представлены все части речи из состава СинТагРус и соответствующие им номера у7 е Y (номера присвоены в процессе проведения численного эксперимента и могут быть изменены при необходимости). Отметим особо yii - нонлекс и уп - инициалы. К первым относятся слова, не относящиеся к русским, а также написанные транслитерацией; ко вторым - непосредственно инициалы или аббревиатуры.

Важно отметить, что задача определения частей речи не является задачей бинарной классификации, которая была подробно рассмотрена выше. Существуют некоторые подходы, которые позволяют сразу же проводить многоклассовую классификацию методом опорных векторов [7], однако обычно используют стратегию «один против всех». Идея этого метода -в последовательном отделении классов друг от друга. Например, для разде-

ления объектов на три класса можно решить три задачи бинарной классификации: разделение на классы 1 и (2, 3); 2 и (1, 3); 3 и (1, 2).

Таблица 1

Значение у^ и соответствующая ему часть речи

Уг Часть речи

1 Местоимение-наречие

2 Существительное

3 Союз

4 Вводное слово

5 Числительное

6 Глагол

7 Предлог

8 Частица

9 Предикатив

10 Наречие

11 МОМЬБХ

12 Числительное-прилагательное

13 Местоимение-предикатив

14 Прилагательное

15 Местоимение-существительное

16 Инициал

17 Местоимение-прилагательное

18 Междометие

Остановимся подробнее на выборе характеристик (признаков) для обучения. Выбор признаков - это процесс, который часто применяется для создания обучающих наборов данных для задач прогнозирующего моделирования, например, задач классификации или регрессии. Целью этого является выбор подмножества признаков из исходного набора данных, уменьшение его размеров с помощью минимального набора признаков для представления максимального отклонения в данных. Это подмножество признаков является именно тем подмножеством, которое должно быть включено в обучение модели. Выбор признаков служит двум основным целям.

1) выбор признаков часто повышает точность классификации, исключая несоответствующие, избыточные или сильно коррелирующие признаки;

2) он сокращает число признаков, что повышает эффективность процесса обучения модели. Это особенно важно для затратных в плане обучения моделей, к которым относится и метод опорных векторов.

Несмотря на то, что выбор признаков нацелен на сокращение числа признаков в наборе данных, используемых для обучения модели, он зачастую не связан с термином «сокращение размерности». Методы выбора признаков извлекают поднабор из исходных признаков в данных без каких-либо изменений. Методы сокращения размерности используют реконструированные признаки, которые могут преобразовывать исходные признаки и соответственно изменять их. Примеры методов сокращения размерности: анализ главных компонентов, анализ канонических корреляций и сингулярная декомпозиция.

Для начала разберемся, как обычный человек определяет, к какой части речи относится слово:

• Обычно мы знаем, к какой части речи относится знакомое нам слово. Например, мы знаем, что «съешьте» - это глагол.

• Если нам встречается слово, которое мы не знаем, то мы можем угадать часть речи, сравнивая с уже знакомыми словами. Например, мы можем догадаться, что слово «сингулярность» - это существительное, так как имеет окончание «-ость», присущее обычно существительным.

• Мы также можем догадаться, какая это часть речи, проследив за цепочкой слов в предложении.

• Длина слова также может дать полезную информацию. Если слово состоит всего лишь из одной или двух букв, то скорее всего это предлог, местоимение или союз.

Конечно, для компьютера эта задача будет несколько сложнее, так как у него нет той базы знаний, которой обладает человек.

Постараемся смоделировать обучение компьютера, используя доступные нам данные. Программа выделяет из базы отдельные предложения после чего разбивает каждое предложение на последовательность слов. Для каждого слова задается набор характеристик:

1) само слово;

2) окончание (две и три последних буквы);

3) приставка (две и три первые буквы);

4) части речи двух предыдущих слов;

5) длина слова.

Так как не все из характеристик числовые, необходимо дать им некоторое числовое значение.

Первое и очевидное решение - задать 8 характеристик; нечисловым характеристикам поставить в соответствие некоторую хэш-функцию. Пример таких векторов приведен в табл. 2.

Таблица 2

Слово ХэшСл ПЧР ППЧР Ок2 Ок3 При2 При3 Длина

притча 1 0 0 1 1 1 1 6

пример 2 0 0 2 2 1 1 6

Примечание: ХэшСл - хэш-код слова; ПЧР - предыдущая часть речи; ППЧР - позапрошлая часть речи; Ок2/Ок3 - хэш-код последних 2/3 букв; При2/При3 - хэш-код первых 2/3 букв; Длина - длина слова в буквах.

Очевидно, что одинаковым характеристикам в соответствие ставятся одинаковые числа. Значение 0 в ПЧР и ППЧР означает, что данному слову не предшествуют никакие другие - оно первое в предложении (или распознается слово в отдельности).

Однако точность такой модели окажется крайне низкой (около 20 %), что обусловлено двумя факторами:

1) при большом объеме выборки хэш-коды принимают большие значения, что снижает точность при расчетах и может приводить к ошибкам в силу особенностей машинной арифметики;

2) даже при нормировке вектора точность не будет высока (около 40 %). Причина кроется в том, что выбранная нумерация слишком произвольна и не может адекватно описать слово.

Поэтому воспользуемся другим подходом. Вынесем каждую приставку или окончание, которые встретится в обучающей выборке, в отдельную характеристику. Аналогичным образом поступим со словами. Если такая характеристика присутствует в слове, то ее значение положим равным 1, в противном случае 0 (табл. 3).

Таблица 3

Слово ПЧР ППЧР Длина пр(п) при(п) ча(о) тча(о) притча пример

притча 0 0 6 1 1 1 1 1 0

пример 0 0 6 1 1 0 0 0 1

Примечание. обозначение (п) - приставка, (о) - окончание.

В примере выше в выборке всего два слова, но даже в ней опущена часть характеристик. В силу того, что каждое слово само по себе уже является характеристикой, то количество параметров обучения не меньше, чем число слов в обучающей выборке. В доступной для скачивания части СинТагРус 13670 предложений и 44383 различных слов. Учитывая приставки и окончания, суммарное количество параметров обучения достигает 51097 различных характеристик. В то же время в каждом конкретном слове отличны от нуля не более 8 из них. После того как обучающая выборка смоделирована, можно начать процесс обучения.

3.4. Реализация алгоритма и результаты классификации частей речи русского языка

Алгоритм распознавания частей речи был реализован на языке программирования C++ с использованием библиотеки LIBLINEAR. Это библиотека с открытым исходным кодом для линейных моделей машинного обучения. Она позволяет быстро обучать модели с разреженными матрицами и очень большим числом характеристик. Авторы утверждают, что их библиотека создана для обучения по выборкам из миллионов таких объектов.

Программа запускается из командной строки и имеет простейший интерфейс. Входные данные поступают из файла, имя которого указывается при запуске. Файл должен содержать текст в кодировке UTF-8. Если в параметры запуска передать команду «train», модель будет переобучена заново.

Эффективность алгоритма (табл. 4, 5) была оценена при помощи метода перекрестной проверки: обучающие данные делятся на n частей, после чего по (n - 1) части проходит обучение, а на оставшейся части проверяется точность предсказания.

Таблица 4

Зависимость точности алгоритма от размера обучающей выборки

Число предложений/слов Точность алгоритма

4794/16961 94,11 %

6839/25758 94,01 %

13670/44383 94,65 %

Однако такие высокие результаты обусловлены отчасти тем, что метод перекрестной проверки, широко используемый в машинном обучении, здесь не совсем уместен. В табл. 5 на законодательных текстах получена точность в 96 %, но при проверке вручную на тексте другого жанра точность будет гораздо ниже.

Таблица 5

Зависимость точности алгоритма от тематики обучающей выборки

Тематика текста Число предложений Точность

Художественный 3045 90,74 %

Законы 1749 96,88 %

Научный 2045 92,14 %

Точность порядка 87-95 % на произвольном тексте достигается лишь при использовании всего Национального корпуса русского языка.

Заключение

В работе рассматривалось применение метода опорных векторов и машинного обучения для решения задач классификации объектов. Были построены примеры обучающих выборок и проведена процедура разделения объектов в системе Wolfram Mathematica 9.0:

- в случае линейного классификатора (линейная разделимость и линейная неразделимость);

- в случае нелинейного классификатора.

В работе был предложен алгоритм классификации для анализа текста и определения частей речи русского языка в текстах различной тематики. Данный алгоритм обработки текста требует для качественного анализа наличия большой репрезентативной выборки, например, база Национального корпуса русского языка, Британский национальный корпус (BNC), Корпус современного американского английского (COCA). Предложена эффективная схема выбора характеристик (признаков) для построения процедуры обучения.

Эффективность алгоритма проверялась в том числе и при использовании Национального корпуса русского языка, в котором содержатся примеры текстов на разные темы с полностью размеченными характеристиками в формате XML (части речи и многое другое). Обучение шло на выборках объемом порядка 5-13 тысяч предложений и содержащих около 180 000 словоупотреблений, причем число характеристик для каждого слова, по которым определялось его принадлежность к той или иной части речи, достигало 51 000.

Процедура машинного обучения продемонстрировала эффективность порядка 87-95 % для анализа частей речи в предложениях различной тематической направленности (на примере русского языка).

Авторы выражают благодарность отделу корпусной лингвистики и лингвистической поэтики Института русского языка им. В. В. Виноградова РАН за предоставление базы Национального корпуса русского языка.

Библиографический список

1. Флективные языки. - URL: http://dic.academic.ru/dic.nsf/bse/145088/%D0%A4%D0% BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5

2. Fletcher, R. Practical methods of optimization / R. Fletcher. - 2nd edition. - New York : John Wiley and Sons, Inc., 1987. - 436 s.

3. McCormick, G. P. Non Linear Programming: Theory, Algorithms and Applications / G. P. McCormick. - New York : John Wiley and Sons, Inc., 1983. - 444 s.

4. Christopher, J. C. Burges. A Tutorial on Support Vector Machines for Pattern Recognition / J. C. Christopher // Data Mining and Knowledge Discovery. - 1998. -Vol. 2. - P. 121-167.

5. Воронцов, К. В. Лекции по методу опорных векторов / К. В. Воронцов. -URL: http://www.ccas.ru/voron/download/SVM.pdf

6. Национальный корпус русского языка. - URL: http://www. ruscorpora.ru

7. Crammer, K. On the learnability and design of output codes for multiclass problems / K. Crammer, Y. Singer. - Computational Learning Theory. - San Francisco, 2000. -P. 35-46.

References

1. Flektivnye yazyki [Inflexional languages]. Available at: http://dic.academic.ru/ dic.nsf/bse/145088/%D0%A4%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0% B2%D0%BD%D1%8B%D0%B5

2. Fletcher R. Practical methods of optimization. 2nd edition. New York: John Wiley and Sons, Inc., 1987, 436 p.

3. McCormick G. P. Non Linear Programming: Theory, Algorithms and Applications. New York: John Wiley and Sons, Inc., 1983, 444 p.

4. Christopher J. C. Data Mining and Knowledge Discovery. 1998, vol. 2, pp. 121-167.

5. Vorontsov K. V. Lektsii po metodu opornykh vektorov [Lectures on support vector machines]. Available at: http://www.ccas.ru/voron/download/SVM.pdf

6. Natsional'nyy korpus russkogo yazyka [The Russian National Corpus]. Available at: http://www. ruscorpora.ru

7. Crammer K., Singer Y. On the learnability and design of output codes for multiclass problems. Computational Learning Theory. - San Francisco, 2000, pp. 35-46.

Тарасов Дмитрий Викторович

кандидат технических наук, доцент, кафедра высшей и прикладной математики, Пензенский государственный университет

E-mail: tarasovdv@mail.ru

Романов Никита Алексеевич магистрант, Московский государственный университет имени М. В. Ломоносова

E-mail: nikromanov1995@gmail.com

Tarasov Dmitriy Viktorovich Candidate of engineering sciences, associate professor, sub-department of higher and applied mathematics, Penza State University

Romanov Nikita Alekseevich Master's degree student, Lomonosov Moscow State University

УДК 004.9 Тарасов, Д. В.

Процедура машинного обучения в задаче морфологической разметки текста и определения частей речи в флективных языках / Д. В. Тарасов, Н. А. Романов // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2017. - № 1 (41). - С. 56-72. Б01 10.21685/20723059-2017-1-5