Программа ЛЕЯ
После того как пользователь напечатает некоторое высказывание, адресованное МЭРФИ, оно прежде всего обрабатывается программой АЕЯ. Блок АЕЯ является развитием программы Кон- цептульного анализатора (В і г n b a u m and Selfridge, 1981); кроме того, он использует некоторые понятия, подсказанные работами Уилкса (Wilks, 1976).
Его роль в процессе понимания заключается в том, чтобы построить по возможности наиболее полное представление значения высказывания в терминах КЗ, опираясь только на значения слов, встретившихся в данном высказывании. Обработка высказывания в АЕЯ происходит прежде всего с использованием кратковременной памяти, содержимое которой мы называем К-СПИСКОМ (то есть списком концептов, или понятий). В ходе анализа значение каждого слова входного высказывания вносится в К-СПИСОК (в настоящее время АЕЯ работает только со словами, которым приписано одно значение; он не может разрешать неоднозначность слов в случае полисемии или омонимии). Затем просматриваются синтаксические и семантические признаки, приписанные слотам в значениях слов, внесенных в К- СПИСОК, и выясняется, могут ли значения каких-либо других слов, представленных в К-СПИСКЕ, заполнять какие-то из этих слотов. Если результат проверки оказывается положительным, то выбирается та КЗ, которая лучше всего удовлетворяет синтаксическим и семантическим признакам, приписанным конкретному слоту, и помещается в этот слот. Этот процесс повторяется для каждой КЗ, имеющейся в К-СПИСКЕ. Когда этот циклический процесс заканчивается, в К-СПИСКЕ остается одна или несколько КЗ, построенных в результате объединения значений слов, встретившихся в высказывании. Эта одна или несколько комплексных КЗ представляют тот тип понимания, который мог быть достигнут путем того анализа, который опирается лишь на значения встретившихся в сообщении слов. С более формальной точки зрения базовый алгоритм АЕЯ сводится к следующему:(1) Внести КЗ-значение каждого слова или фразеологической единицы высказывания в К-СПИСОК.
(2) Для каждого пустого слота в каждой КЗ, представленной в списке, собрать синтаксические и семантические признаки, ассоциируемые с этим слотом.
(3) Осуществлять поиск в К-СПИСКЕ, определяя все КЗ, которые удовлетворяют семантическим требованиям этого слота. Эти КЗ являются кандидатами на заполнение слота.
(4) Упорядочить множество кандидатов по степени предпочтительности (измеряемой числом семантических предпочтений и синтаксических признаков, которым удовлетворяет каждый кандидат).
(5) Рассмотреть кандидата с самой высокой степенью предпочтительности. Если данная КЗ не имеет пометы „использовано", то заполнить обрабатываемый слот этой КЗ и приписать ей помету „использовано".
(6) Если данный кандидат имеет помету „использовано" и его степень предпочтительности для слота, который он заполняет, выше, чем степень предпочтительности, вытекающая из требований обрабатываемого слота, то отвергнуть этого кандидата и рассмотреть следующего по степени предпочтительности кандидата.
(7) Если рассматриваемый кандидат имеет помету „использовано" и его степень предпочтительности для слота, который он заполняет, ниже, чем степень предпочтительности для обрабатываемого слота, то следует убрать это значение из того слота и заполнить этим значением обрабатываемый слот, а затем вызвать рекурсивную процедуру для заполнения заново того, другого, слота.
Кроме действия по указанному алгоритму, АЕЯ выполняет и другую работу. Эта дополнительная работа необходима, чтобы обеспечить возможность построения очередной, наиболее правдоподобной интерпретации входного сообщения. АЕЯ выполняет эту задачу путем отслеживания всех кандидатов для заполнения каждого слота и соответствующих им степеней предпочтительности, а также путем ведения списка отвергнутых интерпретаций. Когда происходит вызов АЕЯ с целью порождения очередной, наиболее правдоподобной интерпретации, он выполняет эту задачу путем нахождения наиболее предпочтительной интерпретации, которая не вошла в список отвергнутых интерпретаций.
Действуя указанным образом, АЕЯ может построить все возможные интерпретации входного сообщения (при участии программы БНП, которая описывается в следующем подразделе), упорядоченные по степени правдоподобия. Следует заметить, что методика ведения списка отвергнутых интерпретаций груба, но достаточно эффективна; в будущем мы намереваемся обратиться к вопросу об улучшении этой методики специально.Поскольку в разд. 5.6 утверждается, что АЕЯ и БНП используют, по существу, один и тот же механизм, необходимо дать абстрактное описание каждой из этих частей интерфейса. Существует несколько альтернативных описаний; для наших целей лучше всего рассмотреть процесс понимания, осуществляемый АЕЯ, как поиск в древесной структуре. Внутренние узлы дерева представляют частичные понимания входного сообщения, а терминальные узлы — завершенные понимания. Иначе говоря, внутренние узлы — это такие КЗ, которые содержат пустые слоты, а терминальные узлы — это такие КЗ, которые уже связывают все словесные значения. Корень дерева — это начальный узел, ниже которого находятся те КЗ из анализируемого высказывания, которые имеют пустые слоты. Если в процессе поиска фиксирован какой-то текущий узел, то порождение нижестоящих узлов включает: выбор какого-то пустого слота, отыскание его тестовых признаков, отыскание (с помощью этих тестов) в К-СПИСКЕ всех возможных кандидатов в заполнители, построение копии КЗ, стоящей в текущем узле, для каждого кандидата и заполнение слота этим кандидатом в заполнители, наконец, построение нового узла для каждой такой полученной КЗ. Ясно, что КЗ, стоящая в каждом новом узле, будет иметь на один пустой слот меньше. Затем в качестве отправной точки для нового цикла поиска выбирается узел, в котором заполнитель обработанного на предыдущем этапе слота получил наиболее высокую степень предпочтительности; этот узел и становится новым текущим узлом. Поиск продолжается до тех пор, пока не будет получен терминальный узел, в котором все возможные слоты оказываются заполненными теми КЗ, которые можно найти в К-СПИСКЕ.
Поскольку АЕЯ первыми выбирает те заполнители слотов, которые лучше всего отвечают семантическим и синтаксическим признакам, приписанным некоторому слоту, то можно считать, что данная стратегия обработки реализует определенный тип локального поиска по принципу «наилучший вариант идет первым» (Nilsson, 1971).Приводимый на стр. 184—185 пример описывает часть обработки в АЕЯ следующего предложения: put the post on the base ‘прикрепи рычаг к основанию’. Чтобы проиллюстрировать принцип предпочтительности, в этом примере концентрируется внимание на заполнении слота КОНКР-ОРИЕНТИР в значении слова on ‘на, к’; причем приводимое описание относится к середине процесса обработки входного сообщения. Из двух кандидатов на заполнение слота КОНКР- ОРИЕНТИР (а именно значений слов ‘рычаг’ и ‘основание’) в рассматриваемый момент обработки значение слова ‘основание’ уже использовано как заполнитель слота ОБЪЕКТ. Однако принцип предпочтительности заставляет пересмотреть это первичное заполнение слота, переносит значение слова ‘основание’ в слот КОНКР- ОРИЕНТИР и находит для слота ОБЪЕКТ очередной вариант наилучшего заполнителя. Приводимый пример начинается с описания состояния К-СПИСКА в указанный момент обработки, затем
К-СПИСОК: (ФТРАНС ДЕЯТЕЛЬ (НОЛЬ)
ОБЪЕКТ (ФИЗ—ОБ ТИП (ОСНОВАНИЕ)
ЯВЛ—ЧАСТЬЮ (НОЛЬ)
РЕФ (НОЛЬ))
К (СВЕРХУ КОНКР—ОР (НОЛЬ)))
(РЕФ) использовано
(ФИЗ—ОБ ТИП (РЫЧАГ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))
(СВЕРХУ КОНКР—ОР (НОЛЬ)) использовано
(РЕФ)
(ФИЗ—ОБ ТИП (ОСНОВАНИЕ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) использовано
ОБСЛЕДУЕТСЯ: (СВЕРХУ КОНКР—ОР (НОЛЬ))
ПРОВЕРКА СЛОТА КОНКР-ОР: требует ФИЗ—ОБ
следует после on, put, после заполнителя объекта КАНДИДАТЫ ДЛЯ КОНКР-ОР: (ФИЗ—ОБ ТИП (РЫЧАГ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ))
степень предпочтительности 1: следует после put,
(ФИЗ—ОБ ТИП (ОСНОВАНИЕ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) степень предпочтительности 2: следует после on, put ПРЕДПОЧИТАЕМЫЙ ЗАПОЛНИТЕЛЬ: (ФИЗ—ОБ ТИП (ОСНОВАНИЕ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) УБИРАЕТСЯ ЗАПОЛНИТЕЛЬ ИЗ СЛОТА ОБЪЕКТ ПОВТОРНАЯ ПРОВЕРКА СЛОТА ОБЪЕКТ: ТРЕБУЕТ ФИЗ—ОБ
следует после put, предшествует заполнителю слота К КАНДИДАТЫ ДЛЯ СЛОТА ОБЪЕКТ: (ФИЗ—ОБ ТИП (РЫЧАГ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ))
степень предпочтительности 2: следует после put, предшествует заполнителю слота К (ФИЗ—ОБ ТИП (ОСНОВАНИЕ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) степень предпочтительности 1: следует после put ПРЕДПОЧИТАЕМЫЙ (ФИЗ—ОБ ТИП (РЫЧАГ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ))
ЗАПОЛНИТЕЛЬ:
СПИСОК: (ФТРАНС ДЕЯТЕЛЬ (НОЛЬ)
ОБЪЕКТ (ФИЗ—ОБ ТИП (РЫЧАГ)
ЯВЛ—ЧАСТЬЮ (НОЛЬ)
РЕФ (НОЛЬ)
К (СВЕРХУ КОНКР—ОР (ФИЗ—ОБ ТИП (ОСНОВАНИЕ)
ЯВЛ—ЧАСТЬЮ (НОЛЬ)
РЕФ (НОЛЬ))))
(РЕФ) использовано
(ФИЗ—ОБ ТИП (РЫЧАГ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) использовано
(СВЕРХУ КОНКР—ОР (НОЛЬ)) использовано
(РЕФ)
(ФИЗ—ОБ ТИП (ОСНОВАНИЕ) ЯВЛ—ЧАСТЬЮ (НОЛЬ) РЕФ (НОЛЬ)) использовано
показывает выбор заполнителя для слота КОНКР-ОРИЕНТИР и, наконец, показывает выбор очередного наилучшего заполнителя для слота ОБЪЕКТ.
Процесс понимания будет завершен, когда будут обследованы оставшиеся слоты в значении слова base и когда слот РЕФ будет заполнен значением второго артикля the. В этот момент из К-СПИС- КА убираются все „использованные" понятия; остающиеся в списке понятия и составляют наилучшее понимание входного сообщения в рамках возможностей АЕЯ:
К-СПИСОК (ФТРАНС ДЕЯТЕЛЬ (НОЛЬ)
ОБЪЕКТ (ФИЗ—ОБ ТИП (РЫЧАГ)
ЯВЛ—ЧАСТЬЮ (НОЛЬ)
РЕФ (ОПР))
К (СВЕРХУ КОНКР—ОР (ФИЗ—ОБ ТИП (ОСНОВАНИЕ)
ЯВЛ—ЧАСТЬЮ
(НОЛЬ) РЕФ (ОПР))))
Итак, к этому моменту АЕЯ построил наилучшее (в пределах своих возможностей) понимание входного сообщения. Поскольку это понимание содержит пустые слоты, то потребуется его дополнительная обработка посредством БНП. Если бы к АЕЯ обратились с просьбой построить очередные наилучшие интерпретации, то он провел бы повторную обработку сообщения в поисках альтернативного значения, в результате чего он заполнил бы слот ОБЪЕКТ значением слова base ‘основание’, а слот КОНКР-ОРИЕНТИР — значением слова post ‘рычаг’.
5.4.