Главная arrow Логика arrow Построение грамматики
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Построение грамматики Печать

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

Логические грамматики превратились с течением лет в инструментарий высокого уровня, и теперь они по-зволяют пользователю сконцентрироваться на лингвистических феноменах. Грамматики, построенные на опреде-ленных предложениях, поддерживают использование логики для обработки данных естественного языка, и они под-готовили почву для практической работы лингвистов на языке программирования 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) являются средством, разработанным специально для нужд лингвистов. Пра-вила их стратегии описывают порядок и режим трансляции, и описываются эти правила независимо друг от друга.