РОССИЙСКИЙ НАУЧНЫЙ ЭЛЕКТРОННЫЙ ЖУРНАЛ Электронные библиотеки
2008 - Том 1 - Выпуск 1

Особенности создания электронного ресурса "материалы к синтаксическому словарю"

Котов А.А., Гурин Г.Б., Седов А.В., Некрасов М.Ю., Сидоров Ю.В. Рогов А.А. (ПетрГУ)

 

Аннотация

В статье описывается размеченный корпус текстов публицистики XIX века в оригинальной графике (http://smalt.karelia.ru/corpus/index.phtml), обосновывается выбор теории и параметров разметки, обсуждаются некоторые сложности аннотирования. Основу корпуса составляют тексты В. И. Даля, Ф. М. Достоевского и близких ему публицистов.

Ключевые слова: морфология, дореволюционная графика, публицистика XIX века, тексты В.И. Даля, Ф.М. Достоевского, параметры разметки, аннотирование, грамматические параметры, морфоанализатор.

Выбор грамматического аннотирования

За основу для системы грамматического аннотирования мы использовали Словарь Зализняка, составленный А.А. Зализняком словарь 100 тыс. базовых словоформ русского языка с их полным морфологическим описанием. Основополагающий труд по морфологии, где впервые был предложен системный подход к описанию грамматических парадигм, включающих не только изменение буквенного состава слов, но и ударения. Словарь впервые был издан в 1977 г., с тех пор неоднократно переиздавался.

Главное различие нашего словаря и словаря Зализняка в том, что наш словарь основан на русском языке XIX века, который несколько отличается от современного.  Особенностью словаря XIX века является то, что слова пишутся в дореволюционной графике, то есть в состав слов могут входить устаревшие ныне символы: θ, i, ђ, и может несколько отличаться написание слов. Кроме того, в словаре мы не содержится информация об ударениях. Примеры грамматических признаков: часть речи, падеж, число, время и т.д. Грамматические параметры для словаря были сформулированы филологами Петрозаводского государственного университета.

Структурная модель грамматического словаря XIX века

Основная сложность формирования структуры грамматического словаря в хранении грамматических параметров и значений. Известны следующие основные варианты структур хранения грамматических параметров и значений:

  • Линейная. При этом варианте на каждый параметр, встречаемый в словаре,  отводится по отдельной ячейке памяти. Это наиболее простой для реализации, но вместе с тем самый неэффективный с точки зрения занимаемой памяти. Наборы параметров и значений хранятся в линейной структуре, что является наиболее эффективным вариантом.  Однако тут же налицо нерациональное использование памяти самого словаря. В реальности каждому слову соответствует не более 12 параметров, в среднем где-то 4. При таком же варианте хранения данных каждому слову, в любом случае, ставится в соответствие более 80 параметров, из которых большинство остаются пустыми. Такой словарь довольно эффективно хранить в заархивированном виде. Эта модель используется в словаре программного комплекса «Атрибуция», разработанного ранее в рамках данного проекта.
  • Хранение пар «параметр-значение».  При этом варианте каждому слову ставится в соответствие набор таких пар. Эта модель тоже довольно проста для считывания и восстановления информации из БД словаря. Вместе с тем точки зрения затрачиваемой памяти она ощутимо эффективнее первого варианта. Параметры и значения хранятся в виде таких пар, что менее эффективно, чем в линейной структуре. Однако в самом словаре необходимо хранить ощутимо меньше ссылок на пары параметров значений (не больше 12). Такая модель используется в словаре «Конкордансы Даля», разработанного в нашем университете.
  • Хранение параметров и значений в виде дерева, где для каждого параметра содержится набор зависимых от него значений, а для каждого значения хранится набор зависимых от него параметров. Эту схему хранения используем мы в нашей системе.

Сравнение эффективности структур

Введем обозначения:

  • Константы:

Pn– число используемых грамматических параметров словаря

Vn[1..Pn] – количества грамматических значений, соответствующие граматическим параметрам

Max1 – наибольшая длина (в параметрах) ветки дерева разбора

DepP[1..Vn] – числа зависимых параметров для значений

DepV[1..Pn] – числа зависимых значений для параметров

  • Переменная: N – число слов в словаре

Далее сравним эффективности хранения словаря, его структуры и сложность восстановления информации из словаря.

  • Линейная

Хранение структуры: Pn*max(Vn[i])

Хранение словаря: N* Pn

Восстановление информации: O(n)

  • Пары «параметр-значение»

Хранение структуры: 2*Vn[i]

Хранение словаря: N* max1

Восстановление информации: O(max1)

  • Дерево

Хранение структуры: Pn*max(DepV[i] + Vn[i]*max(DepP[i])

Хранение словаря: N* max1

Восстановление информации: O(max1)

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

Система разбора текстов

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

  • Существуют сложные знаки препинания, служащие концами предложения: «…», «?..», «!..» и пр. При автоматическом разборе каждый из этих знаков будет разделен на составные и  получится, что в одном месте заканчиваются 3 предложения. Эта проблема решается путем добавления дополнительных проверок и определения подобных знаков препинания, как единого целого.
  • Еще одна проблема заключается в том, что точка (как и остальные общепринятые признаки концов предложения) не всегда свидетельствуют о завершении предложения. Часто точка, например, является признаком сокращения («…г. Волошин…»). Иногда вышеназванные знаки ставятся внутрь прямой речи, не являясь при этом признаками завершения предложения. Иногда эту проблему можно решить путем анализа следующего слова: если оно начинается с прописной буквы, то можно сделать вывод о том, что рассматриваемый знак препинания не является концом предложения. Но если следующее слово начинается с заглавной буквы, это не гарантирует, что знак являлся концом предложения.

Учитывая вышеописанные проблемы, этап преформатирования сделан полуавтоматическим, то есть после автоматического разбиения специалист

Скриншот этапа преформатирования

Рис. 1 Скриншот этапа преформатирования.

Следующим этапом является грамматический / синтаксический разбор текста (приложение 5, скриншот 2). Пользователю выводится текст, где возможна только покомпонентная навигация. То есть, в окне грамматического разбора пользователь перемещается по словам, в окне синтаксического разбора – по предложениям. По просьбам специалистов, работающих с программой, в ней также реализованы различные варианты поиска. Для выделения слов в тексте используется механизм регулярных выражений, для выделения предложений – информацию из  ранее проведенного этапа преформатирования. Важно отметить серьезные сложности при разбиении слов. Дело в том, что некоторые части речи (составные) бывают представимы набором слов, причем не всегда подряд стоящими (союзы «если-то»). Исходя из этого, в системе в дальнейшем предполагается ввести опцию объединения нескольких слов в одну часть речи. Пока же филологам приходится каждую из компонент составной части речи разбирать так же, как бы они разбирали всю часть речи.

Скриншот этапа грамматического разбора

Рис. 2 Скриншот этапа грамматического разбора.

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

1) Уменьшается скорость работы системы из-за постоянного обращения к базе данных словаря.

2) Так как не все слова есть в словаре, некоторые слова все-таки остаются без автоматического разбора. Хотя стоит отметить, что с расширением словаря неизвестных слов становится все меньше (сейчас их в среднем меньше 5%). Все-таки значительную часть любого текста составляет довольно небольшой запас слов (предлоги, частицы, союзы, личные местоимения).

3) С расширением словаря остро проявляются описанные во введении проблемы омонимии. То есть любому написанию слова соответствует несколько вариантов разбора, а выбрать из них правильный автоматически представляется практически невозможно.

Выбор синтаксического аннотирования

ХАНКО; http://www.slav.helsinki.fi/hanco/ index.html), либо на доступные узкому кругу специалистов и требующие детального предварительного знакомства классификации. Такова, например, разметка в терминах деревьев зависимостей и синтаксических отношений, принятых в теории "Смысл-Текст", используемая в Национальном корпусе русского языка (http://www.ruscorpora.ru). Эти пути аннотирования в целом решают разные задачи и имеют свои достоинства и недостатки.

Теория членов предложения не разграничивает различСуществующие на сегодняшний день корпусы со встроенной синтаксической разметкой опираются либо на общепринятые классификации традиционной описательной грамматики (Хельсинкский аннотированный корпус русских текстов ные аспекты его организации. Ее несомненный плюс - это внешне очевидные процедурная простота и доступность, позволяющая вполне успешно применять эту теорию в практике средней школы, причем при изучении не только родного, но и иностранного языка. Впрочем, простота обманчива, если учитывать множественность способов морфологического выражения того или иного члена предложения, свойственную русскому языку. Минусы теории не менее очевидны: это в первую очередь нечеткость и множественность критериев выделения, далеко не всегда бесспорных; во-вторых, ориентация на установление поверхностных синтаксических связей и отношений между членами предложения, которые могут быть не единичны, и тогда, например, возникает принципиально компромиссное понятие дуплексива.

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

В создаваемом корпусе в основу синтаксической разметки положена идея структурной схемы в понимании Н. Ю. Шведовой и ее последователей, впервые отчетливо заявленная в "Грамматике современного русского литературного языка", позднее наиболее полно отраженная и развитая в "Русской грамматике".

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

Основа синтаксического аннотирования в корпусе

На данный момент мы можем говорить о том, что в научном обороте существуют как минимум три списка структурных схем – различные как количественно, так и качественно: 1) список схем "Русской грамматики" (1980); 2) список «минимальных схем» В. А. Белошапковой; 3) список схем О. А. Крыловой и Е. Н. Ширяева. Последние на основе достаточно убедительного теоретического обоснования значительно переработали и дополнили исходный список свободных структурных схем "Русской грамматики".

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

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

Свободные структурные двухкомпонентные схемы

А. Раздельнопредикативные схемы

1. Подлежащно-сказуемостные схемы

1а. С координируемыми главными членами

  • N1+Vf: Иван  читает газету; Пиши письмо; Ты бы подумал.
  • N1+(сор)+N1: Бог есть любовь.
  • N1+Adj: День сегодня холодный; Старики ворчливы.
  • N1+Part: Брак расторгнут.

1б.С некоординируемыми главными членами.

  • N1+ N2…(Adv): Отец в саду; Сад недалеко.
  • N1+Inf: Мой долг – воспрепятствовать вам; Какая мука — воспитывать!
  • N1+(сор)+Praed: Шахматы — это здорово.
  • Inf+Praed(part): Читать неохота, Курить вредно.
  • Inf+(сор)+N1: Помогать ему – моя обязанность.
  • Inf+Vf3s: Рассчитывать на большее не приходится.
  • Inf+Pronneg: Спорить тут не о чем.
  • Inf+Inf: Курить — здоровью вредить.

2. Неподлежащно-сказуемостные схемы.

  • N2+(не) Vf3s: Беды не случится.
  • N2/N4+(не) Praed(part): Следов не видно, Нарушений не обнаружено, Людей жаль.
  • N4+ Vf3s: Ивана укачивает.
  • N2+N1quant (Adv quant): Народу толпа, Ягод полно.
  • N2+нет: Замечаний нет.
  • N3+ Vf3s: Ей не спится.
  • N3+Praed: Мне лень.
  • N2+никого/ничего: Народу никого.

Б. Слитнопредикативные схемы

  • Praed(part) N4/N2: Жалко девочку, Видно следы, Не видно следов, Не жалко денег, Нажарено пирожков.
  • N1quant(Adv quant) N2: Масса дел.
  • Praed(part) Inf: Время разбрасывать камни, Нужно держаться, Приказано отступать.
  • Pronneg Inf: Не с кем поговорить.
  • Нет N2: Нет денег.
  • Vf3sN2: Прибавилось забот.
  • Vf3s Inf: Придется уступить.
  • Никого/Ничего N2: Никого народу.
  • Ни N2: Ни души.

Свободные структурные однокомпонентные схемы

1. Спрягаемо-глагольные.

  • Vf3s: Холодает.
  • Vfpl3: Звонят.

2. Именные.

  • N1: Ночь.
  • N2: Народу-то!
  • N2/N4: Чаю! Шампанского! Ваши документы!
  • Adjpl  кратк: Нам были рады; Вами недовольны.

3. Инфинитивные.

  • Inf: Стоять смирно!

4. Наречные.

  • Praed(part): Холодно, Занято.

Классификация фразеологизированных схем в разметке не используется. Все единицы такого рода единообразно и получают статус фразеологизированных без дальнейшей детализации. Это связано с тем, что более или менее подробной и полной компромиссной классификации этих типов структур нет: в "Русской грамматике" (1980) их всего 14, а в сводном списке синтаксических фразем М. В. Копотева таких единиц 79. Однако в планах разработчиков провести разметку и этого массива синтаксических объектов после составления компромиссной классификации.

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

Используемые структуры данных

Основой информационной системы является база данных, в которой хранится информация о синтаксических разборах текстов. Следовательно, первоначальной задачей была разработка структур данных для хранения информации. Основным структурным элементом синтаксической разметки, подвергаемым разбору, является клауза – минимальная предикативная единица, которая может выступать в качестве самостоятельного простого предложения или составной части сложного предложения. В составе сложной синтаксической структуры клауза может быть разбита на несколько частей. Например, предложение «Вася пошел в бассейн, который открылся на днях, и плавал там до вечера», очевидно, делится на три части  «Вася пошел в бассейн», «который открылся на днях», «плавал там до вечера», однако оно состоит из двух клауз: «Вася пошел в бассейн  и плавал там до вечера»,  «который открылся на днях». Поэтому, для осуществления разбора текст разбивается на главы, главы – на абзацы, абзацы – на предложения, предложения на части, из которых впоследствии формируются клаузы. При этом одна часть предложения может принадлежать нескольким клаузам. Рассмотрим случай, когда предложение содержит несколько однородных сказуемых. Предложение «Чудище обло, озорно, огромно, стозевно и лаяй» состоит из 5 клауз, причем слово «чудище» участвует во всех пяти. Предлагается  структура данных, для которой это предложение разбивается на 6 частей:

P1=”Чудище
P2=”обло
P3=”озорно
P4=”огромно
P5=”стозевно
P6=”лаяй
Из этих частей составляются 5 клауз:
CL1={P1, P2};
CL2={P1, P3};
CL3={P1, P4};
CL4={P1, P5};
CL5={P1, P6}.

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

Программа синтаксического разбора

Для создания базы данных была разработана программа разбора (рис. 3). На вход программы подается текстовый файл формата .txt в кодировке unicode. На его основе создается рабочий проект, содержащий несколько файлов, с информацией о разбиении текста на структурные части, о синтаксическом разборе и прочие служебные файлы. При загрузке текста программа автоматически разбивает текст на структурные компоненты: главы, абзацы и предложения. Признаком новой главы является знак параграфа, расположенный первым на строке, признаком нового абзаца является табуляция, символами конца предложения являются точка, восклицательный и вопросительный знаки и т.д. На данном этапе могут возникать такие же проблемы с автоматическим разбиением текста как и на этапе преформатирования. Кроме того, есть появляется и новая проблема, связанная с тем, что стандартным признаком конца абзаца являются символы перевода строки. Однако перевод строки может использоваться и внутри текста, например в стихотворных отрывках. Выходом для большинства таких случаев будет проверка на то, заканчивалось ли предложение прямо перед переводом строки.

Скриншот этапа синтаксического разбора

Рис. 3. Скриншот этапа синтаксического разбора.

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

Оптимизация работы программы

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

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

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

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

1. Статистический метод

На основе разобранных текстов мы выбираем наиболее часто встречаемую схему, то есть схему, при помощи которой разбирается наибольшее количество клауз.

Результаты исследования:
Проведя анализ, мы выделили 7 наиболее употребляемых структурных схем. Они приведены в следующей таблице:


Схема

Количество

Частота

N1 + Vf

21195

58,5 %

N1 + Adj

3021

8,3 %

N1 + (cop) + N1

2344

6,5 %

N1 + Part

1474

4 %

Praed(part) Inf

1160

3,2 %

N1

1087

3 %

N1 + N2 …(Adv)

1038

2,9 %

Табл. 7 Статистика частотности употребления структурных схем

Общее количество проанализированных клауз = 36224. Как видно из результатов, при помощи схемы N1 + Vf   разбирается больше половины клауз текста. При таком подавляющем преимуществе можно говорить о целесообразности выбора этой схемы как схемы по умолчанию.

2. Анализ разбора предыдущей схемы

Суть метода в следующем: мы пытаемся предположить, что существует связь между разборами двух рядом стоящих схем. Тогда мы предлагаем определять начальный разбор текущей клаузы на основе разбора предыдущей. Для этого мы анализируем для всех структурных схем разборы клауз, следующих за клаузами, разобранными этими схемами, и выбираем самый распространенный из них. В процессе атрибуции, при выборе структурной схемы для текущей клаузы, следующая клауза будет атрибутироваться автоматически. В отличие от аналогичного подхода при грамматической атрибуции, в синтаксисе такой подход не кажется логичным. Однако мы все же решили провести вычисления и сравнить результаты.

Формально:

Есть структурная схема St;

Получаем набор клауз из текстов, атрибутированных ею Cl=(cl1,.. cln);

Получаем набор клауз, следующих за Cl : Clp=(clp1,.. clpn);

Группируем эти клаузы в зависимости от их разбора: Grij = {grij}, i – номер группы, j – номер клаузы в группе;

Для каждой группы записываем соответствующую ей структурную схему: Stpi;

Считаем количество клауз в каждой группе: Ni = {n1, n2 ,.., nk};

Ищем номер наибольшей группы  i* = argmax (n1, n2 ,.., nk);

Тогда предполагаемый разбор клаузы, следующей за клаузой с разбором St, будет  Sti*.

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

Можно рассматривать разборы не одной, а двух предыдущих клауз. Подробнее описывать этот метод не стоит по одной простой причине: как показало исследование этот и предыдущий методы абсолютно неэффективны. Учитывая, насколько одна структурная схема встречается чаще, чем все остальные, очевидно, что для любой схемы, следующей будет выбираться именно схема Ni + Vf .

То есть при применении методов анализа одной или двух предыдущих клауз, мы будем получать тот же результат, как и при применении статистического метода, только куда более алгоритмически сложно и ресурсоемко.

Из всего написанного можно сделать вывод, что наиболее эффективным будет применение статистического метода, выраженного в том, чтобы каждой схеме ставить начальным разбором структуру Ni + Vf. Этот метод будет давать верное предсказание примерно в 58,5 % случаев.

Представление и редактирование информации

Полученный в результате выполнения проекта размеченный корпус представляется конечным пользователям при помощи Web-ресурса, его адрес http://smalt.karelia.ru.   На нём представлена возможность формирования собственного подкорпуса из предложенных проанализированных текстов и получения статистических данных, таких как частота встречаемости синтаксической конструкции в выбранном подкорпусе. На Интернет ресурсе предоставлена возможность нахождения требуемой синтаксической конструкции в выбранном подкорпусе текстов, для чего пользователь вводит при помощи дополнительного окна список искомых конструкций, выбирает тексты, по которым будет производится поиск и нажимает на кнопку «найти». В результате открывается html страница, содержащая набор предложений, разбитый на группы по 10 предложений. Переход между группами осуществляется при помощи кнопок навигации, а также при помощи ввода номера группы и непосредственный переход к ней. По желанию, пользователь может ввести слово, которое должно содержаться в данной синтаксической конструкции. Имеется возможность получения контекста данного предложения, а также переход к целиком произведению, в котором содержалось данное предложение.

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

Оптимизация базы данных

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

Оптимизация по времени поиска.

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

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

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

Остановимся более подробно на определении среднего времени поиска. Поскольку слово может быть  как в современной орфографии, так и в орфографии языка XIX века, поэтому приходится производить поиск в базе по двум полям (словоформа и современное написание). Это выполнимо за линейное время. Необходимо иметь доступ к предложению, содержащему данное слово, тогда таблица для поиска должна содержать ссылки каждого слова на предложения, где оно может быть найдено. Обозначим за  t11 - время поиска слова, а за  t12 - время поиска всех слов из того же предложения по таблице, состоящей из слов, их современных написании и «координат» слов в тексте. Тогда время обработки одного запроса ti будет равно:

ti= t11+ t12.

В случае необходимости получения грамматических и синтаксических параметров для каждого слова можно хранить характеристики каждого слова в  той же таблице, добавив соответствующие поля:

а) Добавив на каждый грамматический признак соответствующий столбец + столбец на синтаксический параметр. При этом время поиска данных в БД изменится. Тогда время обработки одного запроса ti будет равно времени поиска слова t21+ времени поиска всех предложений содержащих слово  t22+ время, потраченное на поиск значения определённого параметра в соответствующей таблице . Общее время поиска составит ti = t21+ t22+ t23

б) Добавив 15 столбцов (по максимальному числу различных грамматических параметров + вид синтаксической конструкции). Тогда время обработки одного запроса ti будет равно времени поиска слова + время поиска всех предложений содержащих слово t32 + время на поиск признака в таблице t33 и расшифровку значения определённого параметра в соответствующей таблице tрек.расш.

Общее время поиска: ti = t31+ t32+ t33 + tрек.расш.

Можно осуществлять хранение в одной таблице самого слова, начальной формы и грамматических параметров, а принадлежность к определённому предложению перенести в отдельную таблицу.  Тогда время обработки одного запроса ti будет складываться из времени потраченного на поиск слова t41,  время на поиск предложений во второй таблице t42 , время на поиск слов оставшихся слов в первой таблице и время на расшифровку параметров ( ti = t41+ t42+ t43 +tрек.расш). При данной структуре таблиц мы перестаём хранить избыточную информацию (если одно слово употребляется очень часто, то оно не копируется, а используется одна ссылка.) Преимущество - меньше записей в таблице - меньше время поиска.

В результате получаем несколько видов таблиц для различных видов поиска. Обозначим за aij - среднее время j-того вида поиска при использовании i-того вида таблиц. Тогда введём i = β1ai1 + β2ai2 +... + β10ai10 - функция, характеризующая среднее время, которое тратится на поиск пользователем необходимой информации. Коэффициенты  - определяют предпочтение определённого вида поиска. Изначально все коэффициенты βj  приравнивались к  k = 1/число видов поиска

(использование различных типов запросов является равновероятным). В результате выбирается структура данных обеспечивающая наименьшее время.

Причина, по которой рассматривается среднее время поиска, состоит в следующем: предполагается, что изначально пользователя (специалиста) интересуют все слова одинаково. В дальнейшем, при сборе информации относительно "излюбленных" слов можно модернизировать БД с учетом статистики запросов по конкретным словам. То есть требуется построение и упорядочивание данных таким образом, чтобы наиболее часто искомые слова находились вначале.

Оптимизация по объёму.

Время – не единственная характеристика для оптимизации БД. Важным параметром БД является её объём. Можно максимально сократить объём базы данных и при этом получить очень сложный поиск, и наоборот, создав очень быстрый поиск, мы сталкиваемся с проблемой не эффективного использования памяти. Поэтому для исследуемых баз данных рассматривали характеристику Q = i /M - соотношение скорости получения информации к объёму БД. И на основании данной величины производился выбор подходящей структуры.

Так одним из вопросов было хранение знаков препинания в базе. Поскольку изначально в системе не предполагалось их использование, то данные о них не содержаться в базе. Но специалистам впоследствии потребовалось отображение не только искомых слов, но так же контекста. Поэтому возник вопрос о необходимости включения знаков пунктуации и других специальных символов в базу: с одной стороны это позволит убрать обращение к тексту оригинала, но с другой стороны это увеличит размеры базы, усложнит поиск и потеряется связь с оригиналом (при случайном удалении части текста в первом случае он исчезнет, а во втором случае будет отображён). Чтобы решить эту проблему, было решено произвести синхронизацию «оригинала» и разобранных слов, для чего в базу данных было добавлено положение слова в исходном тексте. Для отображения результатов используется текст оригинала, слова которого при выведении на экран помечаются идентификаторами. При нажатии на соответствующее слово происходит обращение к идентификатору и по данному идентификатору отображаются характеристики слова.

Вывод информации на экран пользователя.

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

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

Рис. 4. Задача определения среднего числа строк, занимаемых каждым из результатов поиска.

Пусть  А - число строк, помещающихся на экране, c‾ - среднее число строк после одного запроса, тогда величина S = A/c‾ - число результатов, которые должны быть представлены пользователю. Величина A - считается исходя из разрешения экрана, а c‾ - число символов результатов запросов поделённое на число запросов и на количество символов, помещающихся в одной строке, округлённое вверх.

Полученные результаты.

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

Скриншот главной поисковой страницы

Рис. 5. Скриншот главной поисковой страницы.

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

Было произведено наполнение базы данных текстами суммарным объемом более 100000 клауз из текстов, принадлежащие Ф.М. Достоевскому и его современникам, из журналов «Время» и «Эпоха», тексты В.И.Даля и ряд различных публицистических текстов XIX века. На данный момент размечено порядка 200 текстов.

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

Выявление ошибок и редактирование базы

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

Заключение

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

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

Литература

  • Рогов А.А., Гурин Г.Б., Котов А.А., Сидоров Ю.В. Морфологически размеченный корпус по русской публицистике второй половины XIX века. // Проблемы компьютерной лингвистики: сборник научных трудов/ под ред. А.А. Кретова. – Вып. 3. - Воронеж: Издательско-полиграфический центр Воронежского государственного университета, 2008. С. 209-219 – на рус. яз.
  • Рогов А.А., Гурин Г.Б., Котов А.А. Некоторые особенности грамматически размеченного корпуса по русской публицистике второй половины XIX века. // Труды международной конференции «Корпусная лингвистика - 2008». – СПб.: С.–Петербургский гос. университет, факультет филологии и искусств, 2008. С. 326-333. – на рус. яз.
  • Рогов А.А., Гурин Г.Б., Котов А.А., Сидоров Ю.В., Суровцева Т.Г. Программный комплекс «СМАЛТ». // Электронные библиотеки: перспективные методы и технологии, электронные коллекции: Труды 10 Всероссийской научной конференции «RCDL-2008» (Дубна, Россия 7-11 октября 2008г.). – Дубна: ОИЯИ, 2008. С. 155-160. – на рус. яз.
  • Некрасов М. Некоторые аспекты создания лингвистических баз данных. // Материалы юбилейной 60-й научной студенческой конференции. Петрозаводск, изд-во ПетрГУ, 2008 г.  С. 84-85. – на рус. яз.
  • Седов А. Технология организации доступа к лингвистически базам данных на примере ИАС «СМАЛТ». // Материалы юбилейной 60-й научной студенческой конференции. Петрозаводск, изд-во ПетрГУ, 2008 г. С. 86-87. – на рус. яз.
  • Некрасов М.Ю., Седов А.В. Особенности создания корпуса текстов с синтаксической разметкой // Труды XL международной научной конференции аспирантов и студентов. – СПб.: С.–Петербургский гос. университет, факультет прикладной математики – процессов управления, 2009. С. 485-490. – на рус. яз.
  • Рогов А.А., Гурин Г.Б., Котов А.А., Сидоров Ю.В., Седов А.В., Некрасов М.Ю. Некоторые особенности формирования электронного корпуса тестов с синтаксической разметкой // Электронные библиотеки: перспективные методы и технологии, электронные коллекции: Труды XI Всероссийской научной конференции «RCDL-2009» (Петрозаводск, Россия 17-21 сентября 2009г.). – Петрозаводск: КарНЦ РАН, 2009. С. 276-283. – на рус. яз.
  • Некрасов М. Некоторые особенности синтаксического корпуса текстов второй половины XIX века. // Материалы 61-й научной студенческой конференции. Петрозаводск, изд-во ПетрГУ, 2009 г.  С. 93-94. – на рус. яз.
  • Седов А. Организация доступа к синтаксическому разбору текстов на примере ИАС «СМАЛТ». // Материалы 61-й научной студенческой конференции. Петрозаводск, изд-во ПетрГУ, 2009 г. С. 92-93. – на рус. яз.
  • Рогов А.А., Гурин Г.Б., Котов А.А. Синтаксическая разметка в корпусе текстов по русской публицистике XIX века «СМАЛТ». / Проблемы компьютерной лингвистики: Сборник научных трудов/ под ред. А.А. Кретова. – Вып. 4. - Воронеж: Издательско-полиграфический комплекс АНО «Институт ИТОУР», 2010. С. 263-271. – на рус. яз.

 

 

 


Последнее обновление страницы было произведено: 2011-04-08

Все предложения и пожелания по содержанию и структуре портала направляйте по адресу rdlp@iis.ru