ОБЗОР АНАЛИЗАТОРОВ, ОСНОВАННЫХ НА КОНЦЕПТУАЛЬНЫХ ЗАВИСИМОСТЯХ
На протяжении последних десяти лет исследователи, работающие в рамках нашего проекта, разработали и запрограммировали большое число анализаторов. Задача этих анализаторов состояла в преобразовании исходных выражений естественного языка в некоторое внутреннее представление.
(Заметим, что первая фаза процесса понимания традиционно соотносится с выявлением синтаксической формы входного сообщения.) Однако термин "анализ" (parsing) с не меньшим основанием может быть применен к первой фазе понимания в любом ее истолковании. В этой статье мы рассмотрим некоторые из проблем, возникших в ходе создания наших анализаторов, и представим новую теорию анализа, моделирующую реальный процесс понимания, как он осуществляется в ходе обычного чтения текста; опишем программу, которая реализует эту теорию и понимает газетные сообщения на тему о терроризме.Все наши анализаторы были программами, которые преобразовывали английские предложения в представления их значений в рамках теории концептуальных зависимостей (КЗ). В основе их построения всегда лежало методологическое допущение о том, что используемый алгоритм анализа должен быть как можно более адекватным в психологическом плане. Таким образом, наши анализаторы предназначены для моделирования того способа анализа, которым, как мы полагаем, пользуются люди. Это методологическое допущение повлекло за собой операционный принцип, соблюдавшийся, за одним исключением, во всех случаях (которые мы обсудим ниже), а именно, что алгоритм анализа движется по тексту слева направо и осуществляет его просмотр один раз, не допуская возврата. Эти анализаторы не были рассчитаны на обработку предложений, похожих на настоящие "садовые тропинки", когда в процессе понимания людям приходится осуществлять возврат назад.
Первый анализатор, который мы разработали (Schank and Т е s 1 е г, 1969), использовал так называемые "правила реализации" и преобразовывал английские синтаксические структуры в КЗ.
(Этот термин, взятый из Lamb, 1966, означал, что мы соотносили один языковой уровень с другим.) Главный недостаток этого анализатора состоял в том, что он нарушал нашу методологическую установку на моделирование процессов, осуществляемых человеком. Для многих английских предложений, которые были неоднозначными, применявшийся нами алгоритм не мог определять предпочтительность одной интерпретации по сравнению с другой, хотя люди явно владеют такого рода предпочтениями.В работе S с h a n k et al., 1970 мы предложили некоторое решение для устранения этого недостатка и реализовали новые принципы при построении нового анализатора, который мы назвали SPINOZA II. SPINOZA II должен был для управления ходом анализа использовать само представление КЗ. Это значит, что в процессе анализа значение любого понятого сегмента (от начала предложения) должно помогать при определении значения остальной части предложения. Эта идея повлекла за собой сопутствующую идею о том, что, поскольку анализом будет управлять значение, мы на самом деле, видимо, почти не должны полагаться на синтаксис как на средство осуществления нашего анализа. (В то же самое время сходную идею разрабатывал
Уилкс (Wilks, 1973), и его мнение послужило поддержкой для нашей веры в возможность осуществления этой идеи.) Мы не считали, что сможем обойтись без синтаксиса. Наша точка зрения состояла в том, что опора прежде всего на семантические аспекты существенно уменьшит зависимость наших анализаторов от синтаксиса.
В то время, когда разрабатывались анализаторы указанного типа, другие исследователи также создавали методы для преобразования входных предложений на естественном языке во внутреннее представление. Большинство этих методов основывалось на синтаксисе предложений. Один из наиболее популярных методов состоял в использовании Расширенной сети переходов (Augmented Transition Network (ATN)). Анализаторы этого типа обсуждались в работах: Thorne et al., 1967; Bobrow and Fraser, 1969; Woods, 1969; Kaplan, 1975.
Анализатор, очень близкий к классу ATN, представлен в работе Винограда (см. Winograd, 1972). Модели типа ATN опирались преимущественно на синтаксис, лишь изредка обращаясь к установлению нескольких простых семантических свойств слов. Еще более тесно связаны с синтаксисом анализаторы, базирующиеся на трансформационной грамматике, как, например, в работе: Plath, 1974. Одной из последних публикаций на эту тему является работа: Marcus, 1979, где описывается анализатор, основанный на предположении о возможности выделения синтаксиса как самостоятельной части понимания языка. Важно подчеркнуть, что все эти программы рассматривают синтаксический анализ как процесс, полностью изолированный от остальных сторон понимания. Этими системами управлял синтаксис, хотя в некоторых случаях синтаксическому анализатору разрешалось запрашивать семантическую информацию. Некоторые системы понимания речи, в частности Hearsay- II (CMU Computer Science Speech Group, 1976), используют более интегральный подход, но они лишь слегка касаются того уровня анализа, который интересует нас. В рамках нашей концепции мы всегда подчеркивали необходимость интеграции семантики и синтаксиса в процессе анализа.Анализатор SPINOZA-ІІ был закончен лишь отчасти, когда мы вынуждены были от него отказаться по соображениям не академического порядка. Было предпринято несколько попыток продолжить разработку этого анализатора, пока Крис Ризбек не создал анализатор, который был похож на SPINOZA-II по идее, но отличался по форме (см. R і е s b е с к, 1975). Программа этого анализатора была основана на так называемых запросах, представлявших собой особую форму проверки выполнения заданных условий (см. Newell, 1973). Запросы активизиррвались каждый раз, когда могли быть выдвинуты ожидания о некоторой синтаксической или семантической информации, и выполнялись, если включенные в них ожидания оказывались истинными. Таким образом, анализ направлялся посредством ожиданий, что делало систему Ризбека, позже названную ELI, сильно ориентированной на анализ "сверху вниз" (см.
R і е s b е с k and Schank,1976).
ELI была использована в роли "приставки" к системе SAM, нашей системе понимания, основанной на сценариях (Schank et al., 1975; Cullingford, 1978), и была объединена с работой Гершмана (G е г s h m a n, 1977) по именным группам, что привело к созданию анализатора, который мог обрабатывать очень сложные по структуре предложения.
Одним из главных недостатков ELI является ее "негибкость". Грейнджер (Granger, 1977) создал для ELI дополнительный компонент — FOUL-UP, который определяет значение неизвестных слов в контексте, и это придало системе некоторый запас прочности. Но в повседневной практике исследователи приходили к выводу, что проще создавать особые анализаторы, предназначенные для специальных целей и построенные по типу ELI, которые являются менее громоздкими и более удобными при пользовании. Например, программа POLITICS Карбонелля (С а г- b о n е 1 1, 1979) — модель субъективного понимания политических событий — использует анализатор, сходный с ELI, но построенный самим Карбонеллем.
Может быть, самый важный итог работы Карбонелля состоит в том, что она выявила для всех нас основную ошибку, характерную для наших рассуждений о построении больших понимающих систем. Мы всегда склонялись к принципу модульности в проектировании наших программ как потому, что это всегда рассматривалось как хороший стиль в программировании, так и потому, что, поскольку наши системы являются очень большими, каждый отдельный модуль часто составлял тему работы отдельного человека.
Однако эта модульность явилась причиной целого ряда трудностей. При таком подходе система, которую мы строим, должна, например, в идеале, использовать ELI на первом этапе анализа (в качестве "приставки"). Но на практике ELI оказывается очень большой и громоздкой программой. Далее, возникает еще одна практическая проблема, а именно: словарь для любой новой области, в которой должна работать создаваемая система, является, скорее всего, новым для ELI.
Поскольку в ELI определения слов являются в известном смысле сами программами, всякая новая система в любом случае потребует написания большой части соответствующей анализирующей программы с самого начала. Эта практическая проблема приводит, далее, к гораздо более интересному вопросу. Подобно тому как несколько лет назад мы осознали, что для построения более интегрированной анализирующей системы важно воспользоваться силой имевшихся у нас представлений КЗ, точно так же любой новый анализатор, разрабатываемый для новой системы, должен в принципе пользоваться результатами, полученными на более высоких уровнях понимания, которые являются частью новой системы. Так, система POLITICS может проводить анализ более эффективно, если она использует не только частично построенное представление КЗ для того фрагмента текста, который она уже поняла, но также и его место в идеологии, которую использует эта программа, его общую значимость и т. д. С этой точки зрения модульность оказывается весьма серьезным недостатком. Почему не извлекать выгоду из всего, что имеется в нашем распоряжении и может помочь в процессе анализа? Тот факт, что для осуществления анализа люди используют только синтаксис и некоторые конкретные семантические признаки (именно эти, а не другие), является не более вероятным, чем то, что они используют только чистый синтаксис. Понимание является в полном смысле этого слова интегральным процессом. Приверженность принципу построения модульных систем помешала прогрессу в автоматизации анализа, потому что эта задача требует использования наших знаний в полном объеме; это, очевидно, необходимо и для разрешения неоднозначности предложения, и для выявления подходящих смыслов слова, и, что не менее важно (как мы увидим ниже в этой статье), для принятия решений о том, что в тексте следует игнорировать.Необходимо уточнить, что мы имеем в виду, когда объявляем модульность помехой в развитии систем анализа. Ясно, что с точки зрения программирования наши анализаторы должны иметь модульный характер. Однако, если на поверку оказывается, что модули тратят все свое время на коммуникацию друг с другом, то данная конкретная схема модульной организации должна вызывать подозрения — в реальной действительности модули образуют интегральное единство. Поскольку коммуникация модулей друг с другом, как правило, весьма трудна, наблюдается стремление избегать ее вообще. Это может привести к проектированию таких процедур, которые по замыслу должны взаимодействовать друг с другом, а на практике становятся все более и более изолированными друг от друга. Именно это и произошло со стратегией модульной организации систем, которую мы описали выше.
2.