Информационная система для создания размеченных корпусов малой размерности
Автор: Котов Андрей Александрович, Некрасов Михаил Юрьевич, Седов Алексей Владимирович, Рогов Александр Александрович
Журнал: Ученые записки Петрозаводского государственного университета @uchzap-petrsu
Рубрика: Физико-математические науки
Статья в выпуске: 8 (129) т.1, 2012 года.
Бесплатный доступ
Описывается информационная система, позволяющая создавать грамматически и синтаксически размеченные корпуса. Приводится модель, на основе которой построена система. Содержится краткий анализ существующих русскоязычных размеченных корпусов текстов и их особенностей, сравнение этих корпусов с корпусами, созданными при помощи описываемой системы.
Размеченные корпуса, система грамматической разметки, система синтаксической разметки, проблемы омонимии
Короткий адрес: https://sciup.org/14750312
IDR: 14750312
Текст научной статьи Информационная система для создания размеченных корпусов малой размерности
ЛИНГВИСТИЧЕСКИЕ КОРПУСА
Корпусная лингвистика – молодое направление прикладной лингвистики. Являясь разделом языкознания, она занимается выявлением закономерностей функционирования языка через его анализ и изучение с помощью лингвистического корпуса. Корпусная лингвистика включает в себя два аспекта:
-
• создание и разметка (аннотирование) корпусов текстов и разработка средств поиска по ним,
-
• экспериментальные исследования на базе корпусов [7].
Различают корпуса с морфологической (грамматической), синтаксической, акцентной и прочими разметками. Зачастую при создании корпуса используется смешанная разметка.
Перечислим основные корпуса русских текстов, существующие на данный момент:
-
1. Национальный корпус русского языка (НКРЯ) ( http://www.ruscorpora.ru/ ) – наиболее крупный и известный корпус русских текстов.
-
2. Хельсинкский аннотированный корпус русских текстов ХАНКО ( http://www.slav.helsinki.fi/ hanco/ index.html).
-
3. Корпус русского литературного языка ( http://www.narusco.ru/ ).
-
4. Открытый корпус OpenCorpora (http://www. opencorpora.org/) – находящийся в разработке корпус с открытым кодом.
-
5. Корпус русских публицистических текстов второй половины XIX века СМАЛТ ( http://smalt . karelia.ru/corpus/index.phtml), разработанный в ПетрГУ.
Здесь перечислены далеко не все существующие корпуса русского языка. НКРЯ, например, состоит из целого ряда более мелких специализированных корпусов.
Сравнение корпусов
Все рассматриваемые корпуса содержат морфологическую (или грамматическую) разметку, хотя сами наборы морфологических признаков отличны. Синтаксическая разметка не присутствует в корпусе русского литературного языка, в OpenCorpora она заявлена, но доступа к ней пока нет. В тех же корпусах, где есть синтаксическая разметка, она представлена различными подходами. Синтаксическая разметка ХАНКО опирается на общепринятые классификации традиционной описательной грамматики – в рамках не раз подвергавшейся обоснованной критике теории членов предложения. Синтаксическая разметка НКРЯ построена на классификации, доступной узкому кругу специалистов и требующей детального предварительного знакомства. Она представлена в терминах деревьев зависимостей и синтаксических отношений, принятых в теории «Смысл-Текст».
В корпусе СМАЛТ в основу синтаксической разметки положена идея структурной схемы предложения, восходящая к трудам представителей Пражского лингвистического кружка и получившая развитие на почве русского языка благодаря работам Н. Ю. Шведовой и ее последователей [1], [5]. Синтаксическая разметка - это следующий этап обработки корпуса текстов (после морфологической), она позволяет решать потенциальному адресату (в первую очередь лингвисту) целый спектр различных научно-исследовательских задач как в сфере русского, так и общего синтаксиса. В частности, на ее основе можно судить о частотном соотношении двух- и однокомпонентных предикативных структур в русском языке, о формальных способах выражения предикативных отношений, о развитии синтаксического строя русского языка. Подобный анализ позволяет объективировать и упорядочить, насколько это возможно, систему разметки. Отметим, что все пути синтаксического аннотирования в целом решают разные задачи, имеют свои достоинства и недостатки и представляют интерес для различного рода лингвистических исследований.
Если сравнивать представительность корпусов, то НКРЯ отличается от остальных корпусов сбалансированностью и многообразием текстов. Однако это достоинство НКРЯ порождает и главный недостаток крупных корпусов - слабую точность разметки. Некоторые из проектов, в рамках которых создавался НКРЯ, предусматривали краткие сроки разработки и автоматическую разметку. В связи с этим процент брака и неточностей в этой разметке существенен. Наибольший процент неточностей в автоматически размеченных грамматических корпусах возникает из-за проблемы омонимии1 . В изначальном варианте НКРЯ омонимия снималась вручную, и размер корпуса был невелик [6]. Однако потом стало происходить значительное расширение корпуса и во многих случаях переход на автоматическую разметку, оставляющую омонимию. При автоматической разметке, как правило, в случае омонимии слову ставятся в соответствие все возможные наборы параметров. Сейчас в НКРЯ подавляющая часть корпуса хранится без снятия омонимии. Для СМАЛТ было принято решение выбрать основным фактором создания корпуса не большой размер, а высокую точность и однозначность разметки. Высокая точность разметки достигается при использовании специалистов-филологов, часть работы должна проделываться ими вручную довольно тщательно.
Учитывая это, при разработке универсальной программы по созданию размеченных корпусов небольшого размера было решено разработать специальные программы для грамматической и синтаксической разметки текстов, с которыми должны работать специалисты. Программы должны удовлетворять следующим особенностям.
-
• Пользователь должен иметь возможность настроить программу для определения / изменения грамматических или синтаксических параметров слова или предложения.
-
• Разбор должен быть максимально удобен, прост и быстр.
В основе работы программы грамматической разметки корпуса СМАЛТ лежит универсальная модель построения корпуса с грамматической разметкой.
МОДЕЛЬ ПОСТРОЕНИЯ КОРПУСА С ГРАММАТИЧЕСКОЙ РАЗМЕТКОЙ
Корпус представляет собой набор текстов Texts = {Т, T 2 , „., T n }. В общем случае каждый текст может быть представлен в виде группированного набора слов T . = {w j (j' - номер слова в тексте). Для удобства навигации по корпусу лучше вводить дополнительные структурные единицы текста. Далее будем обозначать отдельное слово текста, как w . В общем случае posAtr: w ^ Pos g Positions c N k . Positions = ( Pos 1 , Pos 2,..., Pos k). Здесь для слова w задается k его координат в тексте. Примерами дополнительных структурных единиц текста могут быть: главы, параграфы, абзацы, предложения. Модель предусматривает объединение мельчайших структурных единиц (слов) в словосочетания. Каждое словосочетание представимо в виде некоторого подмножества из слов предложения. SS j = { w , , wi2 ,..., wik } c S , причем U SS j = S (отдельные слова в модели можно тоже Принимать за словосочетания). Каждое слово может входить только в одно словосочетание, поэтому пересечение любых двух словосочетаний всегда пусто: SSk П SS l = 0 , при к Ф l .
Кроме позиции для каждого слова необходимо определять набор его морфологических параметров. Для существительного это могут быть: падеж, число, род, одушевленность / неодушевленность. Сами морфологические параметры представляют собой еще один вектор: intAtr: w ^ intParams g Nk : intParams = ( Param , , Parsm2 ,..., Param) где k - количество грамматических признаков слова. Морфологические признаки закодированы натуральными числами. Расшифровка этих признаков хранится в отдельном конфигурационном файле и при необходимости может быть изменена администратором программы или даже самим пользователем.
Было решено хранить морфологические признаки в виде дерева. Структуру дерева можно описать следующим образом:
MorfAtrs:G=
V(i, j) g E, либо i g MorfParams, j g MorfItems, либо i g MorfItems, j g MorfParams. Иными словами, различают множество морфологических параметров MorfParams и значений этих параметров MorfItems. Ребро (i, j) ∈ E, i ∈ MorfParams, j ∈ MorfItems характеризует принадлежность значения j параметру i.
Для каждого слова имеется возможность определять ряд дополнительных строковых параметров. Причем для каждого корпуса они могут быть индивидуальны: нет необходимости их встраивать для всех корпусов. При создании программы универсальной разметки необходим механизм инициализации произвольного количества таких параметров. Форм а льно StrAtr: w → strParams = {strParami}, i = 1 ,l , структура же strParams задается пользователем в отдельном конфигурационном файле.
В результате каждому слову ставится в соответствие кортеж: w → < Pos , intParams , sParams > (позиция слова, морфологический разбор и некоторые строковые атрибуты слова), который можно считать грамматической разметкой данного слова.
ПРОГРАММА ГРАММАТИЧЕСКОЙ РАЗМЕТКИ
Процесс грамматического разбора текста делится на 2 этапа: э тап преформатирования и этап разметки.
Этап преформатирования
На вход программы подается текст в кодировке Unicode, который необходимо разметить. При загрузке текста программа автоматически разбивает текст на структурные компоненты: главы, абзацы и предложения. Это первый этап разбора текста – этап преформатирования. Он проходит в полуавтоматическом режиме: программа на основании ряда эмпирических правил разбивает текст на структурные единицы, после чего пользователь проверяет правильность этого разбиения и при необходимости редактирует его.
Этап разметки
Следующим этапом является грамматический разбор текста. Пользователю выводится текст, где возможна только покомпонентная навигация. Это значит, что при грамматическом разборе пользователь может перемещаться по структурным компонентам текста, в данном случае по словам. В нижней части экрана выводится информация о разборе текущего слова, пользователь может изменить ее. Разбор представляет собой ряд выпадающих списков для морфологических признаков и поля для ввода необходимой текстовой информации. Слова, не размеченные ранее пользователем, выделяются красным цветом, размеченные слова выделяются зеленым.
В программе имеется возможность объединения нескольких слов в словосочетания, образующие составную часть.
Автоматическая грамматическая разметка
В системе грамматического разбора реализован алгоритм автоматической разметки. Система ищет (по написанию) текущее разбираемое слово в словаре, в случае удачного поиска пользователю выдается разбор найденного слова в качестве разбора текущего. Далее пользователь может изменить разбор или сохранить предложенный. Чтобы избежать постоянного обращения к базе данных в процессе разбора, автоматическая разметка всех неразмеченных слов текста производится до того, как пользователь приступил к проверке, по окончании этапа преформатирования.
Отметим основные проблемы автоматической разметки.
-
1. Некоторые слова остаются неразмеченными, так как не все слова есть в словаре. Стоит отметить, что с расширением словаря неизвестных слов становится все меньше.
-
2. С расширением словаря остро проявляются проблемы омонимии . Она заключается в том, что для некоторого слова в словаре может содержаться несколько вариантов его атрибуции, поэтому встает вопрос, как выбрать из них верный. Один из вариантов решения этой проблемы представлен в виде следующей модели. Рассматриваются триады: тройки подряд идущих слов ν 1, ν 2 и ν 3 с соответствующими им разборами a 1, a 2 и a 3. Порядок слов считается важным. Введем n ( ai , V ) понятие вероятности разбора P ( ai ) i i ,
где n ( ai , ν i ) – количество встречаемых в кор i пу-се разборов ai слова ν i, а N ( ν i ) – общее количество разборов слова, встречаемых в корпусе. Запишем: P ( a 1 a 2 a 3) = α P ( a 3) P ( a 2 | a 3) P ( a 1| a 2 a 3) + + (1 – α ) P ( a 1) P ( a 2 | a 1) P ( a 3 | a 1 a 2).
Основу формулы составляют два слагаемых, каждое из которых представляет собой формулу условной вероятности. Разбор a3, на котором достигается максимум функции P(a3), принимается как разбор по умолчанию в случае омонимии. Весовой коэффициент α задает степень влияния каждого слагаемого на итоговую сумму. Если триады слов ν1 ν2 ν3 ранее не встречались в корпусе в данном порядке, рассматривается уже двойка слов, для которой приводятся аналогичные результаты. Eсли двойка не встречалась, в качестве разбора ai слова νi принимает-n(ai,Vi ся argmaxP(ai ) i i , то есть самый часто i N( Vi)
встречаемый в корпусе разбор слова ν i .
Приведем общий алгоритм автоматической грамматической разметки в виде псевдокода:
Цикл по всем словам в тексте Количество вхождений текущего слова в словаре равно?
Если 0 => слово разбирается с нуля Если 1 => найденный разбор – разбор по умолчанию
Если больше 1, цикл по каждому разбору i Количество слов перед текущим в предложении?
Если 0 => α 1 = 1, k1 = P(a3)
Если 1 => α 1 = 2, k1 = P(a3)P(a2 | a3) Если больше 1 => α 1 = 3, k1 = = α P(a3)P(a2 | a3)P(a1 | a2a3)
Количество слов после текущего в предложении?
Если 0 => α 2 = 1, k2 = P(a1)
Если 1 => α 2 = 2, k2 = P(a1)P(a2 | a1) Если больше 1 => α 2 = 3, k2 = = P(a1)P(a2 | a1)P(a3 | a1a2) α = α 1 / ( α 1 + α 2)
P i = α k1 + (1- a ) k2
P = max P
i
МОДЕЛЬ ПОСТРОЕНИЯ КОРПУСА С СИНТАКСИЧЕСКОЙ РАЗМЕТКОЙ
Опишем модель построения синтаксического корпуса СМАЛТ. Корпус представляет собой набор текстов Texts = { T1, T2 , …, Tn }. В отличие от грамматического разбора, минимальной структурной единицей текста здесь, в зависимости от выбранного подхода к синтаксической разметке, могут выделяться не только слова, но также предложения, части предложений либо клаузы2. Рассмотрим вариант с разбиением текстов на клаузы.
Определим формально понятие клаузы. Для этого возьмем за основу предложение S , позиционированное в тексте. Данное предложение разбивается на части и может быть представлено как множество: S = { Part 1 , Part 2 , …, Part n}. В этом виде клаузы предложения представимы в виде некоторого подмножества из частей предложения. Clj = { Parti1 , Parti2 , ..., Partik } ⊂ S , причем U Cl j =S и, вообще говоря, пересечение клауз м j ожет быть непустым. Резюмируя это, отметим два основных момента: каждая клауза может быть разбита на несколько частей внутри одного предложения; некоторые части предложения могут входить сразу в несколько клауз. Разметка клаузы очень проста: Clj → Scheme ∈ N
В результате была разработана модель разбора, при котором предложения текста могут разделяться на части, а эти части группируются в клаузы, причем важен порядок этой группировки. Например, предложение поделено на 4 части: Part1 , Part2 , Part3 , Part4 . Если объединяется Part1 и Part3 , а затем Part3 и Part4 , то получается единая клауза Part1 - Part3 - Part4 . Если объединяется Part1 и Part3 , а затем Part1 и Part4 , то организуется ветвление и в итоге получаются две клаузы Part1 - Part3 и Part1 - Part4 . Текст представляется в виде графа, в котором части предложения являются вершинами, а связные комбинации вершин образуют клаузы.
ПРОГРАММА СИНТАКСИЧЕСКОГО РАЗБОРА
Программа для синтаксической разметки имеет структуру, схожую со структурой программы для грамматической разметки. Однако из-за описанных особенностей модели синтаксического разбора в программе существует и ряд отличий. Разбор текста также делится на 2 этапа: этап преформатирования и этап синтаксической разметки.
Этап преформатирования аналогичен этапу преформатирования грамматического разбора. Отметим, что разбиение предложения на части и объединение частей в клаузы для удобства пользователей проводится на этапе разметки.
На этапе синтаксической разметки пользователь сопоставляет каждой клаузе текста одну из синтаксических схем путем выбора одной из них из списка, предложенного на нижней панели. Пользователь имеет возможность редактировать разметку текста и разбивать предложения на части. Отдельно выделяется текущая клауза, которая размечается в данный момент, и выводится контекст этой клаузы. Покомпонентная навигация программы позволяет пользователю передвигаться по частям предложения. Основная сложность для разметчика кроется в правильном разбиении предложения на части и сцеплении этих частей в клаузы.
ПРИМЕНЕНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
На базе описанной выше информационной системы были построены несколько корпусов: корпус СМАЛТ и корпус финноязычных текстов.
Подробнее про создание корпуса СМАЛТ написано в [4] и [2]. Основу корпуса составляют пу-блицистическиетекстыразнойтематикиизпетер-бургских журналов XIX века в дореволюционной графике, при этом все слова ретранслируются и в современную графику. В корпусе присутствует метаразметка текстов по следующим параметрам: автор текста, журнал, дата написания. Корпус на данный момент состоит из 101 текста, из них 74 содержат грамматическую разметку и 95 – синтаксическую. В грамматически атрибутированных текстах корпуса содержится 169 136 слов. Количество лексем в грамматической части корпуса равно 21 630, словоформ – 48 320. В синтаксической части корпуса размечено 47 336 клауз. Строковые параметры корпуса СМАЛТ – начальная форма, современное написание и современное написание начальной формы.
Подробнее про корпус финноязычных текстов написано в [3]. Корпус состоит из 107 статей газеты «Karjalan Sanomat», содержащих грамматическую разметку. Строковые грамматические параметры корпуса финноязычных текстов – начальная форма и перевод слова.
ПРЕДОСТАВЛЕНИЕ ДОСТУПА К КОРПУСАМ
Для доступа к корпусам было решено использовать веб-ресурс, предоставляющий возможности просмотра информации о корпусе, списке публикаций, авторах, а также поиска интересующей информации в корпусе с возможностью выбора только необходимых текстов (формиро- вание собственного подкорпуса). Доступ к корпусу СМАЛТ расположен по адресу: http://smalt. karelia.ru/corpus/index.phtml. Корпус финноязычных текстов находится в тестовом режиме, доступ к нему пока не открыт.
На данном ресурсе пользователь может ознакомиться с текстами корпусов, осуществить поиск по заданным параметрам.
ЗАКЛЮЧЕНИЕ
Проанализировав различные существующие на данный момент корпусы и сравнив их с корпусом СМАЛТ, разрабатываемым в ПетрГУ, мы пришли к следующим выводам.
-
• Корпус СМАЛТ не претендует на представительность и полноту НКРЯ, однако он изначально планировался как корпус со специфическим содержанием и точной разметкой.
-
• Синтаксический подкорпус СМАЛТ построен на принципе разметки, не применяемом в
других крупных русскоязычных корпусах, и поэтому может быть интересен определенному кругу исследователей.
-
• Универсальность моделей и программ, используемых для разметки корпуса СМАЛТ и корпуса финноязычных текстов, позволяет использовать их для создания различных корпусов, в том числе и для специфических языков.
-
• Наличие как оригинальной графики, так и современного написания слова и начальной формы в корпусе СМАЛТ делает его интересным для исследователей дореволюционного русского языка и его связи с современным языком.
Размеченный корпус СМАЛТ может быть использован при научных изысканиях в области истории языка, грамматики, лексикографии, а также при изучении соответствующих курсов студентами филологических специальностей. Кроме того, он может быть востребован специалистами по литературе XIX века.
* Работа выполнена при поддержке Программы стратегического развития (ПСР) ПетрГУ в рамках реализации комплекса мероприятий по развитию научно-исследовательской деятельности на 2012–2016 гг.
Список литературы Информационная система для создания размеченных корпусов малой размерности
- Грамматика современного русского литературного языка/Под ред. Н. Ю. Шведовой. М.: Наука, 1970.
- Котов А. А., Гурин Г. Б., Седов А. В., Некрасов М. Ю., Сидоров Ю. В., Рогов А. А. Особенности создания электронного ресурса «материалы к синтаксическому словарю»//Российский научный электронный журнал «Электронные библиотеки», Том 13 -Выпуск 2, 2010 г. [Электронный ресурс]. Режим доступа: http://elbib.ru/index. phtml?page=elbib/rus/journal/2010/part2/KGSNSR
- Петрова А. А., Ленина А. А. Результаты совместного проекта РГНФ -АФ «перевод с финского на русский и с русского на финский в поликультурном мире»: создание лингвистического корпуса финноязычных текстов газеты «Karjalan sanomat» и его перспективы [Электронный ресурс]. Режим доступа: http://www.petrsu.ru/Faculties/Balfin/AAPetrova_2011.html
- Рогов А. А., Гурин Г. Б., Котов А. А. Некоторые особенности грамматически размеченного корпуса по русской публицистике второй половины XIX века//Труды международной конференции «Корпусная лингвистика-2008». СПб., 2008. С. 326-333.
- Русская грамматика/Под ред. Н. Ю. Шведовой. М.: Наука, 1980. Т. 1, 2.
- Сичинава Д. В. Национальный корпус русского языка: очерк предыстории//Национальный корпус русского языка: 2003-2005. М.: Индрик, 2005. С. 21-30.
- Энциклопедическая статья «Корпусная лингвистика»//Электронный портал «Фонд знаний Ломоносов» [Электронный ресурс]. Режим доступа: http://www.lomonosov-fund.ru/enc/ru/encyclopedia:01210:article