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

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

синтаксического анализа1

Дроздов В.В., Москва, Россия Московский Государственный Институт Электроники и Математики.

Введение

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

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

Грамматическая технология основана на применении правил (алгоритмов), когда программа анализирует текст и на основе проведенного анализа синтезирует вариант преобразования. Работа такой системы сходна с процессом мышления человека: система анализирует текст, используя множество алгоритмов. Обе технологии имеют свои плюсы и минусы, приверженцев и противников, и сегодня в Интернете часто обсуждается вопрос, какая из них позволяет получить наиболее качественный результат.[2]

Методы статистического анализа

n-граммы

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

Рассмотрение языка как случайного процесса позволяет переопределить многие основные задачи, связанные с пониманием естественного языка, в более строгом математическом смысле. [3]

Статистическая модель языка в большинстве случаев определяется вероятностным распределением набора символьных последовательностей из некоторого ограниченного набора. Эти методы известны как «языковые модели»,

1 Данная работа выполнена при частичной финансовой поддержке ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы.

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

Для формального описания статистической модели языка используются скрытые Марковские цепи. Наиболее широко распространенная версия этой модели основывается на этом формализме, и называется моделью п-грамм. Описание статистических свойств символьных последовательностей с помощью вероятностной грамматики также возможно, но значительно сложнее, потому что выдвигаются крайне высокие технические требования. Но для грамматик, основанных на правилах, необходимо привлечение экспертов-лингвистов, для этих грамматик нет методов, позволяющих обучать их на наборах данных, поэтому статистические грамматики, используемые для анализа шаблонов в этом смысле предпочтительнее, так как ограничены только по объему используемого корпуса. Статистическая модель п-грамм соответствует скрытой Марковской цепи п-1 порядка. Вероятность Р^) какого-то символа последовательности ю=ю1,ю2,....ю! длины Т - это первое разложение в соответствии с теоремой Байеса.

Т

Р

I=1

В соответствии с этой формулой с увеличением длины Т символьной последовательности можно получить вероятности для произвольной по длине последовательности. Тем не менее, для практического применения максимальная длина контекста ограничивается п-1 предшественником. Этот контекст зачастую называется историей. Определенная таким образом модель п-грамм позволяет предсказать появление символов в некотором ограниченном наборе, основываясь на контексте из п-1 предшествующего элемента. С увеличением длины контекста возникают серьезные трудности при вычислениях такой модели и применение на практике предъявляет очень большие требования к памяти.[4] В самом деле, если словарь содержит N слов, то число возможных пар слов будет N . Даже если только 0,1% от них реально встречаются в языке, то минимально необходимый объём корпуса для получения статистически достоверных оценок будет иметь порядок 125 млрд. слов или около 1 терабайта при специально подобранном корпусе. Для триграмм минимальные корпуса будут достигать размеров в сотни и тысячи терабайт. Для преодоления этого недостатка используется развитый аппарат техник сглаживания, которые позволяют производить оценку параметров модели в условиях недостаточных или вовсе отсутствующих данных. Другим подходом к решению той же проблемы является кластеризация словаря, позволяющая сократить модель.[5] Уже 4-граммные модели тяжело использовать в статистических системах, в то время как использование би-граммных моделей в распознавании речи может уже считаться стандартной процедурой.[4] В связи с этим, основным недостатком этой модели можно считать заведомо неверное предположение о независимости вероятности очередного слова от более длинной истории, что затрудняет работу и не позволяет моделировать более глубокие связи в языке и колоссальные, но всё-таки недостаточные для получения достоверных оценок объёмы обучающих данных. Основным достоинством данного класса моделей оказывается возможность построения модели по обучающему корпусу достаточно большого размера и высокая скорость работы [5].

Метод дерева решений

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

The policy announced in December by the President guarantees lower taxes.

На самом деле действующим лицом в данном случае является President, однако программа на основе Марковской модели, вероятнее всего, назовет действующим лицом policy, a announced - глаголом в действительном залоге. Естественно, если бы программа могла задавать вопросы типа "Описывает ли данное существительное неодушевленный предмет?" или "Встречается ли слово by на несколько слов раньше рассматриваемого существительного?", то она определила бы действующее лицо гораздо точнее.

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

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

Методы грамматического анализа

Метод генетических алгоритмов

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

Язык содержит набор терминов и правил, позволяющих манипулировать терминами, создавая грамматические конструкции, допустимые языком. Используя генетический алгоритм LUST (Linguistic Using Sexual Techniques) были созданы и оценены грамматики не по их сходству с грамматиками, созданными экспертами-лингвистами, а по тому, насколько хороша производительность системы, использующей генетически созданные грамматики. Постепенное улучшение производительности грамматики, полученной этим генетическим алгоритмом, будет наблюдаться на примере той задачи, на которой происходит ее обучение. В грамматиках используемых для синтаксического анализа естественного языка текст

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

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

A ^ BCD (1),

A ^ EF (2),

M ^ NP (3).

Пусть при анализе некоторого фрагмента правила 1 и 2 оказались применимыми, а правило 3 — нет. В этом случае анализатор может сгенерировать новое правило, в правой части которого будут комбинироваться термы из правой части всех подошедших правил, а левая останется неизменной. Например, может быть создано правило A ECD (4). Новое правило называется “потомком”, а старые (термы из которых участвовали в формировании нового правила) — его предками.

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

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

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

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

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

В качестве одного из основных представителей грамматических синтаксических анализаторов можно рассмотреть ATN (Augmented Transition Network - Расширенная Сеть Переходов), автором которой является Вильям Вудс. На основе этой сети работает самая известная система машинного перевода для русского языка PROMT.

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

1) Метки на дугах между состояниями могут представлять части сети, таких как отдельное входное слово. Рекурсивный механизм позволяет этой сети обращаться самой к себе. Например, если нетерминальный символ NP появляется на дуге, то дуга будет пройдена, только если была пройдена сеть NP. Также может возникнуть ситуация, когда сеть NP будет ссылается сама на себя.

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

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

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

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

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

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

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

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

Одним из крупнейших сторонников статистических моделей обработки текстов является корпорация IBM, ведущая научные разработки в области распознавания речи уже более 50 лет. Методы, использующие Скрытую Модель Маркова, разработанные группой Йеленека в лаборатории IBM, используются и по сей день.[9]

Статистический подход использует и Google Translate — услуга, предоставляемая компанией Google Inc. для перевода части текста или веб-страницы на другой язык с ограничениями по количеству переводимых параграфов, или технических терминов. Для некоторых языков пользователям предлагаются варианты переводов, например, для технических терминов, которые должны быть в будущем включены в обновления системы перевода. [10]

Одним из представителей технологии, основанной на правилах, является компания SYSTRAN - одна из старейших компаний занимающихся машинным переводом. Компания была основана в 1968 и занималась машинным переводом текстов с русского языка на английский для ВВС США во время Холодной войны. Огромное количество научных и технических текстов было переведено с использованием SYSTRAN. И, несмотря на то, что качество перевода было приблизительным, этого вполне хватало для понимания содержимого документа. На сегодняшний день на основе этой системы работают онлайн сервисы перевода текстов таких компаний как Yahoo!, AltaVista (Babel Fish), Windows Live Translator и множество других порталов и сайтов. Популярная коммерческая программа MultiTranse также использует именно SYSTRAN.

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

В России грамматический подход к переводу использует компания PROMT. Алгоритмическая основа переводчика от компании PROMT, обеспечивающая высокое качество перевода, построена на формализме расширенной сети переходов или ATN сетей (Augmented Transition Network). [11]

На данный момент ни одна из технологий не может быть смело объявлена лучшей и единственной.

Сравнение систем машинного перевода, использующих разные модели синтаксического анализа

Порталом filolingvia.com в августе 2007 года было проведено сравнение англорусского направления перевода, как наиболее популярного среди русскоязычных пользователей. С учетом этого исследования можно было сопоставить качество перевода различных переводчиков. Для проведения сравнительного теста в 2007 году был выбран переводчик PROMT и сервис Google Translate (BETA-версия). Проведем такое же исследование, добавив к испытуемым переводчик компании Systran. В качестве примера для перевода возьмем те же предложения, которые были использованы в исследовании 2007 года, а именно, материал информационного агентства BBC.

Пример

Soon after bringing this little girl home from a Chinese orphanage, her British parents proudly posted photos of her online - only for it to reveal that she has an identical twin sister, also adopted abroad. Вскоре после приведения домой этой маленькой девочки от китайского приюта ее британские родители гордо отправили фотографии ее онлайн - только для этого, чтобы показать, что у нее есть идентичная сестра - близнец, также принятая за границей. Вскоре после чего эту маленькую девочку домой с китайским приюте, ее Британские родители с гордостью размещены фотографии ее сети - только для его раскрыть что она имеет идентичные две сестры, а также принял за рубежом. Скоро после приносить этот дом маленькой девочки от китайского детского дома, ее великобританские родители самолюбиво вывесили фотоих ее он-лайн -только для его для того чтобы показать что она имеет сестру идентичного близнеца, также быть принятым зарубежом.

Интересно сравнить, как справились с переводом программы. Начало предложения - наречие «Soon after» - стало проблемой при переводе Systran, который перевел его угловатым «Скоро после». Google и Promt перевели его одинаково правильно «Вскоре после». Гораздо больше трудностей у всех переводчиков вызвал выбор правильного перевода «bringing from». В переводе Google напрочь отсутствует

«bringing». Исчезновение слов или фраз при переводе недопустимо и является очень грубой ошибкой. Даже при отсутствии в словарных базах системы варианта перевода (а такое возможно) программа должна подставить в переведенный текст слово «как есть» — в нашем случае английское «bringing». Если же программа действует по принципу: «нет перевода — нет слова», то смысл переведенного текста вряд ли будет понятен пользователю. Единственный вариант в данном случае — кропотливо сравнивать исходный и переведенный тексты, чтобы обнаружить «пропавшее» слово и самостоятельно перевести его, если позволяет квалификация. Тогда возникает вопрос: зачем нужна система перевода, если приходится переводить самому? [2] Promt и Systran слов не теряли, но единодушно выбрали неправильный предлог «с» вместо «из». Сервис от Google выбрал тоже вариант предлога «с», что несколько удивляет, поскольку в 2007 году он-то как раз выбрал правильный вариант. Следующим, что бросается в глаза - это отсутствие согласования в переводе от Google в словосочетании «китайским приюте». Вторая часть предложения далась переводчикам сложнее. Немного режет слух перевод словосочетания «British parents»

- «великобританские родители» переводчиком Systran. Все-таки обычно так не говорят, но смысл перевода от этого менее ясным не становится. Чего не скажешь в целом о переводе Google второй части предложения, что объясняется, во-первых, недостаточным согласованием слов в предложении, а, во-вторых, неудачным выбором вариантов перевода «posted» и «reveal» из-за чего смысл перевода непонятен и неправилен. Неудачно справился с омонимией и Systran при переводе фразы «proudly posted» - «самолюбиво вывесили». Вариант перевода от Google и Promt лучше соответствует смыслу предложения. Угловатым выглядит у Systran и перевод «имеет сестру идентичного близнеца, также быть принятым зарубежом». Нарушен порядок слов при формировании предложения, куда корректнее было бы поменять местами слова следующим образом: «имеет идентичного близнеца сестру», и уже согласовывать идущий следом причастный оборот с перестроенной фразой. По переводу Google можно вообще посчитать, что у девочки есть не сестра-близнец, а еще две сестры. В целом с переводом этого предложения лучше всех справился Promt, хоть и с небольшими недочетами. Systran совершил при переводе больше ошибок, но смысл предложения понять позволяет. У Google ошибок больше, чем у его соперников, они не позволяют понять нормально смысл предложения, а также могут ввести в заблуждение относительно смысла исходного предложения.

Следующим тестом для программ-переводчиков как и в 2007 году станет фрагмент англоязычного трудового договора._____________________________________

Пример

The employee is being hired as a security guard to perform the following general duties: providing security of MTSS Company office and body-guarding the General Director. The employee also Служащий нанимается как охранник, чтобы выполнить следующие общие обязанности: обеспечение безопасности офиса Компании MTSS и охраны тела Генеральный В настоящее время работник нанят в качестве охранника выполнять следующие основные функции: обеспечение безопасности офиса компании МТСО и теле- Работник нанимается как охранник для того чтобы выполнить следующий вообще обязанности: обеспечивают, обеспеченность офиса и тел-защищать MTSS Компании

agrees to perform

additional duties

incidental to

general job

description.

директор.

Служащий также

соглашается

выполнить

дополнительный

эпизод

обязанностей к общему

описанию работы.

охрана

генеральный

директор.

Работник также

обязуется

выполнять

дополнительные

обязанности,

связанные с

общего описания.

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

вообще описанию работы.__________

Перевод этого предложения оказался для программ менее сложным. В общем, смысл исходного предложения понятен у всех трех переводчиков. Но более корректный перевод получился у Google и Promt. Хотя не обошлось и без ошибок. Во-первых, название компании «MTSS» Google почему-то решил перевести и перевел как «МТСО». Ни Promt, ни Systran такой ошибки не совершили. Во-вторых, «body-guarding» Google перевел как «теле-охрана», что тоже является грубой ошибкой. Promt предложил перевод «охраны тела», что звучит угловато, но зато не искажает смысл исходного предложения. Systran здесь тоже запутался, как и Google, и не смог предложить нормальный вариант. Ну, и последний промах Google - это опять несогласование фразы «связанные с общего описания работы». В остальных же моментах перевод Google получился самым гладким. Недочеты при переводе у Promt связаны прежде всего с выбором перевода «employee» как «служащий», вместо более корректного в данном случае «работник», как у Systran и Google. К выше написанному по переводу Systran можно добавить, что он неправильно выбрал перевод для словосочетания «general duties». Серьезно ошибся при переводе словосочетания «providing security of MTSS Company office and body-guarding the General Director» сделав перевод как «обеспечивающ обеспеченность офиса и тел-защищать MTSS Компании генеральный директор». В целом, с учетом перевода двух предложений можно сказать, что Systran периодически делает грамматические ошибки в переведенном тексте.

Заключение

Грамматические модели, в отличие от вероятностных, требуют большего внимания при построении, и их автоматическое обучение представляется затруднительным. Однако даже модели, состоящие из заведомо неполного свода правил, показывают результаты, сравнимые с самыми современными стохастическими подходами. [1] В этом можно убедиться на примере сравнения перевода предложений с английского на русский сервисом Google Translate (стохастический подход к синтаксическому анализу) и Systran с PROMPT (грамматический подход). При этом одной из основных причин сдерживающих развитие систем, использующих грамматический синтаксический анализ, является сложность в сопровождении грамматики, в частности, добавление новых правил. Количество правил, необходимых для проведения синтаксического анализа, исчисляется сотнями, поддерживать которые является крайне сложной задачей, тем более что с увеличением их числа нелинейно возрастает и сложность сопровождения. Развитие мирового научно-технического прогресса породило проблему информационного взрыва [12], когда рост объема новой информации в единицу времени подчиняется экспоненциальному закону. В этих условиях задача создания системы автоматической генерации правил для грамматических моделей приобретает особую актуальность. Автоматическая генерация позволила бы уменьшить труд

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

Литература:

1) В.И. Божич, А.В. Тарасенко. Омонимические неоднозначности при анализе текстов.

2) http://filolingvia.com/publ/25-1-0-898

3) George F. Luger. Artificial Intelligence. Structures and Strategies for Complex Problem Solving.

4) Gernot A. Fink. Markov Models for Pattern Recognition. From Theory to Applications.

5) А.Б.Холоденко. О построении статистических языковых моделей для систем распознавания русской речи.

6) Robert M. Losee. Learning Syntactic Rules and Tags with Genetic Algorithms for Information Retrieval and Filtering: An Empirical Basis for Grammatical Rules.

7) А.М.Андреев, Д.В.Березкин, А.В.Брик, Ю.А.Кантонистов. Вероятностный синтаксический анализатор для информационно-поисковой системы.

8) William R. Swartout. A Comparision of PARSIVAL with Augmented Transition Networks.

9) Hieronymus J., Larsson S., Gronqvist L. Associating the Dialogue Move Engine with Speech Input.

10)http://ru.wikipedia.org/wiki/Google_Translate

11)http://www.promt.ru/company/technology/promt/

12) Г.Р.Громов. Очерки информационной технологии.