ФОНЕТИЧЕСКИЙ звуко-буквенный разбор слов онлайн
 <<
>>

Программа БНП

После окончания обработки входного сообщения в АЕЯ оно мо­жет и не быть полностью понятым. Если в сообщении отсутствовали некоторые слова, то К-СПИСОК может содержать КЗ с незаполнен­ными слотами, а также такие КЗ, которые не могли быть объединены в единую КЗ.

В подобных случаях для завершения процесса пони­мания происходит обращение к БНП. Когда задача заключается в заполнении пустых слотов в некоторой КЗ, этот блок делает умозаключения о подходящих заполнителях на основе знаний о пред­метной области. Когда перед БНП стоит задача объединения не­скольких КЗ в одну, он отыскивает в знаниях предметной области такую КЗ, пустые слоты которой могли бы быть заполнены этими оставшимися КЗ. Когда в БНП осуществлено заполнение всех пустых слотов потенциально правильными заполнителями и объединение всех необъединенных КЗ в одну, можно считать, что в результате получено полное понимание значения высказывания. Перед тем как передать это значение программе управления диалогом, БНП про­веряет соответствие своего понимания намерению пользователя и для этого выражает свою интерпретацию на естественном языке. Если пользователь не соглашается с этим пониманием, то БНП продолжает поиск в своих знаниях о предметной области, строит очередную, наиболее правдоподобную интерпретацию и так далее, до тех пор, пока он не выведет нужное значение или не исчерпает все свои возможности. Вообще говоря, БНП предпочитает заполнять слот элементом из К-СПИСКА, когда это только возможно. Этот принцип естествен потому, что пользователь обычно включает то или иное слово в свое высказывание, имея в виду его вклад в зна­чение всего сообщения. Если же среди элементов К-СПИСКА не находится подходящих заполнителей слотов, то БНП производит поиск с использованием списка исправлений, истории диалога и зна­ний о предметной области. Таким образом, БНП выводит понятия в порядке их разумной правдоподобности.

Если бы БНП действовал так, как сказано выше, то у нас не было бы гарантии, что процесс поиска, осуществляемый БНП, когда- либо будет закончен. Так, при определенных условиях БНП ищет в контексте и в знаниях о предметной области некоторую КЗ с пустыми слотами, намереваясь заполнить их результатами частич­ного понимания. Иначе говоря, БНП должен вывести некоторую КЗ, имеющую слот, который может быть заполнен какой-то КЗ, находя­щейся в данный момент в К-СПИСКЕ. К сожалению, этот процесс может продолжаться бесконечно: откуда БНП знает, что надо при­остановить вывод все более разрастающихся (по принципу гнездово­го включения) КЗ? Ответ на этот вопрос дает функция БНП: вывод понятий прекращается, когда получена такая КЗ, на которую может реагировать ПУД. Поскольку БНП продолжает процесс вывода до тех пор, пока он не заполнит все слоты в некоторой КЗ, на ко­торую может реагировать ПУД, то такие КЗ выступают в ка­честве целей БНП. Поэтому они именуются целевыми понятиями. Что касается реализации, то существует несколько возможных спо­собов, позволяющих блоку ПУД сообщить целевые понятия програм­ме БНП. В настоящее время мы используем простейший вариант ре­ализации: целевые понятия помечаются как таковые, а поиск в БНП осуществляется сверху вниз, начиная с некоторого целевого поня­тия. Если первое выбранное целевое понятие оказывается неверным, то БНП использует следующее и так далее, пока не находит правильное понятие. Будущее исследование должно привести к раз­работке более тонких стратегий поиска.

Алгоритм работы БНП имеет дело прежде всего ссґ^труктурой данных, именуемой СПИСКОМ-УЗЛОВ (в начале работы список пуст).

Приведем описание этого алгоритма:

(1) Если в К-СПИСКЕ целевые понятия отсутствуют, собрать из

знаний о предшествующей части диалога и знаний о предметной области все целевые понятия и поместить их в СПИСОК-УЗЛОВ. В противном случае поместить все целевые понятия из К-СПИС- КА в СПИСОК-УЗЛОВ.

(2) Для каждого пустого слота, представленного в значении первого элемента СПИСКА-УЗЛОВ, отыскать из контекста и знаний о предметной области всех кандидатов в заполнители, удовлетво­ряющих семантическим требованиям этого слота.

Упорядочить кандидатов таким образом, чтобы кандидаты из исправлений пользователя шли перед кандидатами из знаний о предшест­вующей части диалога, а кандидаты из знаний о предшест­вующей части диалога — перед кандидатами, полученными из знаний о предметной области. Внутри каждой из этих групп упорядочить кандидатов в соответствии с числом семантических предпочтений, которым они удовлетворяют.

(3) Для каждого кандидата построить копию первого элемента из СПИСКА-УЗЛОВ и поместить этого кандидата в слот этой копии, а затем результирующую КЗ поместить обратно в СПИ­СОК-УЗЛОВ.

(4) Если КЗ, находящаяся в начале СПИСКА-УЗЛОВ, имеет пустые слоты, то перейти к (2). Если эта КЗ не имеет пустых слотов, то направить ее в КГ, чтобы задать пользователю вопрос о том, правильно данное понимание или нет.

(5) Если пользователь подтвердит данную КЗ, то послать ее в ПУД для построения реакции на проанализированное входное сообще­ние. Если же пользователь не подтвердит данную КЗ, то убрать ее из СПИСКА-УЗЛОВ и перейти к (2).

Подобно тому как процесс обработки сообщения в АЕЯ может быть охарактеризован как поиск по принципу древесной структуры, действие БНП тоже можно описывать таким же способом. Другими словами, в качестве корня дерева БНП берет наилучшее понимание, построенное программой АЕЯ, а в качестве ниже лежащих выступают узлы, в которых находятся КЗ, имеющие дополнительно заполняемые слоты. Терминальными являются узлы, в которых совсем нет пустых слотов. Порождение ниже лежащих узлов по отношению к некото­рому исходному узлу включает:

— выбор пустого слота;

— отыскание его семантических требований и предпочтений;

— отыскание всех возможных кандидатов, удовлетворяющих этим требованиям, в знаниях о предметной области, в знании о диалоге и в списке исправлений, внесенных пользователем;

— создание копии КЗ, находящейся в исходном узле, для каж­дого кандидата и заполнение слота некоторым кандидатом;

— и, наконец, построение нового узла для каждой такой КЗ. (с заполненным слотом).

Таким образом, КЗ, стоящая в каждом новом узле, будет иметь заполненный слот там, где раньше он был пустым. Заполнитель часто будет иметь свои пустые слоты, и они будут тоже в свою очередь заполняться. Чтобы обеспечить то или иное окончание поиска, в принципе бесконечное рекурсивное заполнение слотов прерывается на произвольном фиксированном уровне. (Возможен альтернативный подход по принципу „сначала поиск вширь", при котором такое произвольное ограничение не требовалось бы.) Затем в качестве обрабатываемого выбирается новый исходный узел, в ко­тором заполнитель имел наиболее высокую степень предпочтитель­ности для того самого (см. выше) слота. Поиск продолжается до тех пор, пока не будет достигнут терминальный узел, в котором совсем не будет пустых слотов. В этот момент то понимание, которое представлено в виде КЗ, находящейся в этом терминальном узле, выражается в форме высказывания на естественном языке, и поль­зователя просят проверить это понимание. Если оно было правиль­ным, то поиск прекращается. Если же оно неправильно, то БНП поднимается вверх по дереву и продолжает поиск с той точки, в которой поиск был приостановлен. Этот процесс продолжается до тех пор, пока БНП не обойдет все дерево возможностей.

Если нужное значение все же не выведено, то происходит обра­щение к АЕЯ с целью порождения его очередной, наиболее правдо­подобной интерпретации для слов входного сообщения, а затем БНП снова начинает выводить заполнители для пустых слотов этой оче­редной КЗ, полученной из АЕЯ. Таким образом, БНП продолжает поиск полного понимания, начатый блоком АЕЯ, используя для этого, по существу, ту же самую методику локального поиска по принципу „наилучший вариант идет первым"; если поиск оканчивается неуда­чей, то он возвращает контроль блоку АЕЯ, который порождает свой очередной, наиболее правдоподобный вариант интерпретации сообщения, и БНП снова продолжает поиск. Таким образом, поиско­вые стратегии АЕЯ и БНП вместе осуществляют единый процесс поиска по принципу „наилучший вариант идет первым".

Этот единый процесс поиска исчерпывающим образом обследует пространство возможных значений входного высказывания, упорядоченных по сте­пени правдоподобия (как это было описано выше), и в конечном итоге сможет найти любую терминальную (finite) КЗ (Nilsson, 1971). Поскольку мы считаем, что любое нужное значение (вложен­ное в высказывание отправителем) в принципе всегда представимо посредством терминальной КЗ, то мы получаем гарантию, что поиск, осуществляемый блоками АЕЯ и БНП, в конечном итоге выведет нужное значение.

Приводимый ниже пример иллюстрирует обработку в БНП того значения высказывания put the post on the base ‘прикрепи рычаг к основанию’, которое получено в результате понимания этого сообщения в АЕЯ. БНП начинает свою работу, когда он получает наилучшее понимание этого предложения от АЕЯ и помещает его в СПИСОК-УЗЛОВ, как это показано ниже.

СПИСОК-УЗЛОВ: (ФТРАНС ДЕЯТЕЛЬ (НОЛЬ)

ОБЪЕКТ (ФИЗ-ОБ ТИП (РЫЧАГ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))

К (СВЕРХУ КОНКР-ОР (ФИЗ-ОБ ТИП (ОСНОВАНИЕ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))))

БНП берет первую КЗ в СПИСКЕ-УЗЛОВ — как раз ту, которая приведена выше,— и отмечает, что в ней присутствует пустой слот ДЕЯТЕЛЬ. Он отыскивает семантические требования и предпочтения для слота ДЕЯТЕЛЬ и устанавливает, что заполнитель этого слота должен быть одушевленным существом. Поскольку в данном примере мы считаем, что исправления со стороны пользователя и знания о предшествующей части диалога отсутствуют, то БНП проводит поиск заполнителя только с помощью знаний о предметной области. Он отыскивает, во-первых, понятие для себя самого и, во-вторых, понятие пользователя, создает копии рассматриваемой КЗ, в кото­рых слот ДЕЯТЕЛЬ заполняется одним из этих двух понятий, а затем вносит эти заполненные копии в СПИСОК-УЗЛОВ. Та копия, которая содержит понятие самой системы МЭРФИ, стоит в СПИСКЕ-УЗЛОВ первой, потому что это понятие было найдено первым в знаниях о предметной области; этот порядок отражает знание о том, что сама система МЭРФИ выступает в качестве деятеля гораздо чаще, чем пользователь (иначе говоря, такое заполнение слота более правдо­подобно).

Новый вид СПИСКА-УЗЛОВ показан ниже:

СПИСОК-УЗЛОВ: (ФТРАНС ДЕЯТЕЛЬ (МЭРФИ)

ОБЪЕКТ (ФИЗ-ОБ ТИП (РЫЧАГ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ)

РЕФ (ОПР))

К (СВЕРХУ КОНКР-ОР (ФИЗ-ОБ ТИП (ОСНОВАНИЕ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))))

ФТРАНС ДЕЯТЕЛЬ (ПОЛЬЗОВАТЕЛЬ)

ОБЪЕКТ (ФИЗ-ОБ ТИП (РЫЧАГ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))

К (СВЕРХУ КОНКР-ОР (ФИЗ-ОБ ТИП (ОСНОВАНИЕ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))))

Цикл будет повторен, когда БНП снова возьмет первую КЗ и снова обследует ее с точки зрения пустых слотов. Очередной пустой слот, который будет найден,— это слот ЯВ Л-ЧАСТЬЮ (в первом его появлении). Единственным возможным заполнителем, выводимым из знаний о предметной области, оказывается КЗ (СО- СТАВНОЙ-ОБ ТИП (РУБИЛЬНИК)). Эта КЗ и используется для заполнения слота ЯВЛ-ЧАСТЬЮ (в первом его появлении), и резуль­тирующая КЗ вставляется обратно в СПИСОК-УЗЛОВ. В сле­дующем цикле только что модифицированная КЗ снова берется из СПИСКА-УЗЛОВ, снова обследуется, и в ней обнаруживается еще один пустой слот, а именно второе вхождение слота ЯВЛ-ЧАСТЬЮ; и этот слот аналогичным образом заполняется значением (СОСТАВ- НОЙ-ОБ ТИП (РУБИЛЬНИК)). Новый вид СПИСКА-УЗЛОВ пока­зан ниже:

СПИСОК- (ФТРАНС ДЕЯТЕЛЬ (МЭРФИ)

УЗЛОВ: ОБЪЕКТ (ФИЗ-ОБ ТИП (РЫЧАГ)

ЯВЛ-ЧАСТЬЮ (СОСТАВНОЙ-ОБ ТИП (РУБИЛЬНИК))

РЕФ (ОПР))

К (СВЕРХУ КОНКР-ОР (ФИЗ-ОБ ТИП (ОСНОВАНИЕ)

ЯВЛ-ЧАСТЬЮ (СО­СТАВНОЙ-ОБ ТИП (РУБИЛЬНИК)) РЕФ (ОПР))))

(ФТРАНС ДЕЯТЕЛЬ (ПОЛЬЗОВАТЕЛЬ)

ОБЪЕКТ (ФИЗ-ОБ ТИП (РЫЧАГ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ)

РЕФ (ОПР))

К (СВЕРХУ КОНКР-ОР (ФИЗ-ОБ ТИП (ОСНОВАНИЕ)

ЯВЛ-ЧАСТЬЮ (НОЛЬ) РЕФ (ОПР))))

В данный момент первая КЗ в СПИСКЕ-УЗЛОВ уже не имеет пустых слотов и, более того, известна системе как целевое понятие. БНП обращается к генератору естественного языка, чтобы пользова­телю был задан вопрос, имел ли он в виду именно это значение выска­зывания. Если пользователь дает положительный ответ, то, значит, БНП успешно завершил процесс понимания. Если же ответ отрица­тельный, то БНП убирает из списка только что обработанную КЗ и продолжает циклическую обработку СПИСКА-УЗЛОВ. В случае, описанном выше, такая обработка приведет к выводу, что, возможно, в качестве заполнителя слота ДЕЯТЕЛЬ имелся в виду сам пользо­ватель, а не система МЭРФИ.

Когда БНП получит у пользователя подтверждение правильности своего понимания, тогда этот блок передаст завершенную интерпре­тацию подсистеме ПУД, которая в свою очередь выведет ответную реакцию на проанализированное входное сообщение. Кроме того. БНП также обновляет знания о диалоге с помощью понятий, из которых складывается полное понимание высказывания. Поскольку БНП использует информацию о кандидатах на заполнение слотов сначала из знаний о диалоге, а уже потом из знаний о предметной области, он тем самым использует сначала более релевантные поня­тия, а затем — менее релевантные. В частности, БНП может выво­дить целевые понятия как функцию контекста. Поэтому, например, при одном и том же входном высказывании МЭРФИ поймет его одним способом в рамках одного диалогического контекста и другим способом — в рамках другого контекста, как раз в силу того, что система может привлекать целевые понятия из знаний о диалоге.

5.5.

<< | >>
Источник: Б.Ю. Городец­кий. Новое в зарубежной лингвистике: Вып. XXIV. Компьютерная лингвистика: Пер. с англ./Сост., ред. и вступ, ст. Б. Ю. Городец­кого.— М.: Прогресс,1989.—432 с.. 1989

Еще по теме Программа БНП: