logo
ЛОИ New

Синтаксический анализ

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

Аналогию между системой языка и шахматами впервые предложил швейцарский лингвист Фердинанд де Соссюр. Как не меняются суть и правила игры в зависимости от размера доски или цвета фигур, так и сохраняют сходство грамматические структуры и законы внешне абсолютно разных языков. Белопольный слон никогда не займет черную клетку; каждое слово занимает только отведенное его роли место в структуре или линейном порядке предложения (например, в русском существительное не может стоять до предлога, от которого оно зависит). Любая удачная комбинация в партии есть продуманная последовательность ходов, где каждая фигура защищена другой, и если фигура удалена от «своих» и остается без защиты, она будет съедена или заперта фигурами противника, а партия проиграна. Грамматически верное и однозначное высказывание - результат хорошо построенной непрерывающейся структуры, где каждое слово имеет хозяина, и если слово не связано ни с одним из других слов в предложении, оно «выбивается» из контекста, искажая смысл всего высказывания.

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

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

Пример:(русский язык) ((Привезенный ((морским) офицером)) стол)

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

Проективность не связана с фиксированным порядком слов в предложении.

Степень свободы линейного порядка слов в предложении определяется сложностью морфологии языка. Так, русский перевод английской фразы «The farmer kills the duckling», то есть«Фермер убивает утенка», имеет 3! способа линейного расположения слов во фразе без ущерба принципу проективности («Утенка убивает фермер», «Утенка фермер убивает»и т. д.), в то время как любая перестановка слов в английском эквиваленте приводит либо к изменению смысла высказывания («The duckling kills the farmer» - «Утенок убивает фермера»), либо к грамматической неправильности («Kills the farmer the duckling»). Падежные окончания русских существительных позволяют свободно менять порядок слов во фразе, сохраняя смысл исходного высказывания (кто и кого убил).

(A) А.П. Чехов «Крыжовник»

В лингвистике существуют две основополагающие гипотезы о связи человеческого интеллекта и системы естественного языка. Гипотеза лингвистической относительности Сепира-Уорфа, согласно которой структура языка определяет структуру мышления и способ познания внешнего мира, и гипотеза о врожденности языковой способности, высказанная Хомским, согласно которой «форма языка, схема его грамматики в большой степени дана заранее». Каждая из этих теорий имеет своих сторонников и противников. Но достоверно можно утверждать только одно: абстрактная синтаксическая структура действительно отражает индивидуальные навыки мышления каждого человека и его способы выражения на родном языке знаний о внешнем мире. Ниже для сравнения приведены фрагменты автоматического синтаксического анализа текстов из произведений А. Чехова («Крыжовник») (рис. A) 2 и В. Набокова («Сестры Вэйн») (рис. B).

(B) В. Набоков «Сестры Вэйн»

Структура Чехова - параллельная, Набокова - иерархическая.

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

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

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

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

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

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

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

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

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

Явление морфологической омонимии весьма негативно отражается на скорости работы программы синтаксического анализа. На «длинных» предложениях количество комбинаторных вариантов иногда достигает нескольких сотен, поэтому используются разного рода математические и лингвистические ухищрения, позволяющие избежать анализа всех комбинаторно возможных вариантов. Для сравнения (www.aot.ru): скорость программы морфологического анализа составляет 6000 слов в секунду, синтаксического - 300 слов в секунду.

В англоязычном мире программы синтаксического анализа давно нашли применение в системах автоматической индексации, реферирования текстов, машинного перевода и интеллектуального поиска. Примером могут служить продукты компании Inxight (www.inxight.com) и Xerox. Одной из самых известных и свободно распространяемых программ анализа английского предложения является LinkParser, разработанная сотрудниками Стэнфордского университета.

Пример анализа системы LinkParser:

Синтаксический анализ русского языка, за редким исключением, используется только в системах машинного перевода. Хотя существуют и весьма неожиданные области применения. Например, компания «ВААЛ» (www.vaal.ru) использует синтаксический модуль группы «Диалинг» (www.aot.ru) для создания психологических методик анализа предвыборных, социологических и политических текстов.

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