ВЫРАБОТКА ОТВЕТОВ НА ВОПРОСЫ
К настоящему времени в литературе описано множество эвристик, полезных при выработке ответов на вопросы по текстам (Dyer, Lehnert, 1980; Lehnert, 1978). Мы коснемся тех аспектов ответов на вопросы, которые специфичны именно для системы BORIS.
5.1. Анализ языковых выражений во время выработки ответа на вопрос (в противоположность анализу текста во время понимания рассказа)
Для обработки предложений в рассказе и вопросов по тексту рассказа BORIS использует один и тот же анализатор. Поскольку процесс анализа объединен с процессами формирования и обработки содержания памяти, то выработка ответа на вопрос протекает в основном точно так же, как обработка предложения в ходе понимания рассказа. Однако существуют три ситуации, при которых „режим" понимания (то есть понимание текста рассказа vs. выработки ответа на вопросы) влияет на действия анализатора.
5.1.1. Обращение с новыми объектами (tokenization).
Если анализатор встречает обозначение некоторого элементарного объекта, некоторой конкретной обстановки или персонажа, он обращается к памяти для выяснения того, имеется ли уже соответствующий знак в эпизодной памяти. При работе в режиме понимания текста неудача при поиске референта приводит к созданию в памяти нового знака. Однако в процессе выработки ответа на вопрос неудача при поиске референта в памяти приводит к отказу от попытки построить какой-либо ответ. Вместо этого порождается „жалоба", указывающая на то, что референт не найден. Например:
В.: Чем Бенджамин зарабатывал себе на жизнь?
О.: Я не помню никакого упоминания о персонаже по имени Бенджамин.
5.1.2. Проверка пресуппозиций.
В процессе выработки ответа на вопрос анализатор сравнивает заполнение ролевых слотов, предполагаемое в вопросе, с действительным заполнением их в эпизодной памяти. В процессе понимания текста рассказа при нарушении соответствия ролевых слотов вырабатывается сигнал о том, что должна быть построена другая актуализированная структура.
Например, если бы в нашем рассказе было упомянуто письмо от Сары, это вынудило бы систему построить новую конфигурацию типа К-ПИСЬМО, отличную от конфигурации, связанной с письмом от Поля. Однако в процессе выработки ответа на вопрос отрицательный результат сопоставления ролей указывает на ложность пресуппозиции. Поэтому BORIS отвергает соответствующий вопрос и исправляет ложную пресуппозицию. Например:В.: Почему Сара написала письмо Ричарду?
О.: Ричарду написал письмо Поль, а не Сара.
5.1.3. Вопросительные слова.
Слова типа кто, который, что, почему, где и т. п. обрабатываются особым образом. Если такое слово входит в вопрос, оно рассматривается как сигнал информационного запроса. В ходе же понимания текста рассказа такие слова обрабатываются специальными демонами и рассматриваются как указатели начала придаточного предложения. Если в процессе обработки рассказа встречается вопрос, то он трактуется как риторический вопрос и ответить на него никакой попытки не делается.
5.2. Использование памяти для понимания вопроса
Для системы BORIS понять вопрос — значит найти в эпизодной памяти референт, соответствующий концептуальному содержанию вопроса. Одно из следствий этого подхода состоит в том, что обследование эпизодной памяти производится не только в процессе непосредственной выработки ответа на вопрос, но и в ходе самого процесса понимания вопроса. В отличие от многочисленных систем поиска информации в базе данных, которые в качестве механизатора-посредника при обращении к поисковой системе используют изолированный анализатор, система BORIS обследует память, содержащую информацию о рассказе, в процессе самого понимания вопроса. Например, если спросить читателя нашего рассказа
Q.: Why did Richard not pay Paul back?
‘В.: Почему Ричард не вернул долг Полю?’,
то он, конечно, даже и не подумает о том, что выражение pay back можно здесь отнести к чему-либо другому, кроме как к акту возврата взятых в долг денег, поскольку, когда читатель анализирует вопрос, он все время держит в уме содержание рассказа.
Представим себе теперь, что в рассказе говорится следующее:Ричард состоял в любовной связи с женой Поля, и Поль узнал об этом. Поль поклялся, что он убьет Ричарда за разрушение его семьи. Поль взял дробовик и пошел к Ричарду, но полицейские арестовали Поля, решив, что у него нервное расстройство. Когда полиция увозила Поля, он поклялся, что накажет Ричарда, даже если это будет его последним делом.
Теперь если читателя спросить:
Q.: Why did Paul not pay Richard back?
‘В.: Почему Поль не отплатил Ричарду?’,—
то он и не заметит, что выражение pay back может означать возврат денег. Он сразу же поймет это выражение как обозначение акта мести.
Неоднозначность выражения pay back не может быть разрешена с помощью синтаксических или семантических знаний (в том числе общих знаний о мире). Мы должны знать, о чем именно говорилось в рассказе. Таким образом, в результате анализа выражения pay back в данном эпизодном контексте строится такое представление вопроса, которое ссылается на некоторое событие, уже содержащееся в эпизодной памяти. Следовательно, к тому времени, когда будет понят вопрос, будет произведен поиск в эпизодной памяти. Именно это и обеспечивает быстрый выбор правильного ответа. Нередко ответ на вопрос становится известным системе BORIS еще до завершения полного анализа вопроса (см. Dyer, 1981с).
Поиск в эпизодной памяти особенно полезен тогда, когда вопросы носят нечеткий характер. Например, вопрос „Устанавливал ли Поль контакт с Ричардом, находясь в Сан-Франциско?" носит менее конкретный характер, чем вопрос „Написал ли Поль Ричарду из Сан-Франциско?". В подобных случаях эпизоды ищутся через посредство МЕТА-КОП. Если систему спросить:
В.: Помог ли Поль Ричарду?,
она будет искать в эпизодной памяти МЕТА-КОП, которая связана с оказанием содействия. И как только в качестве вероятного референта будет найдено МК-СОДЕЙСТВИЕ, будет получен доступ к тому конкретному событию, которое связано с этим абстрактным событием:
О.: Да, Поль одолжил Ричарду деньги.
5.3. Поиск ответа в ходе анализа вопроса
Поскольку в ходе анализа вопроса BORIS производит поиск в эпизодной памяти, то часто бывает так, что BORIS выбирает ответ еще до завершения процесса анализа. Рассмотрим следующий вопрос:
В.: Кто случайно пролил кофе на Поля в ресторане?
Большинство опрошенных читателей рассказа утверждали, что они подумали о Ричарде не позднее, чем дошли до слова кофе. Когда система BORIS встречает в данном вопросе упоминание о событии „пролил", она обращается к эпизодной памяти и находит его. Сразу после этого срабатывает демон, ассоциируемый со словом кто, и вызывает соответствующий узел из этого эпизода. Другие узлы также проверяются на согласование с содержанием эпизодной памяти; система делает это на всякий случай, чтобы убедиться в том, что пресуппозиции вопроса не противоречат содержимому эпизодной памяти. Как видим, система „узнает" ответ (на вопрос „кто?") еще до полного прочтения всего вопроса.
Однако такое быстрое отыскание ответа достигается отнюдь не всегда. Вопросы о причине события (например, со словом почему) часто требуют дополнительного поиска связей, касающихся намерений персонажей (Dyer, Lehnert, 1980; Dyer, 1982), и уже после этого может быть найдено концептуальное представление ответа. С другой стороны, в случае вопросов, связанных с выяснением справедливости тех или иных фактов (Lehnert, 1978), отыскание ответа предполагает обследование эпизодной памяти для подтверждения (или отрицания) события, упоминаемого в вопросе. Поскольку же BORIS все равно обследует эпизодную память в ходе анализа вопроса, то система узнает ответ на вопрос именно в тот момент, когда достигнуто полное понимание вопроса. Это объясняется тем, что процесс понимания вопроса для BORIS включает обнаружение его референта в памяти.
5.4. Поиск с восстановлением
BORIS актуализирует только фрагменты КОП, так как процедуры поиска, осуществляемые во время отыскания ответа, могут восстанавливать события по фрагментам КОП.
Если систему спросить:
В.: Написал ли Поль Ричарду?,
она начнет искать в эпизодной памяти К-ПИСЬМО. Поскольку же в рассказе не говорилось о написании письма, в эпизодной памяти такое событие актуализировать не удается. Однако событие, состоящее в написании письма, может быть выведено. BORIS знает, что Ричард не мог бы получить письмо от Поля, если бы Поль не написал письма. В данный момент поиска событие, состоящее в написании Полем письма, считается найденным и актуализируется. Если данный вопрос будет задан еще раз, эта актуализированная структура будет просто найдена (а не выведена). Это означает, что отыскание ответа на данный вопрос во второй раз потребует меньшего времени поиска. Таким образом, в процессе отыскания ответов на вопросы может модифицироваться содержание эпизодной памяти. А это позволяет повысить эффективность вызова данных, поскольку BORIS актуализирует только то, что используется для отыскания ответов.
Генератор системы BORIS (BORGEN) представляет собой адаптированную версию системы GEN, разработанной Родом МакГиром в Иейле (McGuire, 1980). В настоящее время BORGEN используется для синтеза ответов на английском языке на основе концептуальных представлений, выдаваемых системой BORIS в процессе получения ответов на вопросы.
6.1.