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

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

Манушкин Е.С.

Московский Государственный Институт Электроники и Математики, каф. ИТАС Введение

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

Ярким примером системы, работа которой основана на обработке таких параллельных текстов, может служить система Google Translate (http:\\translate.google.com\). Однако используемая для этой системы генеративная модель, предназначенная для трансфера при машинном переводе, не обеспечивает решения таких задач, как составление рефератов, машинный диалог, анализ содержимого текстов. В связи с этим задача полного анализа текстов на естественном языке сохраняет свою актуальность.

На основе работы с корпусами текстов развиваются статистические методы и для полного анализа. Так, например, ведутся работы по автоматизированному наполнению морфологических словарей за счет анализа несловарной лексики [І]. На основе статистического выделения n-грамм проводится снятие омонимии во входных текстах в ходе предсинтаксического анализа [2]. Однако генерация правил для самого сложного этапа - синтаксического анализа - до сих пор не проводится.

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

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

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

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

Метод автоматической генерации правил синтаксической сегментации уже был разработан для грамматики, записанной в виде форм Бэкуса- Наура (БНФ) [10]. В данной работе было поставлено целью, показать универсальность этого метода для правил синтаксического анализа, представляемых в формах, близких по концепции к контекстно-свободным грамматикам (КС грамматикам), на примере грамматики расширенных сетей переходов (ЛТК сетей). В данной работе будет показана связь, между нотациями БНФ и ЛТК, а так же показана возможность преобразования правил, записанных в БНФ, в форму представления ЛТК.

Данный метод был проверен на грамматиках русского и английского языка, представленных в форме ЛТК, полученных из имеющихся у автора грамматик, представленных в форме БНФ.

Обзор методов представления правил синтаксического анализа

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

Link Grammar

Оригинальный подход к синтаксическому анализу английского языка был предложен группой американских исследователей (Daniel Sleator, Davy Temperley и др.) университета Карнеги Меллон (Carnegie Mellon University). Проект получил название Link Grammar - грамматика соединений. Ученые отталкивались от основного свойства, лежащего в основе многих языков, в том числе и английского: если каждую пару слов из предложения соединить дугами отношений, то эти дуги не пересекаются [5].

Грамматика соединений состоит из набора слов (терминальных символов грамматики), каждому из которых приписан набор соединителей (коннекторов), объединенные формулой. В формуле коннекторов используются следующие связки: оператор дизъюнкции (OR), конъюнкции (&), опертор приоритета (скобки ‘(‘ и ‘)’), а так же операторы неограниченного повторения @ (аналог оператора Клини +) и оператор факультативности (фигурные скобки ‘{‘ и ‘}’). Каждый коннектор, в свою очередь, имеет тип, обозначаемый заглавной буквой латинского алфавита, и направление (‘+’ - правосторонний, ‘-‘ - левосторонний).

Входная последовательность слов является предложением языка, определенного грамматикой, если пары слов этой последовательности можно соединить дугами, состоящими из коннекторов одинакового типа и противоположных по направлению, удовлетворяющих формуле коннекторов, и при этом выполнены следующие условия (перевод терминов взят из [7]):

1. условие проективности (Planarity): дуги не пересекаются

2. условие полноты связей: (Connectivity): дуги соединяют все слова во входной последовательности

3. условие упорядоченности (Ordering): соединяемые дугами слова должны следовать в том порядке, в каком следуют однонаправленные коннекторы в формуле, объединенные знаком конъюнкции (это означает, что операция & несимметрична).

Например, для терминального символа W: A+ & B+ слово, соединяющееся с коннектором A+ должно быть левее слова, соединяющегося с B+, во входной последовательности;

4. условие исключения (Exclusion): одну пару слов можно соединить только одной дугой.

Приведем простой пример словаря для английского предложения: The cat chased a snake (Пример взят из [5]).

Слово Формула коннекторов

a, the D+

snake, cat D- &

chased S- & O+

Разбор этого предложения выглядит, как показано на иллюстрации (рис. 1):

г

DPD

SSS

d,Jd

the

cat

chased

snake

Рис. 1. Пример разбора с использованием LinkGrammar

- 95 -

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

Алгоритм анализа предложения основан на подходе динамического программирования [З, б]. Скорость рекурсивного алгоритма экспоненциально растет при увеличении длинны входной последовательности слов. Однако разработчики утверждают, что за счет стадии обработки, предшествующей основному алгоритму (Pruning), и за счет применения техники memoization (Donald Michie І9б8) и некоторых других усовершенствований основного алгоритма, разбор предложения происходит за время O(n3), где n - количество слов в предложении.

Грамматика соединений имеет программную реализацию (Link Parser) с открытыми исходными кодами на языке ANSI C, и имеет широкое применение в различных проектах, связанных с анализом текстов.

Расширенные сети переходов

Модель расширенных сетей переходов является продолжением идей контекстносвободных грамматик и конечных автоматов. Основной разработчик этой модели представления контекстно-свободных грамматик - Вильям Вудс (W. A. Woods).

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

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

Простой пример такой сети представлен на иллюстрации (рис. 2).

Рис. 2. Пример сети переходов в ЛТК-грамматике Верхний граф на иллюстрации является стартовым, дуги, помеченные КР и РР, реализуют переход в соответствующий конечный автомат, вершины д4, д5, д7, д8 и д10 - конечные состояния автоматов.

<8>

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

В своей статье [4], Вудс дает формальное описание языка для представления

сети в форме расширенной контекстно-свободной грамматики. В угловых скобках

(‘<’ и ‘>’) записаны нетерминальные символы, терминальные символы обозначены

большими латинскими буквами, вертикальной чертой обозначается оператор «или»,

звездочкой - оператор Клини (рис. 3).

(arc) —» (CAT (category name)(test)(action)* (term act))|

(PUSH <state)<test)(action)* (term act))|

(TST (arbitrary label)(test)(action)* (term act))|

(action) —» (SET 11 (register)(form))|

(SENDR (register)(form))|

(term act) —>• (TO (state)) i

(form) —» (GETR (register) )|

*1

(GETF (feature)) |

(BUILDQ (fragment)(register)*)|

(LIST (form)*)|

(APPEND (form)(form))!

Рис. 3. Пример записи ATN-грамматики у Вудса [4]

Терминальные символы (CAT, PUSH, TST, POP, JUMP, TO etc.) обозначают команды, которые производят переход в другой граф, сравнение параметров входного слова предложения, а так же построение дерева разбора предложения (подробное описание этих команд, а так же представление ATN сети для предыдущего примера см. в статье).

Из описания языка видно, что запись ATN сети состоит из набора записей, вида:

(Вершина1 (Набор команд 1) (Набор команд 2) ... (Набор

команд n))

Где (Набор команд 1), (Набор команд 2) ... (Набор команд n) -

дуги, исходящие из вершины 1.

Однако это не единственная форма представления ATN сетей, которой пользуются разработчики [11].

Модель расширенных сетей переходов широко используется в системах автоматической обработки текстов, в том числе и отечественными разработчиками. Например, отечественная компания ПРОМТ утверждает, что их «алгоритмическая основа «translation engines», построена на формализме расширенной сети переходов» (http://www.promt.ru/company/technology/promt/).

Формализм Бэкуса-Наура

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

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

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

Всем терминалам и нетерминалам из правой части правил приписываются их номера и номера их родительских символов для построения дерева разбора предложения.

Ниже приведена спецификация данной нотации в виде БНФ (терминальные символы заключены в кавычках):

<имя правила>::= <случай> | <случай>"|"<имя правила> <случай>::= <символ>|<символ><случай>

<символ>::= "["<id>":" <id_parent>";" <part>";"

<params>"]" +"<node_name>"+" | "{"<id>":" <id_parent>";" ” '

" <inf> ” ': " <part>";"<params>"} +"<node_name>”+" |

”<" <id>":" <id_parent> ";" <name_rule> ";" <params>">" <params>::= <param> | <param><params>

<param>::= <name_param> <id> <vl>

<vl>::= ” + " | ”#" <value> | ”-” <value> | <value>

Здесь part - название части речи, inf - нормальная форма слова, name_rule - имя правила, node_name - роль слова в предложении для образуемой вершины, id -идентификатор вершины, id_parent - идентификатор вершины-родителя (при отсутствии принимает пустое значение), name_param - название параметра, value -значение параметра. Терминальные символы записываются в квадратных либо в фигурных скобках, в зависимости от того, указана ли нормальная форма слова. Нетерминальные символы записываются в угловых скобках. Символами ‘+’, ‘#’ и ‘-‘ обозначаются действия, которые должны быть выполнены с данным параметром. Данная нотация используется в системе машинного перевода Crosslator 2.0.

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

Метод генерации правил синтаксической сегментации уже был разработан для нотации, используемой в системе машинного перевода Сго881а1ог 2.0 [10, 9]. Данный метод так же может быть применен и к некоторым другим нотациям, так или иначе использующим концепцию контекстно-свободных грамматик, что показывает универсальность метода. Мы выбрали нотацию ЛТК сетей, как наиболее близкую по концепции к нотации БНФ, и покажем, что при небольших изменениях данного метода, он может быть успешно применен для ЛТК сетей.

Как уже было сказано, АТН грамматика представляет собой набор графов, дугам которых может быть приписан некоторый алгоритм согласования. Продукции, записанные в БНФ, представляются в виде самостоятельных графов. Для каждой продукции такой граф будет иметь вид транспортной сети всего лишь с двумя вершинами, в которых возможно ветвление, - это начальная и конечная вершина. Это означает, что БНФ грамматики могут быть конвертированы в АТН. Но на практике графы в АТН грамматиках намного сложнее. Например, кроме ветвлений, такие графы могут содержать циклы, в том числе нулевые. Очевидно, такие графы нельзя преобразовать обратно в продукции, записанные в БНФ (хотя вполне возможно, что их можно преобразовать в расширенные БНФ), и, следовательно, предложенные методы вычисления функций Ргг812 и Ьа812 необходимо несколько изменить. Необходимые теоретические сведения

Наше представление расширенной сети переходов несколько отличается от представления, предложенного Вудсом [4]. В нашем представлении графу приписывается набор параметров, значения которых граф получает после удачного обхода, а дугам приписываются терминальные либо нетерминальные символы в том формате, который был представлен в публикации [10]. Графы будем обозначать буквой О с нижним индексом либо без него.

Напомним основные определения из [10], которые нам в дальнейшем понадобятся:

1) Параметр: р =< п, V >, где п — имя параметра, а V — его значение;

2) Входное слово: а =< а,Рк >, где а - нормальная форма и часть речи входного слова, а Рк = {р} - множество параметров, приписанных к данному слову;

3) Типизированный параметр рг =< п, V, t >, где 1 - тип параметра;

4) Терминальный символ а =< а, Р“ >, где Р“ ={ рг } - множество типизированных

параметров терминала а;

5) Нетерминальный символ А =< А, РА >, где Р/ - набор типизированных

параметров нетерминала А .

Так же напомним правило сравнения терминала и входного слова. После стандартных сравнений терминала с лексемой, параметры входного слова и терминала сравниваются по следующему правилу:

Ь = а : Ь =< Ь,Р^ >,а =< а,Р£ >,а ~ Ь, V/ = е [1,п] 3/ е [1,т]: Р'Ь ~ Ра .

Здесь Ь - терминал, а - входное слово, п и т - количество параметров у Ь и а, соответственно, а ~ Ь означает, что терминал успешно применим к входному слову (без учета согласования параметров), Р/ ~ Ра означает, что 1-й параметр множества Р{ь

успешно сравним с ]-м параметром множества Р.

Алгоритм согласования будет один для всех дуг. Положим, что на данном шаге алгоритма прохождения графа, мы находимся в некотором узле. Из этого узла выходят дуги cx, c2,..., ck. Будем считать, что мы можем успешно пройти по дуге ci,

если

1) В дуге ci содержится терминал, он успешно сравнился с очередным входным словом по правилу (I) и приписанные ему параметры согласуются с другими терминалами, содержащимися в уже пройденных дугах;

2) В дуге ci содержится нетерминал и мы успешно обошли граф,

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

После того, как мы проследовали по дуге c в следующий узел, мы запоминаем в

регистре дугу ci и присвоенные параметры символа этой дуги. Если мы возвращаемся

назад по этой дуге (например, в случае неудачного обхода последующих дуг), то необходимо стереть соответствующую запись в регистре.

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

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

При переходе к ATN грамматике, добавляется понятие - граф. Кроме того, в нашем представлении ATN грамматики параметры нетерминала не обязаны совпадать с параметрами графа, на который ссылается этот нетерминал, т.е. нетерминальный символ не всегда совпадает с графом, на который он ссылается. В связи с этим переопределим множества FIRST, LAST, FIRST2 и LAST2 для ATN грамматики.

Элементами множества FIRST(G) являются терминалы, с которых могут начинаться терминальные цепочки, выводимые из графа G. Элементами множества FIRST2(G) являются упорядоченные пары терминалов, с которых могут начинаться терминальные цепочки, выводимые из графа G. Элементами множеств LAST(G) и LAST2(G), являются соответственно терминалы и упорядоченные пары терминалов, на которых могут заканчиваться терминальные цепочки, выводимые из графа G.

Для нетерминалов данные множества вычисляются так же, как для графов, на

которые ссылаются эти нетерминалы. Например, если X - нетерминал ATN грамматики, а Gx - граф, на который ссылается этот нетерминал, то FIRST(X) = FIRST(GX).

Для терминальных символов, множества FIRST и LAST будут состоять из единственного элемента, которым является сам нетерминал, т.е. FIRST (a) = {a} и LAST (a) = {a}.

В данной статье мы будем вести рассуждения с учетом согласования символов в грамматике. Поэтому нас будут интересовать модифицированные множества FIRST,

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

Определим множество FIRST' состоящее из терминалов грамматики.

Рассмотрим все дуги графа G, исходящие из его начальной вершины. Пусть а -символ, приписанный такой дуге. Тогда:

если а является терминалом a =< a, Pa >, то a є FIRST'(G) ;

если а является нетерминалом A =< A, PA >, то Vb =< b, Pb >, b є FIRST'(X):

a є FIRST (G), a =< b, Pa > и Pa = Pb n PA.

Аналогично определим множества LAST’, только в случае LAST’ рассматриваются дуги, входящие в конечные вершины графа G (конечных вершин в графе может быть несколько).

Введем новое множество ONLY’, которое определяется аналогично множествам FIRST’ и LAST’, только в случае ONLY’ рассматриваются дуги, ведущие из начальной вершины в конечные вершины графа.

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

Для этого определим множества DirectFIRST2’(G) и DirectLAST2’(G), состоящие из пар терминалов, встречающиеся в терминальных цепочках, которые непосредственно выводятся из графа G.

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

с2 - дуги одной из таких пар, а1 и а2 - символы, приписанные соответственно дугам с1 и с2. Тогда

Vx1 =< x1, Px >є ONLY'^) и Vx2 =< x2, Px >є FIRST'(а2):

ab є DirectFIRST2'(G), a =< x1,Pa >,b =< x2,Pb > и Pa = Pb = Px n Px2.

Аналогично определяется множество DirectLAST2’, с той разницей, что с1 будет обозначать дугу, ведущую в один из конечных узлов графа, а с2 - дугу, ведущую в вершину, из которой исходит с1. Здесь нас будут интересовать элементы множеств ONLY' (а1) и LAST'^).

Пары терминалов, входящие во множества DirectFIRST2’ и DirectLAST2’, могут встречаться в середине цепочек, выводимых из графов грамматики. В этом случае возникает неоднозначность. Поэтому введем множество MIDDLE2’(G) упорядоченных пар терминалов, которые могут встречаться в середине цепочек, выводимых из графа G грамматики. Отсекая пары терминалов, входящие в DirectFIRST2’, DirectLAST2’ и MIDDLE2’, мы устраним возникающую неоднозначность.

Опишем теперь алгоритм вычисления множества MIDDLE2’(G) графа G.

Для каждой вершины ni графа G рассмотрим все пары дуг такие, что первая дуга из пары исходит из рассматриваемой вершины, а вторая исходит из вершины, в которую ведет первая. Положим с1 и с2- дуги одной из таких пар, а1 и а2-

- 1O1 -

символы, приписанные соответственно дугам ех и c2, nj - вершина, в которую ведет с2. Тогда

1) Если в вершину пг ведет хотя бы одна дуга и из вершины nj исходит хотя бы одна дуга, то Vx1 е LAST'(а1) и Vx2 е FIRST'(а2) ab е MIDDLE2'(G),

a =< x1,Pa >, b =< x2,Pb > и Pa = Pb = Px n P*2 ;

2) Если в вершину пг. ведет хотя бы одна дуга и из вершины пj не исходит ни

одна дуга, то Vx1 е LAST'

ab е MIDDLE2'(G), a =< x1,Pa >, b =< x2,Pb > и Pa = Pb = Px‘ n P*2 ;

3) Если в вершину ni не ведет ни одна дуга и из вершины nj исходит хотя бы

одна дуга, то Vx1 е LAST'

ab е MIDDLE2'(G), a =< x1,Pa >, b =< x2,Pb > и Pa = Pb = Px n P*2 ;

4) Если в вершину nt не ведет ни одна дуга и из вершины nj не исходит ни одна

дуга, то Vx1 е LAST’(a1), x1 g ONLY'(a1) и

VX2 е FIRST'(a2), X2 g ONLY'(a2) ab е MIDDLE2'(G), a =< x1,Pa >, b =< x2,Pb > и Pa = Pb = P*1 n Px2 (см. иллюстрацию Рис. 1).

Рис. 4. Различные случаи, возникающие при генерации правил

Также определим множества ЪаскР1Я8Т2 и ЪаскЬЛ8Т2:

ЪаскБ1Я8Т2(аЬ )={ О, }: Оъ еВ1гесАШ8Т2'(С,), V 0} УОк: Оъ &МГОБЬЕ2'(0}),

аЪ &Б1гес1ЬЛ8Т2’

ЪаскЬЛ8Т2(Оъ )={ О, }: аЪ еБ1гес1ЬЛ8Т2'(О,), V О} VОk: аЪ &МГОБЬЕ2'(О}),

аЪ &Б1гес1Р1Я8Т2’

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

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

Метод генерации правил

В генерации правил используются описанные выше множества ЪаекР1Я8Т2 и ЪаекЬЛ8Т2. Заметим, что можно задать аналогичные множества для единственного терминала: ЪаекР1Я8Т и ЪаекЬЛ8Т, которые так же можно использовать в генерации правил.

Будем говорить, что пара терминалов аЬ является характеристической, если во множестве ЪаекР1Я8Т2 или ЪаекЬЛ8Т2 содержится лишь один элемент.

Будем говорить, что пара терминалов аЬ является характеристической по порогу Я, если мощность множества ЪаекР1Я8Т2( аЬ) или ЪаекЬЛ8Т2( аЬ) не превышает Я.

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

На основе этой информации правила синтаксической сегментации строятся следующим образом. Для множеств ЪаекР1Я8Т2(аЬ )={ О.} с мощностью, равной единице, формируются правила синтаксической сегментации вида «если встретилась пара аЬ, то разбор ведем по графу Оі». Аналогично для множеств

ЪаекЬЛ8Т2(аЬ)={ О.} с мощностью, равной единице, формируются правила вида

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

Результаты эксперимента

Для проверки изложенных положений, был проведен вычислительный эксперимент. Автором была разработана программа, которая преобразовывает имеющиеся грамматики, представленные в БНФ, в грамматики ЛТК, а так же вычисляет значение множеств ЪаекР1Я8Т2 и ЪаекЬЛ8Т2 для полученных грамматик. На вход программы были поданы реально действующие грамматики русского и английского языков, разработанные для системы машинного перевода «Сго88Іа1ог 2.0». По результатам вычислений были выделены наборы правил, соответствующие парам терминалов.

Грамматика английского языка, использовавшаяся для экспериментов, содержала 557 графов. В результате генерации множеств ЪаекР1Я8Т2 и ЪаекЬЛ8Т2 было обнаружено, что из 5117 пар терминалов, 2148 пар однозначно идентифицируют графы, по которым следует начинать разбор фрагмента текста, и из 445 пар - 153 однозначно идентифицируют графы, по которым следует заканчивать разбор фрагмента. Для русского языка была взята грамматика, состоявшая из 144 графов.

При этом из 2073 пар терминалов, 123 пар однозначно идентифицирует графы, с которых следует начинать разбор фрагмента, и из 72 пар - 24 однозначно идентифицируют граф, по которому следует заканчивать разбор.

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

[часть речи; нормальная форма; параметры].

Для английской грамматики:

Пара терминалов Граф Пример предложения

['AND': conj;] ['AFTER':prep;] CPPDW ..., and after all I didn't really do anything Friday and Saturday

['IN_ORDER_TO':part;] ['HAVE':verb;] TO_INF2 In order to have something you must give something

['SOME':pronoun;]['OF':prep;] OBJ PRON Some of the most useful things

['SINCE':conj;]['THERE':adv;] ADV_CL Since there exists no accepted definition of grammatical English, many somewhat arbitrary choices had to be made

['NO':part;]['SUCH':pronoun;] S NP2 No such file or directory

Для русской грамматики:

Пара терминалов Граф Пример предложения

['КАКОЙ':poss_pron; gender 1+, number 1+, case 1+] [noun; gender 1+, number 1+, case 1+] IPP1 Кто мог с максимальной точностью сообщить роботу по радио, когда он был в безопасности, а в какой момент ему следовало спрятаться?

['КОTOРЫИ':poss_pron; gender 1+, number 1+, case 1+] [pers_pron; gender 1 +, number 1 +, case 1 +] IPP1 Это "Дезинто", который я строю, чтобы приступить к работе

['НЕ^ОЛЬШ'^^'Ж' :particle;] &O4 ... уже полнеющий, с первыми признаками зоба, он не только не женился, но от него исходил какой-то холостяцкий дух, как от некоторых людей будто бы исходит дух святости.

['НАПРИМЕР':parenthesis;][',':sign;] SWORD Так, например, ведутся работы по автоматизированному наполнению морфологических словарей за счет анализа несловарной лексики

Обсуждение

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

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

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

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

Литература

1. Ляшевская О.Н., Кобрицов Б.П., Сичинава Д.В. Автоматизация построения словаря на материале массива несловарных словоформ // Интернет-математика 2007

2. Сокирко А.В., Толдова С.Ю. Сравнение эффективности двух методик снятия лексической и морфологической неоднозначности для русского языка // Международная конференция «Корпусная лингвистика 2004». С.-Пб., 2004

3. Кобзарева Т.Ю., Лахути Д.Г., Ножов И.М. Модель сегментации русского предложения // Труды международного семинара Диалог'2001, том 2,

Аксаково, 2001

4. W. A. Woods “Transition Network Grammars for Natural Language Analysis” // Harvard University, Cambridge, Massachusetts

5. Daniel Sleator, Davy Temperley “Parsing English with a Link Grammar” // Carnegie Mellon University

6. Dennis Grinberg, John Lafferty, Daniel Sleator “A Robust Parsing Algorithm For Link Grammars”

7. И.М. Ножов “Морфологическая и синтаксическая обработка текста (модели и программы)” // internet- публикация диссертации И.М. Ножова «Реализация автоматической синтаксической сегментации русского предложения».

8. Ахо А.В., Сети Р., Ульман Д. Д. “Компиляторы: принципы, технологии и инструменты” // М.: Вильямс, 2003.

9. Жирнов Р.В., Клышинский Э.С., Максимов В.Ю. “Модуль фрагментарного анализа в составе системы машинного перевода. Сго88Іа1ог 2.0” // Вестник ВИНИТИ, 2005 г. НТИ. Серия 2. № 8 сс. 31-33.

10. Э.С. Клышинский, Е.С. Манушкин “Метод автоматического порождения правил синтаксической сегментации для задач анализа текстов на естественном языке” // Информационные технологии и вычислительные системы 4/2009

11. Лебедев А.С. “Механизм семантического поиска авторефератов” // Научнотехническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М.: МИЭМ, 2009, с.101-102