Язык Пролог позволяет легко и естественно выражать формаль-
ные грамматики и продукционные правила, используемые при грамма-
тическом разборе естественных языков. Задача общения с ЭВМ на
естественном языке исторически является одной из первых задач
искусственного интеллекта. Само появление языка Пролог во многом
обусловлено исследованиями в области естественных языков, языков
программирования и машинного перевода.
Существует несколько методов разбора предложений, написанных
на естественных языках. Наиболее простым является метод анализа
ключевых слов. Следующим шагом в реализации поставленной задачи
является контекстно-свободный анализ и наиболее полным, но, од-
новременно и наиболее сложным, контактно-зависимый анализ.
Основой грамматического разбора предложений на естественном
языке является основное понятие математической лингвистики - фор-
мальная грамматика. Формальная грамматика представляет собой
абстрактную систему, позволяющую с помощью заранее известных
процедур получать правильные тексты на заданном языке. Основу
подобных процедур составляет порождающая грамматика:
Г = (V,W,J,R),
где V - основной алфавит (словарь) терминальных символов;
W - вспомогательный алфавит (словарь) нетерминальных символов;
J - выделенный нетерминальный символ, называемый начальным.
R - конечный набор продукционных правил вида r -> U (r и U -
цепочки, состоящие из символов алфавитов V и W).
Правило r -> U, примененное к цепочке символов arb, озна-
чает преобразование исходной цепочки в цепочку a и b.
Терминальные символы - это элементы языка, которые соответ-
ствуют словам. Нетерминальные символа определяют конструкции
языка, а выделенный нетерминальный символ соответствует элемен-
тарной языковой конструкции - предложению.
В зависимости от вида продукционных правил различают кон-
текстно-зависимые и контекстно-свободные грамматики.
Контекстно-зависимые грамматики (контекстные, или граматики
непосредственных составляющих, НС - грамматики) используют
продукционные правила следующего вида:
aAb -> arb,
где a,r,b - цепочки, состоящие из символов алфавита V и W;
A - нетерминальный символ. При этом цепочка r не должна являться
пустой.
Контекстно-свободные грамматики (бесконтекстные, КС-граммати-
ки) используют продукционное правило вида
A -> r
где A - нетерминальный символ; r - непустая цепочка. Частным
случаем КС-грамматики является автоматная грамматика, или грамма-
тика с конечным числом состояний, для формирования которой приме-
няются правила
A -> aB, A -> a
где A,B - нетерминальные символы, а - терминальный символ.
В рамках данной лабораторной работы в качестве естествен-
ного языка общения с компьютером выберем английский язык, кото-
рый,в отличие от русского, обладает более конкретной структурой
предложения и менее разнообразными формами слов. Это позволяет
изучить основы построения интерфейса на естественном языке в
течение одной работы.
Дерево разбора структуры предложения приведено на рис.1.
Из рисунка видно, что стратегия разбора в данном случае в точ-
ности соответствует стратегии Пролога при его работе по доказа-
тельству поставленной цели (дерево поиска решений). Процесс
разбора структуры предложения весьма трудоемок, однако, для его
автоматизации средствами Пролога достаточно лишь представить
продукционные правила грамматики в виде правил языка Пролог и
определить цель, которая по списку слов выполняла бы построение
дерева разбора.
Правила, определяющие грамматический разбор согласно вышепри-
веденному дереву, имеют следующий вид: