Сборник 2002

ФРАГМЕНТАЦИОННЫЙ АНАЛИЗ РУССКОГО ПРЕДЛОЖЕНИЯ В СИСТЕМЕ ARTEFACT

 

 

Л. М. Гершензон

ЗАО «Интегрум-Техно»

leva@integrum.ru

 

Д. В. Панкратов

ЗАО «Интегрум-Техно»

pankrat@integrum.ru

 

 

Ключевые слова: фрагментационный анализ, сегментация, ИПС, информационный поиск, контекстные ограничители.

 

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

 

 

  1. Введение

 

Использование всевозможной морфологической информации о слове (лемма, часть речи, граммемы, морфемы ) в информационно поисковых системах  уже давно стало привычным. С увеличением  объема поступающей информации  назрела необходимость в применении более глубокого анализа  текста. Мощность современных компьютеров позволяет с помощью сложных алгоритмов анализировать большие массивы текстов за разумное время. Фрагментационный анализ является базовым модулем (разумеется, после морфологии ) в уже более менее устоявшейся цепочке лингвистических процессоров, осуществляющих обработку текста, результатом которой должно стать смысловое (семантическое, концептуальное …) представление текста.

ИПС Artefact (www.integrum.ru),  обладая всем арсеналом традиционных поисковых средств, является одной из самых мощных промышленных русскоязычных информационно-поисковых систем. Однако уже давно осознана необходимость в новых алгоритмах анализа, и разработка фрагментационного анализа является первым шагом, сделанным в этом направлении.

 

 

2.    Цель фрагментационного анализа

 

Целью фрагментационного анализа является разбиение русского предложения на фрагменты (или клаузы) с возможным установлением на полученном множестве отношений подчинения и сочинения. По [Тестелец 2001, с.  256], клауза - это «любая группа, в том числе и не предикативная, вершиной которой является глагол, а при отсутствии полнозначного глагола – связка или грамматический элемент, играющий роль связки».  Это определение  в основном применимо к выделяемым в нашей системе клаузам. Мы выделяем следующие типы клауз:

  1. Простое предложение.
  2. Придаточное предложение.
  3. Деепричастный оборот.
  4. Обособленный причастный оборот.
  5. Вводный оборот.

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

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

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

 

 

3.    Актуальность для задач ИП

 

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

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

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

Информация о вершинах клауз и их валентностях помогает в задачах автоаннотирования, «извлечения  информации из текста» (information extraction).

 

 

  1. Общее описание алгоритма

 

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

 

 

 

5.    Описание рабочих словарей

 

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

 

5.1. Словарь союзов.

 

В словаре описаны простые и сложные, сочинительные и подчинительные союзы.

В статье любого союза содержится следующая информация:

  • из каких слов состоит союз.
  • где может стоять запятая.
  • расположение в клаузе.
  • требование к вершине клаузы.

 

Пример статьи:

ЗГЛ= для_того_чтобы

{

СОСТАВ= для того (,|) чтобы

Н_ЧР = подч_союз

ПОЗ= начало

СОЮЗ_УПР= ((ЧР =инф) | (ЧР =глаг МИ= прош))

}

 

СОСТАВ= для того (,|) чтобы – союз состоит из слов «для», « того» и «чтобы», запятая может стоять перед союзом или перед словом «чтобы».

Н_ЧР = подч_союз – это подчинительный союз.

ПОЗ= начало  - союз должен стоять в начале клаузы.

СОЮЗ_УПР= ((ЧР =инф) | (ЧР =глаг МИ= прош)) – вершиной клаузы, содержащей союз,  может быть либо инфинитив, либо глагол в прошедшем времени.

 

5.2. Словарь предикативов.

 

В словаре описаны модели управления для предикативов.

 

Пример статьи:

ЗГЛ= необходимо

{

Н_ЧР = предик

УПР=    (         (ПОЗ = справа ЧР =инф СИН_О = доп_сказ) |

                             (ТИП = фрагмент ПОЗ = справа СОЮЗ = чтобы СИН_О = доп)

  )

(           ПОЗ = слева ЧР =сущ, сущ_мест, личн_мест МИ = дт СИН_О = подл_дат МОД = возможно)

}

 

Н_ЧР = предик – это предикатив.

В поле УПР содержится модель управления:

Первая валентность может заполняться либо инфинитивом, стоящим справа:

(ПОЗ = справа ЧР =инф СИН_О = доп_сказ),

либо придаточным предложением с союзом чтобы:     

(ТИП = фрагмент ПОЗ = справа СОЮЗ = чтобы СИН_О = доп).

Вторая валентность заполняется именной группой в дательном падеже, стоящей слева от предикатива.

( ПОЗ = слева ЧР =сущ, сущ_мест, личн_мест МИ = дт СИН_О = подл_дат МОД = возможно)

В поле МОД записано насколько необходимо заполнение этой валентности.

 

5.3.                    Словарь шаблонов возможных вершин клаузы.

 

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

 

Пример статьи:

ЗГЛ = _инфинитив

{

ЧР = инф

УПР = (ПОЗ = справа ТИП = фрагмент СОЮЗ_ЧР = подч_союз, нар_союз, мест_союз МОД = возможно)

}

 

ЧР = инф - статья описывает  клаузы с вершиной, выраженной инфинитивом.

УПР = (ПОЗ = справа ТИП = фрагмент СОЮЗ_ЧР = подч_союз, нар_союз, мест_союз МОД = возможно) – клауза может подчинять стоящие справа клаузы с подчинительными союзами (подч_союз, нар_союз, мест_союз).

 

 

6.                Разбиение на примитивные клаузы

 

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

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

Дом, который построил Джек, развалился.

Примитивные клаузы: (1) Дом (2) который построил Джек (3) развалился

Полноценные клаузы: (1) Дом развалился (2) который построил Джек

Для разбиения на примитивные клаузы используется словарь союзов.

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

  1. Глагол в личной форме.
  2. Императив.
  3. Краткое прилагательное.
  4. Краткое причастие.
  5. Предикатив.
  6. Деепричастие.
  7. Причастие.
  8. Сравнительная степень прилагательного.
  9. Инфинитив.

 

По информации из словаря шаблонов для вершины или словаря предикативов определяем, какие валентности у нее заполнены.

Таким образом, про каждую примитивную клаузу имеется следующая информация:

  1. Вершина или множество возможных вершин.
  2. Информация о заполненности валентностей вершин.
  3. Союз или множество союзов, присутствующих в клаузе.

 

 

  1. Описание правил

 

Правило принимает на вход две соседние клаузы (в частном случае две примитивные клаузы).

Правило описывает одну из трех возможных операций над клаузами и условия применения этой операции.

Возможны три типа операции над клаузами:

  • Объединения.

Пример:

( (1) Джек построил дом, (  (2) стоящий на пригорке, )  )  ( ( 3) и сарай).

К моменту применения операции объединения клауза (2) уже должна быть вложена в клаузу (1). Тогда, объединяя клаузы (1) и (3), получаем новую клаузу  Джек построил дом (…) и сарай, а клаузы (1) и (3) удалены.

 

  • Сочинения.

Пример:

( (1) Джек построил дом,) ( 2) а Джон построил сарай.)

В этом случае операция сочинения создаст новую клаузу (3) Джек построил дом, а Джон построил сарай, включающую в себя клаузы(1) и (2).

 

  • Подчинения.

( (1) Джек построил дом,) ( (2)  который развалился.)

В этом случае операция подчинения расширит правую границу клаузы (1), вложив в нее клаузу (2).

 

Условия содержат в себе следующие требования:

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

 

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

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

 

Пример правила[1]: 

«Сочинение однородных придаточных предложений»

  • Характеристики первой клаузы.

Вершины: глагол в личной форме, краткое прилагательное, краткое причастие, предикатив.

Союзы: любой подчинительный союз.

У вершины заполнена валентность на подлежащее.

  • Характеристики второй клаузы.

Вершины: глагол в личной форме, краткое прилагательное, краткое причастие, предикатив.

Союзы: сочинительный союз без запятой или запятая в начале клаузы.

У вершины заполнена валентность на подлежащее.

  • Общие условия:

      При отсутствии у второй клаузы сочинительного союза подчинительный союз второй клаузы (если он есть) должен совпадать с подчинительным союзом первой клаузы.

 

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

 

Примеры работы правила:

Он увидел дом, ( (1)который построил Джек,) ( (2)и развалил Джон).

Правило должно сочинить клаузы (1) и (2). Результат является «достоверным».

Он думал, ( (1) что Джек знал,)  ( (2)что Джон развалил его дом).

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

 

 

  1. Описание алгоритма применения правил

 

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

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

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

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

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

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

Вес всего варианта складывается из следующих составляющих:

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

 

 

  1. Практические результаты

 

Система тестировалась на новостных сообщениях, взятых с сайта www.lenta.ru. Экспериментально было установлено, что примерно 80% предложений анализируются правильно (считалось, что предложение разобрано неправильно, если хотя бы одна клауза выделена неправильно или неправильно приписана информация к клаузе).

 

 

  1. Дальнейшее развитие системы

 

Ведутся работы по внедрению этой системы в ИПС Artefact. Результаты работы системы предполагается использовать следующим образом:

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

Также предполагается разработка поверхностного синтаксического анализа на базе фрагментационного анализа.

 

 

Литература

 

  1. Тестелец Я.Г., Введение в общий синтаксис. М. , РГГУ, 2001.

 

 

 

Fragmentation module in information retrieval system Artefact

  1. M. Gershenzon, D. V. Pankratov

 

 

Key words: fragmentation analysis, information retrieval system.

 

In this report we will describe the fragmentation analysis module which divides a Russian sentence into simple clauses and builds some syntactic relations between clauses. This is an essential module in any robust linguistic processor, dealing with natural text analysis.

The algorithm consists of two stages:

  1. It divides Russian sentence by punctuation marks into simple segments and tries to determine these segments’ roots.
  2. Applying fragmentation rules it tries to unite simple segments into full clauses and to build syntactic relations between them.

Using this module in information retrieval system like Artefact provides more precise results.

 

 

[1] В таком виде это правило будет работать только для сочинительных союзов, которые не требует перед собой запятой («и», «или» и др.), для остальных сочинительных союзов правило будет чуть изменено.