Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




В роли грамматических определений существительных могут выступать относи­тельные предложения (relative clause), например, как во фразе "Every man that paints admires Monet" (Каждый мужчина, который рисует, обожает Моне). В этой

Глава 21. Обработка лингвистической информации с помощью грамматических правил 527


фразе синтаксическая конструкция "every man that paints" представляет собой именную конструкцию, в которой "that paints" является относительным предло­жением. Для охвата такой синтаксической конструкции можно переопределить грамматические правила, относящиеся к именной конструкции, следующим образом:

noun phrase --> determiner, noun, rel clause.

rel_clause --> [ that], verb_phrase. _

rel_clause -->{]. I Пустое относительное предложение

Теперь рассмотрим смысл подобных именных конструкций. С точки зрения логи­ки фраза "Every man that paints admires Monet" означает следующее:

Для всех Х,

если X - мужчина и X рисует, то X обожает Моне.

Эту формулировку можно представить в виде такого терма Prolog: all(X, man(X) and paints! X) => admires! X, monet)]

Здесь предполагается, что оператор "and" связывает сильнее, чем оператор "=>". Таким образом, подходящая форма для представления логического смысла именной конструкции "every man that paints" является следующей: all(X, man(X) and paints [ X} => Assn)

В целом эта форма имеет вид all! X, Propl and Ргор2 => Assnl

Здесь смысл переменной Propl определяется именной конструкцией, Prop2 -глагольной конструкцией относительного предложения, a Assn - глагольной конст­рукцией фразы. Правила DCG для этой именной конструкции, которые обеспечивают соответствующее определение смысла, приведены ниже.

"tSS-SJA №»Propl and Prop2) ^> [ t Propl2, Assn, S], Xr Prop2).

noun c [ X, ProplWopl, Propl2 ].

Для охвата того случая, когда относительное предложение является пустым, не­обходимо добавить такое правило: r e l_ c l au s e (X, Propl, Propl) -> [j.

В листинге 21.1 приведено полное определение DCG с возможностями, описанны­ми в этом разделе, включая определяющие слова "а" и "every", а также относитель­ные предложения. Эта грамматика способна извлекать логический смысл фраз, по­добных приведенным ниже.

John paints.

Every man that paints admires Monet. Annie admires every man that paints. Every woman that admires a man that paints likes Monet.

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

:- ор [ 100, xfy, and).:- ор(150, Kfy, =>).

sentence! 3) -->

nounj)hrase(X, P, S), verb_phrase(X, P),

nounj)hrase(X, P, S) -->

determiner! X, P12, P, S), noun(X, P1J, rel_clause(X, PI, P12).

nounjhrase [ X, P, pj -> proper_noun(X).

verbjhrase (X, P) ->

528 Часть II, Применение языка Prolog в области искусственного интеллекта


trans_verb[ X, Y, PI), noim_phrase (Y, PI, P).

verbjhrase (X, P) -> intrans_verb(x, P).

rel_clause[ X, PI, PI and P2) -> [that), verb_phrase[ X, P2).

rel_clause[ X, PI, PI) --> [],

determiner) x, PI, P, all[ X, PI => P)) --> [every].

determiner! X, PI, p, existst x, PI and pj} - > [aj.

noun[ X, man(X)) ~> [man].

noun[ X, woman(X)) --> [woman).

proper_rtoun[ John) -> tjohnj.

proper_noun[ annie) --> [annie).

proper_noun(monet) -> [monet].

trans_verb(X, Y, likes (X, Y)) --> [ likes].

trans_verb{ X, Y, admires! X, Y)) -> [admires],

intran5_verb(X, paintS{X>] -> [paints].

% Некоторые проверки

testl (M>:-

sentence! M, [John,paints],[]).

test2 [ M):-

sentence! M, [a, man, paints!, П ) •

test3{ M):-

sentence! M, [every,man,that,paints,admirea,manet], []).

test4 (M):-

sentence! M, [annie,admires,every,man,that,paints],[]),

test5(Mi:-

..,.sentence(M, [every, woman, that,admires,a,man, that,. paints,likes,monet], []}.

Например, эти фразы могут быть переданы на обработку в рассматриваемой грамматике в виде следующих вопросов:

?- sentence(Meaningl, [ every, man, that, paints, admires, monet], []). Meaningl = alii X, man(X) and paints [ X) => admires(X, monet)]

7- sentence! Meaning2, 1 annie, admires, every, man, that, paints], []). Meaning2 = all! X, man(X) and paints! X] => admires(annie, X))

?- sentence (Meaning3, [ every, -woman, that, admires, a, man, that, paints,

likes, monet], []). Meaning3 • all (X, woman! X) and exists (Y { man! V) and paints! IT J! and admires(X, Y)) -> likes! X, monet))

Еще одна интересная проблема касается использования смысловых значений, из­влеченных из текста на естественном языке, для формулировки ответов на вопросы. Например, рассмотрим, как изменить рассматриваемую программу, чтобы после об­работки заданных фраз она могла отвечать на вопросы такого типа: "Does Annie

Глава 21. Обработка лингвистической информации с помощью грамматических правил 529


admire anybody who admires Monet?" (Обожает ли Энни кого-либо, кто обожает Моне). Ответ на этот вопрос логически следует из приведенных выше фраз, и нам дос­таточно просто заставить данную программу проводить некоторые необходимые рассу­ждения. В общем нам требуется определенный механизм автоматического доказатель­ства теорем, обеспечивающий дедуктивный вывод ответов из смысловых значений, представленных в форме логических высказываний. Безусловно, с точки зрения прак­тики удобнее всего использовать в качестве такого механизма автоматического доказа­тельства теорем саму систему Prolog. Для этого достаточно преобразовать логические смысловые значения в эквивалентные предложения Prolog. В целом выполнение та­кого упражнения требует определенных усилий, но в некоторых случаях подобное преобразование является тривиальным. Ниже приведены некоторые легко преобра­зуемые смысловые значения, записанные в виде предложений Prolog. paints(John).

admires (X, aionet):

admires(annie, X):- man(X), paints[ X),

Представленный выше в качестве примера вопрос "Does Annie admire anybody

who admires Monet?" можно преобразовать в следующий запрос Prolog:

?- admires(annie, X), admires(X, menet). X - John

Упражнения

21.6. Сформулируйте в виде логических высказываний смысл следующих фраз:

а) Mary knows all important artists (Мэри знает всех известных худож­
ников).

б) Every teacher who teaches French and studies music -understands
Chopin (Каждый учитель, который учит французскому и изучает музыку,
понимает Шопена).

в) A charming lady from Florida runs a beauty shop in Sydney (Оча­
ровательная леди из Флориды содержит салон красоты в Сиднее),

21.7. Грамматика, приведенная в листинге 21.1, может быть также вызвана на вы­
полнение в противоположном направлении. В таком случае по заданному смыслу
вырабатывается фраза с этим смыслом. Например, можно попытаться ввести за­
прос, обратный запросу tes~5, приведенному в листинге 21.1, таким образом:

?- М «all (X, woman (X) and exists (Y, (man (Y) and paints (Y)) and

admir kes[X,monet)), sentence(M, S, [] I. Первый ответ системы Prolog состоит в следующем:

and admires C()ac.JMFc;) -> likes(_022C,monet))

Он соответствует ожидаемому. Но если мы потребуем предоставить еще одно решение, то получим такой непредвиденный результат:

М = aU {monet, woman[monet) and exists[ Q364,(man(0364) and paints(0364)) and admires (monet, _0364)) => likes [monet, monetj)

S = [monet,likes, every,woman,that,admiresa,man,that,paints] % Моне любит любую % женщину, которая восхищается неким мужчиной, который рисует



Часть II. Применение языка Prolog в области искусственного интеллекта


Объясните, почему он был получен, и предложите внести определенное изме­нение в грамматику для предотвращения его возникновения. Подсказка: про­блема состоит в том, что эта грамматика допускает возможность согласования переменной, на которую распространяется действие квантора всеобщности (например, X в предикате all {X,...)), с именем собственным (monet}; такую ситуацию можно легко предотвратить. 21.8. Дополните грамматику, приведенную в листинге 21.1, чтобы она позволяла об­рабатывать составные фразы с союзами "if, "then", "and", "or", "neither", "nor" и т.д. В качестве примера таких фраз можно привести следующие:

John paints and Annie sings. * Джон рисует и Энни поет

If Annie sings then every teacher listens. Ъ Если Энни поет, то каждый

% учитель слушает

Проект

Модифицируйте грамматику, приведенную в листинге 21.1, чтобы она пред­ставляла смысл фраз в виде непосредственно выполняемых предложений Prolog. Напишите программу, которая читает фразы на естественном языке в обычном текстовом формате (а не в виде списков; см. подходящую программу в главе 6) и вводит их смысловые значения в базу данных системы в виде предложений Prolog. Дополните эту грамматику, чтобы она обрабатывала про­стые вопросы на естественном языке, что привело бы в конечном итоге к соз­данию законченной диалоговой системы для небольшого подмножества естест­венного языка. Можно также предусмотреть использование этой грамматики для выработки фраз с заданным значением, предоставляемых пользователю в качестве ответов на естественном языке.

Резюме

• Стандартные грамматические системы обозначений, такие как BNF, могут быть простейшим образом преобразованы в систему обозначений DCG (Definite Clause Grammar - грамматика определенных предложений). Грамматика, за­данная в системе обозначений DCG, может считываться и вызываться на вы­полнение непосредственно интерпретатором Prolog, осуществляющим функции системы распознавания для языка, определенного с помощью этой грамматики.

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

• Разработаны интересные грамматики DCG, которые охватывают синтаксис и значение нетривиальных подмножеств естественного языка,





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 402 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2285 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.