Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Тимофеева, УМК_Математ. методы в филологии

.pdf
Скачиваний:
62
Добавлен:
28.03.2016
Размер:
5.43 Mб
Скачать

Через VN обозначен нетерминальный алфавит грамматики G, через VT – терминальный. Символы нетерминального алфавита (категории) заключаются в треугольные скобки. Через S обозначена аксиома грамматики, Р – множество правил. Символы, входящие в терминальный алфавит, при построении домиков трактуются следующим образом.

Тема 3.3. Категориальные грамматики

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

мальных грамматик – категориальных грамматик (К-грамматик).

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

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

Идеи, составившие основу категориальных грамматик, можно найти ещѐ в работе Э. Гуссерля «Логические исследования», изданной в 1913 г. Однако в целостном виде данный способ описания языка был развит позже К. Айдукевичем, представителем ЛьвовскоВаршавской логико-философской школы. Статья Айдукевича «О синтаксической связности» опубликована в 1935 г.7 Сам термин «категориальная грамматика» введѐн ещѐ позже, в начале 1960-х гг., И. Бар-Хиллелом (Bar-Hillel), существенно опиравшимся на работы К. Айдукевича, но внѐсшим ряд изменений в предложенный им формальный аппарат.

Категориальная грамматика – это формально определяемый математический объект.

Категориальной грамматикой называется четвѐрка вида <V, K, S, f, R>, где

V – алфавит основных (или терминальных символов);

K – алфавит элементарных категорий, среди которых имеется;

7 Перевод этой работы на русский язык можно прочитать в кн.: Философия и логика Львовско-Варшавской школы. М.: РОССПЭН, 1999.

S главная категория, S K;

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

R – множество правил комбинирования категорий.

Что такое «сложные категории», «правила комбинирования категорий», «приписывающая функция» будет пояснено далее на примерах.

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

Как это можно сделать? Можно было бы поступить приблизительно так. Разбить все словоформы на классы и составить словарь, где каждой словоформе будет приписан еѐ

синтаксический класс. Например: длинная Аж. ед. им, крича Vдеепр, прыгать — V itr (непереходный глагол), брать — V tr (переходный глагол) и т. п. Затем сформулировать пра-

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

Adj + N NP

N + Nрод NP

V tr + Nвин V itr и т. п.

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

Для реализации идеи «говорящего» синтаксического кода при построении К-грамматик используется следующее базовое соображение.

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

Пример 1.

Допустим, у нас имеются всего две элементарные синтаксические категории: n (имя) и S (предложение). Категорию n будем приписывать простым языковым выражениям, именующим некоторый объект (существительным или функционально им равнозначным устойчивым словосочетаниям, рассматриваемым как неделимые). Рассмотрим фразы типа Море спит, в которых слева расположено существительное в именительном падеже, а справа – непереходный глагол (например, спит, ходит, веселится). Существительному в этом случае будет приписана категория n. Какую категорию следует приписать глаголу?

Категория глагола (в данном случае) должна отражать тот факт, что при присоединении к глаголу слева любого выражения категории n получается синтаксически правильное предложение (т. е. выражение категории S). Поэтому глаголу приписывается категория

n \ S, трактуемая как функция от одной переменной. В более привычной форме эту функцию можно было бы записать так: S(n).

Роль переменной может выполнить любое выражение категории n, расположенное в тексте рядом с данным выражением категории n \ S и находящееся слева от него. Наклонная черта как раз и говорит о том, что ожидаемое выражение должно появиться слева8. Если бы оно должно было появиться справа, то использовалась бы черта /, наклонѐнная в другую сторону: S / n. Для разграничения сложных категорий друг от друга принято использовать (если это необходимо) квадратные скобки, т. е. писать, например, [n \ S].

Таким образом, каждому тексту мы можем поставить в соответствие определѐнную последовательность категорий. Например, тексту Море спит будет соответствовать последовательность n [n \ S]. В этой последовательности имеются и переменная, и функция.

Если в функции f(x) = 2x подставить вместо переменной x конкретное число 2, то эта функция примет конкретное значение 4, перестав быть зависимой от переменной x. Аналогично происходит и в категориальной грамматике. Если в рассматриваемом тексте есть два выражения, одно из которых выполняет роль функции [n \ S], а другое – роль переменной n, то сочетание этих двух выражений уже не содержит переменной n, еѐ место считается занятым. Тем самым последовательность n [n \ S] превращается просто в S.

Можно пояснить сказанное и иначе. Если некоторое выражение отнесено к категории [n \ S], то оно предложением не является, но может стать таковым, если непосредственно слева от него имеется выражение категории n. При выполнении этого условия данная пара выражений, вместе, образует выражение категории S.

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

Если две категории – n и [n \ S] – приписаны выражениям, расположенным в тексте рядом именно в таком порядке, то, перемножив данные категории как дроби, получим в результате одну категорию

n [n \ S] = S.

Для сравнения рассмотрим столь же простые предложения типа Существует закон, содержащие глагол (например, существует, имеется, появляется), к которому должно быть добавлено существительное справа. В этом случае глаголу будет приписана категория S / n, а результат взаимодействия двух категорий («перемножение дробей») S / n и n тоже даѐт S:

[S / n] n = S.

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

В нашем примере прилагательное препозитивное, постпозитивному прилагательному надо будет приписать категорию n \ n.

8 Айдукевич, в отличие от Бар-Хиллела, использовал горизонтальную черту (как у обычной дроби), поскольку его интересовало логическое устройство предложения, а не порядок слов в нѐм.

Рассмотрим теперь несколько более сложных предложений.

Пример 2.

Проследим на этом примере, как происходит работа К-грамматики.

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

Сирень

благоухает

и алая

роза

цветѐт

n

n \ S

S \ S / S n / n

n

n \ S

 

 

n

 

 

S

 

 

S

 

 

 

 

 

S

Пример 3.

Соображения, по которым слову недаром приписывается категория [n \ S] / [n \ S], совершенно аналогичны тем причинам, по которым выше прилагательному приписывалась категория n / n или n \ n. В некоем языке мог бы существовать один простой глагол, выражающий смысл ‘недаром злиться’, но так сложилось, что в русском языке этот смысл выражается посредством сложного выражения из двух слов.

Глагол (в данном случае) мы относим к категории [n \ S], слово недаром глаголом не является, но может стать таковым, если справа от него в рассматриваемом тексте находится глагол категории [n \ S]. Функционально выражения злится и недаром злится равнозначны.

Зима

недаром

злится

n

[n \ S] / [n \ S]

n \ S

[n\ S]

S

9 Например, если прилагательное может выступать как в роли препозитивного, так и в роли постпозитивного, то ему будут приписаны две категории: n / n и n \ n. Фактически для получения структуры синтаксически однозначного текста пригодится лишь одна из этих категорий. Какая именно, зависит от того, слева или справа от данного прилагательного расположено связанное с ним существительное.

Пример 4

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

 

Собака

грызѐт

кость

 

S / V itr

V tr

V tr \ V itr

Собака

бежит

 

 

S / V itr

V itr

 

 

 

S

 

V itr

 

 

 

S

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

Тема 3.4. Примеры10 использования грамматик для моделирования языка

Пример 1.

Цепочка Мой друг читает очень интересную книгу выводится в Г={V,W,S,R}, где

{мой, друг, читает, очень, интересную книгу} V, {S, V, Nn, An, Na, Aa, D} W. Нижние индексы обозначают падеж. Множество R содержит правила:

S

Nn + V

Nn

An + Nn

Na

Aa + Na

Na

книгу

V V + Na

Aa

D + Aa

An

мой

Aa

интересную

Nn

друг

D

очень

Вывод этой цепочки в Г можно изобразить в виде следующего дерева вывода:

10 Примеры взяты из книг: Гладкий А.В., Мельчук И.А. Элементы математической лингвистики. М., 1969; Гладкий А.В. Формальные грамматики и языки. М., 1973.

Пример 2.

Введѐм следующие категории (вспомогательный, или нетерминальный, алфавит), для каждой категории приведена еѐ содержательная интерпретация:

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

или по схеме:

Пример 3.

Пусть терминальные символы грамматики G – это словоформы русского языка, нетерминальные символы – обозначения синтаксических категорий.

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

К1 и К2 задают контекстные ограничения: К1 – символ, отличный от символа Ах,у,z, К2 – символ , отличный от символа с индексом z= род. (мест – личное местоимение).

Пример дерева вывода в данной грамматике:

Пример 4.

Предложение I hate annoying neighbors (американский вариант слова neighbour) допускает две разные интерпретации: «Я ненавижу мешать соседям» и «Я ненавижу соседей, которые мешают (мне)»

Пример 5. Следующая грамматика содержит правила вида F αH или вида F α. Такие грамматики называют левосторонними автоматными грамматиками (А-

грамматиками)