Партнеры

Рекомендуем

Жокей молотый кофе

Счетчики








Грамматика, построенная на определенных предложениях

Попов А.А.

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

Проведение работ по исследованию построения грамматик для понимания естественного языка (далее ЕЯ) приобрело большую популярность после введения Колмеройером в 1975 году грамматических формализмов, осно-ванных на предложениях Хорна. Так называемые метаморфозные грамматики (metamorphosis grammars или MGs) определили рост заинтересованности в области выражения лингвистических понятий в логике (qv) и заложили осно-ву для создания качественных блоков предварительной обработки данных (процессоров ввода-вывода) и интерфей-сов. Основное применение результаты этих исследовательских работ нашли в консультировании и создании баз дан-ных на основе ЕЯ, выработке вопросов и ответов, переводе текстов и синтезе текстов, исходя из надлежащим обра-зом оформленных спецификаций.

Понятие грамматик, построенных на определенных предложениях (DCGs), как особого случая метаморфоз-ных грамматик, было введено в 1978 году Перейрой и Уорреном в качестве грамматического формализма, для кото-рого PROLOG имеет эффективный механизм синтаксического анализа. Одни практические системы были созданы для одновременного использования синтаксического и семантического знания для привнесения логики в структуру, содержа в себе информацию для семантической интерпретации. Другие системы были выстроены на более чем од-ном уровне трансляции; использование синтаксического и семантического знания осуществлялось отдельно друг от друга, и конечным результатом являлось в PROLOGе предложение Хорна, выполнение которого осуществлялось ме-ханизмом планирования (qv).

Техника экстрапозиционных грамматик (extraposition grammars или XGs) была предложена Перейрой для описания определенных глобальных отношений или экстрапозиций, таких как связь между относительным место-имением и его записью. В конечном итоге разработки наподобие грамматик структуры определений (modifier structure grammars или MSGs) Даля и МакКорда, древовидных грамматик (tree grammars или TGs) Колмеройера и ус-ложненных грамматик (puzzle grammars или PGs) Сабатье увеличили силу выражения лингвистических понятий.

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

Логические грамматики

Грамматики описывают структуру (синтаксис) языков множеством продукций (правил, перерабатывающих текст). Например, правилом: sentence -> noun-phrase verb-phrase.

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

Такие правила могут быть отображены в PROLOGе следующим образом:

sentence (S1, S3): - noun-phrase (S1, S2), verb-phrase (S2, S3).
verb-phrase (S1, S2): - connects (S1, writes, S2).
connects (1, each, 2).
connects (2, author, 3).
connects (3, writes, 4).

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

В нижеследующей записи числа обозначают начало и конец каждого слова: 1each2 author3 writes4.

Чтобы проверить правильность построения предложения, необходимо указать цель: ? - sentence (1, 4).

(где ? - бинарное обозначение структуры (или бинарный функтор), содержащееся в любой системе PROLOG) и продемонстрировать, что она подтверждается предыдущими условиями. Используя список в качестве информаци-онной структуры для представления предложения, числа больше не нужны, так как PROLOG имеет устройство син-таксического анализа, способного перевести: ? - sentence ([each, author, writes]. [ ]).

Грамматики, построенные на определенных предложениях, являются объемом понятия контекстно-свободных грамматик, которые также могут быть транслированы на язык PROLOG. Грамматики, построенные на определенных предложениях, позволяют любому логическому выражению стать нетерминальным, они построены на логических символах: константах, переменных, выражениях, - а не только на одних константах. Также они имеют только один нетерминальный символ в левой части каждого правила. Контекстные зависимости (контекстные отно-шения подчинения) описываются логическими переменными в рамках параметров (или независимых переменных) грамматических символов.

У правила грамматики, построенной на определенных предложениях, следующая форма: nonterminal symbol -> body (основная часть программы).

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

В правой части правила наряду с нетерминальными символами и списком терминальных символов могут на-ходиться последовательности вызовов процедур, записываемых в фигурных скобках ({and}). Они используются для выражения дополнительных условий, которые в обязательном порядке должны выполнятся, чтобы правило действо-вало. Нетерминальный символ преобразуется в (N + 2)-местный предикат (имеющий идентичное название), чьи пер-вые N параметры полностью описаны в нетерминальном символе и чьи последние два параметра являются такими же, как и при трансляции контекстно-свободного нетерминального символа. Вызовы процедур в правой части пра-вила транслируются так, как они есть.

Каждое грамматическое правило, типа p(X) -> q(X) получает группу входящих данных, анализирует некую исходную часть и генерирует остаток для дальнейше-го анализа. Это частное правило транслируется системой PROLOG как p(X, S0, S): - q(X, S0, S).

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

Когда в правиле содержатся терминальные символы, они транслируются со сказуемым "connects". К примеру, connects(S1, X, S2) означает, что суть S1 связана через X с сутью S2.

Правило p(X) -> (older), q(X), (high) преобразуется в p(X, S0, S): - connects(S0, older, S1), q(X, S1, S2), connects(S2, high, S).

Анализ ЕЯ

В 1977 году Колмеройер ввел общую схему анализа ЕЯ, что явилось решающим шагом вперед и вызвало ог-ромный интерес в области использования логических грамматик как альтернативы прочно утвердившимся грамма-тикам расширенных сетей переходов (augmented transition network grammars). С исторической точки зрения, это мож-но признать поворотным пунктом, так как был указан метод преобразования предложений ЕЯ в логические структу-ры. Метод заключался в рассмотрении простейших высказываний, содержащих собственные имена существитель-ные, какой бы то ни было артикль в виде квантора (кванторного слова) с тремя операциями перехода и четыре при-оритетных правила, для разрешения проблемы иерархии квантования (количественного измерения качественных признаков).

Краткий обзор общей схемы побуждает к дальнейшему развитию приемов составления логических грамма-тик. Например, предложение Chomsky is (a) writer содержит имя собственное, и глагол "to be" преобразуется в формулу writer(chomsky).

Главным образом глаголы, прилагательные, имена существительные вводят характеристики с n параметрами. Для глаголов, n может равняться 1 [непереходные глаголы] или N+1 [переходные глаголы, где N - количество ком-плементов (дополнений, следующих за глаголом в составном сказуемом и описывающих его подлежащее)]. Для при-лагательных и имен существительных n равняется или больше 1 (отношения, где n - это n-место его параметров). Па-раметры представляют в предложении дополнения при имени существительном, глаголе или прилагательном.

Например, предложение Chomsky writes a book содержит глагол "write", существительное "book" и артикль "a" и может быть заменено следующей формой:

for a
B
such that
B is (a) book (1)
it is true that
Chomsky writes B (2)

где (1) и (2) являются простейшими высказываниями.

Эта же логическая структура может быть записана в стенографических индексах: a(B, book (B), writes(Chomsky), B)).

Обратите внимание, что высказывания (1) и (2) преобразуются в формулы "book(B)" и "writes(Chomsky, B)," соответственно.

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

Всякий артикль a представляет квантор q (кванторное слово) с тремя операциями перехода, создающий но-вую формулу из переменной x и двух формул f1 и f2, q(x, f1, f2).

Эта формула соответствует высказыванию for a x such that e1, it is true that e2, где e1 и e2 являются простейшими высказываниями соответствующими f1 и f2.

Например, предложение: Chomsky writes a book for each publisher содержит глагол "write", два существительных ("book" и "publisher") и два артикля ("a" и "each") и может быть заменено следующей формой: for each P such that P is a publisher it is true that for a B such that B is a book, it is true that Chomsky writes B for P.

Предложение преобразуется в логическую структуру: each(P, publisher(P), a(B, book(B), writes-for(Chomsky, B, P))).

Эта логическая структура отражает следующее приоритетное правило: в конструкции с использованием име-ни существительного (book) и его дополнения (publisher), квантование, представленное артиклем при дополнении, влияет на квантование, представленное артиклем при имени существительном. Помимо этого правила Колмеройер предложил еще 3 приоритетных правила для организации возможности квантования.

Анализ Колмеройера для конкретного ЕЯ

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

Общая схема анализа Колмеройера в качестве грамматики, построенной на определенных предложениях (dcg)

DCGs поддерживают процессы синтаксического анализа и транслирования благодаря взятым ими на воору-жение из подмножества ЕЯ, необходимым элементам синтаксиса и семантики. Процесс синтаксического анализа со-стоит из доказательства, что цепочка слов является законным и правильно построенным предложением (с точки зре-ния выбранного синтаксиса). Процедура доказательства осуществляется через исследовательскую стратегию (с конца на начало, сверху вниз, слева направо) и через правило умозаключения (логического вывода), где заключением явля-ется qv, уже после отработки системы PROLOG. Трансляция заключается в изображении каждого предложения в ви-де логической структуры. Эта структура состоит из правильно построенных формул определенной логической систе-мы, которая основывается на объеме понятия логики предикатов(qv).

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

Упрощенная грамматика, обозначаемая через G, рассматривается следующим образом. Она производит син-таксический анализ английских предложений, одновременно порождая соответствующие им логические структуры. Грамматика определяется 2 модулями:

  1. синтаксис + семантика
  2. морфология

и имеет дело с предложениями типа: Hodges writes for Penguin.

Синтаксис + семантика

sentences(S) -> noun-phrase(NP, S2, O), verb([subject-X | L], O1), complements(L, O1, O2).
complements([ ], O, O) -> [ ].
complements([K-N | L], O1, O3) -> complements(L, O1, O2), case (K), noun-phrase(N, O2, O3).
noun-phrase(N, O2, O4) -> article(N, O1, O2, O3), common-noun([subject-N | L], O1), complements(L, O3, O4).
noun-phrase(PN, O, O) -> [PN], {proper-noun(PN)}.
article[A, O1, O2 and (O1, O2)] -> [a].
case(for) -> [for].
case(direct) -> [ ].

Морфология

verb([subject-A, for -P], is-published-by(A,P)) -> [writes].
common-noun([subject-P], publisher(P)) -> [publisher].
proper-noun(hodges).
proper-noun(penguin).

К примеру, правило: noun-phrase(PN, O, O) -> [PN], {proper-noun(PN)} представляет собой структуру: noun-phrase(PN, O, O, S0, S): - connects(S0, PN, S), proper-noun(PN).

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

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

Именная группа "a publisher" анализируется и транслируется грамматическим правилом как: noun-phrase(N, Oa, Ob) -> article(N, Oc, Od, Oe), common-noun(N, of), {constraints(Oa, Ob, Oc, Od, Oe, Of)}.

Заметьте, что это правило - упрощенная версия четвертого правила представленной грамматики G. Нетерми-нальный символ для именной группы имеет 3 параметра. Интерпретация последнего параметра Ob будет зависеть от характеристики Oa индивидуума N, так как в общем именная группа содержит артикль, такой как "a".

Теперь смотри на правую часть правила. Слово "a" имеет интерпретацию Oe, and(Oc, Od) в контексте двух характеристик Oc и Od индивидуума N. Характеристика Oc будет соответствовать остав-шейся части именной группы, содержащей слово "a", а характеристика Od вытекает из остатка предложения. Значит, Oe будет содержать всеобъемлющую интерпретацию и связываться с Ob через одну и ту же переменную. Так как Of является характеристикой нарицательного существительного, она связывается с Oc одной и той же переменной. Oa имеет описание характеристик N, а также зависит от характеристик оставшейся части предложения. Поэтому Oa свя-зывается с Od через одну и ту же переменную.

Каждое слово ассоциируется с характеристикой. Например, значение глагола "writes" вводится отношением "is-published-by(A,P)". Глагольное правило также содержит информацию о характеристиках отношения, а именно то, что "A" играет роль подлежащего предложения а "P" "навязывает" использование предлога "for". Значение неопре-деленного артикля "a" вводится конъюнкцией "and(O1, O2)" согласно определению, принятому в классической логи-ке.

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

noun([A-[ ] & author & type-X], pr(author(X))) -> no(author, A).
no(Type,GN) -> [Noun], {no1(Noun, Type, GN)}.
no1(author, author,mas-sin).
verb([(G-N)-V&type-X, dir-A-W&title-Y], pr(author(X, Y))) -> ve(writes, N).
ve(Type, N) -> [Verb], {ve1(Verb, Type, N)}.
ve1(writes, writes, sin).
adjective([A-{ }&author&type-X, prep(by)-_-[ ]&pub&type-Y], pr(published(Y,X))) -> ad(pub, A).
ad(Type, GN) -> [Adj], {ad1(Adj, Type, GN)}.
ad1(published, pub, mas-sin).
article(G-sin)-D-X, O1, O2, for([X, D] and (O1, O2)), cardinality(X, greater, 0))) art-ind(G-sin).
art-ind(mas-sin) -> [a]; [some].

(Замечание: безымянные переменные записываются в PROLOG как "_".)

Эти дефиниции включают синтаксические и семантические проверки, такие как грамматический род, число, семантические типы. Значение артикля также отличается. Вместо квантора с двумя операциями перехода оно было введено квантором с тремя операциями перехода. Первая операция перехода - квантование переменной X, вторая - для основной характеристики "and" переменной X, третья - для точного определения характеристики (мощности множества) и ограничения области переменной X.

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

Экстрапозиционные грамматики (XGs) увеличивают мощь DCGs при перечислении контекстных зависимо-стей. Правила XG могут иметь в своей левой части более одного нетерминального символа и символ пробела " ", выражающий случайную цепочку логических символов (терминальных и нетерминальных). Например, правило экс-трапозиционной грамматики: Relative-marker . . . complement -> [that] утверждает, что относительное местоимение "that" может быть проанализировано как относительный показа-тель, за которым следуют какие-нибудь неизвестные фразы и затем дополнение.

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

Грамматики структуры определений (MSGs) увеличивают вероятность точного описания несинтаксических репрезентаций. Они упрощают автоматическое моделирование таких репрезентаций при одновременно происходя-щем анализе.

Древовидные (или древесные) грамматики (TGs) позволяют лучше ориентировать лингвистические конст-рукции.

Усложненные грамматики (PGs) являются средством, разработанным специально для нужд лингвистов. Пра-вила их стратегии описывают порядок и режим трансляции, и описываются эти правила независимо друг от друга.


Источник: Неизвестен