Рубрика ‘Основы лингвистики’

Обратная связь

LIFER анализирует типичные входные фразы, такие, как в диалоге 1, используя гораздо меньше секунды времени центрального процессора на графическом дисплее DEC, подсоединенном к машине PDP KL-104. Однако при сильной загрузке центрального процессора может произойти небольшая задержка при обработке входной фразы, что вызывает беспокойство пользователя. LIFER стремится снять это беспокойство, обеспечивая постоянную обратную связь. Например, луч электронно-лучевой трубки или печатная головка телетайпа непосредственно фиксирует результаты анализа фразы по мере продвижения слева направо. Такая обратная связь является важным свойством, присущим человеку; это явление того же порядка, что и поддержание связи с помощью взгляда, кивка головы и поглаживания бороды. Другим видом обратной связи является то, что система печатает сообщение PARSED! 'обработано', когда она закончила анализ входного текста и готова вызвать программное обеспечение прикладной системы (то есть системы, для которой LIFER обеспечивает интерфейс), чтобы ответить на вопрос, выполнить команду или включить информацию, содержащуюся во входном сообщении, в базу данных.

Неполные входы

Если пользователь только что задал вопрос What is the salary of Eric Johnson? 'Каково жалованье Эрика Джонсона?', а затем желает узнать его служебное положение и дату поступления на работу, гораздо удобнее и естественнее спросить: POSITION AND DATE HIRED 'Должность и дата поступления на работу', чем педантично печатать WHAT IS THE POSITION AND DATE HIRED OF ERIC JOHNSON. Учет склонности человека сокращать входной текст — важный фактор разработки прикладных систем. Хотя некоторые системы позволяют определить грамматику так, что она допускает неполные предложения в качестве "полных" входов 5, в LIFER это не является необходимым, так как система автоматически выводит возможные эллиптические (то есть неполные) структуры на основе грамматик, определенных для полных конструкций. (См. выше диалог 2).
Сначала LIFER пытается проанализировать входной текст как полное предложение 6. Только в случае, если такой анализ не срабатывает, система включает программу эллиптического разбора. Для уведомления пользователя об этой смене программ LIFER печатает сообщение TRYING ELLIPSIS 'попытка использования программы эллипсиса', когда запускается программа разбора эллипсиса. Если разбор неполного предложения прошел успешно, система снабжает пользователя дополнительной информацией, печатая после слов TRYING ELLIPSIS полный вариант неполного входного текста, который замещает сообщение PARSED! (печатаемое в случае полного входного текста). Входы 2—5 — различные неполные варианты одной и той же структуры входного предложения, а именно входа 1. Вход 2 вызывает замену атрибутов. Во входах 3—5 меняются лица, о которых запрашиваются сведения. Следует отметить, что во входе 5 запрашиваются сведения о положении и дате зачисления целой группы людей.

Коррекция орфографических ошибок

При работе с входными текстами, составленными человеком, важно учитывать, что они часто содержат орфографические ошибки. Независимо от того, действительно ли пользователь не знает правописания какого-либо слова или он просто неправильно его напечатал, результат один и тот же: искаженный вход. При разработке систем, нацеленных на исследование понимания естественного языка, нет необходимости обращать специальное внимание на коррекцию орфографии. Но пользователей прикладных систем раздражает, когда орфографические ошибки ведут к прерыванию процесса обработки текста и в конечном счете к задержкам и утомительным перепечаткам.
Способность к исправлению орфографических ошибок, реализуемая с помощью механизма коррекции системы INTERLISP, иллюстрируется диалогом 6. Печатается сообщение, указывающее, что было произведено исправление ошибки, а исправленное слово печатается непосредственно под неправильно написанным словом.Диалог 8 иллюстрирует реакцию LIFER, когда система не может успешно проинтерпретировать входное сообщение. Не сумев проанализировать предложение ни как полное, ни как эллиптическое и не имея возможности применить программу коррекции орфографических ошибок, LIFER прекращает обработку и печатает сообщение об ошибке. Это сообщение не является загадочным вздором типа ERROR TRAP AT LOC 13730 'Ошибка-ловушка в месте 13730', но ценной информацией, которая может помочь неопытному пользователю понять, в чем состоит ошибка, и содействовать ее исправлению. (Разработчики системы могут вызвать специальные диагностические стандартные подпрограммы, устанавливающие сложные ошибки, но это другой вопрос.) Сообщение о текущей ошибке (одно из нескольких) указывает, что LIFER поняла, что означает WHAT ASSISTANT PROFESSORS IN, но не знала слова COMPSCI. Система ожидала (DEPARTMENT-NAME) '(наз-вание-факультета )'.
Ё этом месте пользователь, по-видимому, поймет, что в лексиконе LIFER нет слова COMPSCI. Можно было бы попробовать выразить название факультета каким-либо другим способом, например, таким, как COMPUTER SCIENCE. С другой стороны, пользователь может быть поставлен в тупик, не имея понятия, что такое (DEPARTMENT-NAME). Это ведет к возникновению новой проблемы, иллкэСтрируемой диалогом 9.

Определение синонимов

В диалоге 12 пользователь пытается вновь употребить слово COMPSCI и вновь получает сообщение об ошибке. Вполне вероятно, что он привык употреблять такое сокра щение для computer science й не желает приспосабливаться к тем синонимам, которые в настоящий момент может обрабатывать система. Напротив, он хочет, чтобы система приспособилась к ЕГО привычкам. В диалоге 13 пользователь просит систему определять COMPSCI как CS8. В дальнейшем эти слова будут считаться синонимами. -В диалоге 14 диалог 12 вновь вызывается с помощью оператора REDO, действующего в INTERLISP. На этот раз слово COMPSCI понято. В диалоге 15 COMPSCI используется в новом входном сообщении.Механизм синонимии, представленный выше, позволяет LIFER, обучаясь новым словам, приспосабливаться к отдельным пользователям. Механизм перифразирования позволяет LIFER приспособиться к новым грамматическим конструкциям. Например, пользователь может устать печатать синтаксически "правильные" английские вопросы и захотеть использовать сокращенный формат. В диалоге 16 пользователь пытается употребить сжатое выражение и получает сообщение об ошибке. В диалоге 17 используется обычная английская конструкция, которая указывает системе, что с этого момента разрешается сокращенная форма. LIFER анализирует конкретную перифразу, данную ей в качестве примера, с целью найти обобщение, пригодное для других случаев. (Подробнее об этом будет сказано ниже.) Правила вывода, фиксирующие результаты этого обобщения, напечатаны для более опытного пользователя.В диалоге 18 пробуется новый сокращенный формат. Диалог 19 — это пример расширения эллиптических выражений, основанных на формате, определенном пользова^ телем. Диалог 20 показывает, что LIFER обобщила начальную перифразу с тем, чтобы обобщенная конструкция покрывала другие сходные с начальной перифразой сокращенные конструкции.
Диалоги 21 и 22 — это дальнейшая иллюстрация способности LIFER к перифразированию. На основе диалога 21 DUMPALLX принимает значение INDICATE THE ID, POSITION, DEPARTMENT AND SALARY OF X 'укажите идентификационный номер, должность, факультет и жалованье Х-а\

Обеспечение удобным языком интерфейса

В конечном итоге наиболее существенным требованием инженерной психологии, ориентированной на пользователя, является обеспечение его языком интерфейса, отражающим языковые структуры, необходимые для удобного общения с программами прикладной системы. Такие механизмы, как коррекция орфографических ошибок и обработка эллипсисов, хотя и важны, но никогда не смогут восполнить недостатков основных лингвистических механизмов.
При существующем уровне исследования проблем обработки языка было бы бесполезно пытаться представить окончательную спецификацию английского языка, обладающую достаточной общностью для покрытия всех потенциальных областей применения. Подход в LIFER базируется не на стремлении достигнуть некоторой окончательной спецификации, а скорее на желании обеспечить разработчиков интерфейсов основными понятиями, инструкциями и механизмами, которые позволяют за вполне приемлемое время создать надежное практическое определение языка специального назначения, покрывающего спектр языковых структур, наиболее релевантных для конкретной области 9.
Здесь невозможно рассмотреть в деталях конкретный набор функций взаимодействия, которые предоставляет LIFER для определения прикладного языка 10, но некоторые ключевые моменты стоит упомянуть:
1) Разработчики интерфейса работают в рамках языка INTERLISP — мощного и гибкого языка-"хозяина", имеющего совершенные средства отладки. Возможно, языки более низкого уровня обрабатываются быстрее, однако гибкость и простота программирования — вот что берется в расчет, когда идет речь о создании работающей системы при разумных затратах сил и времени.
2) Расширения и изменения языковых определений могут свободно смешиваться с вызовами анализатора. При создании системы нет этапа составления грамматики. Это позволяет разработчикам интерфейса действовать быстро, по принципу "расширяй-и-проверяй" и содействует работе механизмов, модифицирующих язык в процессе обработки, таких, как программа перифразирования.
3) Разработчик интерфейса никак не связан с внутренними структурами, которые LIFER строит в целях повышения эффективности обработки. В частности, пользователь общается с LIFER в терминах простых правил порождения, которые внутри системы хранятся в виде сети переходов (Woods, 1970).
4) LIFER обладает мощным механизмом грамматического редактирования (который использует программу редактирования системы INTERLISP).
5) LIFER обладает пакетом функций для формулирования запросов к грамматике и для отладки программ.
6) Конструкции с эллипсисом обрабатываются автоматически, и поэтому разработчику интерфейса нет нужды обращать на это внимание.
7) Имеется общее руководство, описывающее, как пользоваться системой.

Осуществление коррекции ошибок

LIFER использует программу анализа слева направо, основываясь на упрощенной версии расширенных сетей перехода Вудса (Woods, 1970). Каждый раз, когда анализатор обнаруживает, что дальнейшее продвижение по задействованной в настоящий момент тропинке невозможно, он заносит отказ в список точек отказа. Каждая запись в этом списке указывает состояние системы в момент, когда произошел отказ (то есть положение в сети перехода и значения различных стеков и регистров), и позицию во входной цепочке (для данного момента). Частичные неоднозначности и ложные тропинки естественным образом выделяют точки отказа даже при обработке полностью приемлемого входа.
Если входной текст полностью разобран, то точки отказа не рассматриваются. Но если текст не удается проанализировать, список точек отказа используется программой коррекции ошибок, которая выбирает точки отказа, связанные с крайней правой позицией в тексте, для которой были зарегистрированы точки отказа. Предполагается, что точки отказа, расположенные слева, не были вызваны ошибками в написании, так как определенные переходы, использующие слова в этих позициях, должны были быть успешными для того, чтобы справа от них могли оказаться точки отказа.
Программа коррекции ошибок производит дальнейшее ограничение крайних правых точек отказа, рассматривая только те случаи, когда крайняя правая точка G подчиняется крайней правой точке F. G подчиняется F, если G является точкой отказа в сети, вызываемой условием PUSH на дуге, ведущей от F. Так как G и F обе являются крайними правыми точками отказа, G представляет собой задержку начального состояния PUSH-сети. (При любом произведенном переходе G окажется справа от F.) Следовательно, если точка F будет вновь включена в анализ, G будет вновь рассматриваться как один из путей перехода от F. G, таким образом, не имеет смысла рассматривать независимо. Все подчиненные крайние правые точки отказа исключаются из рассмотрения.
Работая с крайними правыми доминирующими точками отказа, программа коррекции ошибок анализирует связанные с ними тропинки с целью нахождения всех категорий слов, которые сделали бы возможным переход. (Для тропинок PUSH это требует исследования субграмматик.) На базе программы коррекции ошибок INTERLISP слово входной цепочки, связанное с крайними правыми точками отказа, сравнивается с лексическими единицами только что найденных категорий. Если "неправильно написанное" слово достаточно сходно с какими-то из этих лексических единиц, производится его замещение наиболее похожей единицей. Точки отказа, связанные с лексическими категориями, включающими это новое слово, вновь начинают последовательно включаться в анализ, пока не будет найдена точка, ведущая к успешному разбору. (Это может привести к новой коррекции ошибок, встреченных правее.) Если все вновь включенные в разбор точки потерпят неудачу, "неправильное" слово заменяется другими близкими лексическими единицами. Если такие замены также окончатся неудачей, LIFER печатает сообщение об ошибке.
LIFER поощряет использование семантически ориентированных синтаксических категорий, таких, как (EMPLOYEE) '(служащий)' и (DEPARTMENT-NAME) '(название-факультета)', а не таких стандартных категорий, как (NOUN) '(существительное)'. Использование этих более специализированных категорий намного облегчает коррекцию ошибок, так как резко ограничивает число потенциально возможных слов в любой точке разбора и.

Реализация программы обработки эллипса

Механизм обработки эллиптических входных сообщений системы LIFER пользуется тем, что спецификации языков прикладных систем имеют тенденцию в синтаксических категориях кодировать значительное количество семантической информации. Так, сходные синтаксические конструкции обычно близки семантически. Обработка эллипсисов в LIFER основывается на этом понятии схожести. В процессе разбора эллипсиса LIFER допускает любую цепочку слов, которая синтаксически сходна с любой подцепочкой смежных слов в последнем входном сообщении. (Если последнее входное сообщение было неполным, используется его расширение до полного предложения.) При поиске аналогии LIFER обращается к синтаксическому дереву последнего входного предложения, которое было успешно проанализировано системой. Для любой подцепочки смежных слов в последнем входном предложении может быть определен "образец аналогии" с помощью программы абстрагирования, работающей над старым синтаксическим деревом от слов подцепочки к корню дерева. Как только синтаксическое дерево показывает, что часть подцепочки является полным расширением некоторой синтаксической категории, данная часть замещается именем категории. Образец аналогии — это конечный результат всех таких замен.Механизм перифразирования в LIFER также использует семантически, ориентированные синтаксические категории и синтаксические деревья. В типичном случае механизму перифразирования дается модель предложения, которое система уже может понять, и перифраза. Общая стратегия механизма перифразирования — проанализировать предложение-модель и затем найти похожие структуры в перифразе.

Реализация системы перифразирования

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

Определение функции ответа для правила порождения перифразы

Новая семантическая функция, указывающая, как отвечать на входы, подходящие к данному правилу порождения, программируется автоматически на основе информации, содержащейся в синтаксическом дереве предложения-модели. В частности, синтаксическое дерево указывает, какие правила порождения использовались в модели для расширения различных синтаксических категорий. С каждым из этих правил связана функция, которая вычисляет интерпретацию соответствующих подфраз, исходя из их составляющих. Механизм перифразирования вновь использует выбранные функции модели для создания новой функции для правила порождения перифразы. Как это происходит, лучше всего показать на примере.Синтаксическое дерево указывает, что расширение для (PRESENT) не зависит от расширений (EMPLOYEE) и (ATTRIBUTE). Поэтому механизм перифразирования принимает, что при вычислении функции FN значение #(PRESENT) является константой. Другими словами, значение (PRESENT), используемое в модели, всегда будет использоваться как значение (PRESENT) при вычислении функции FN в терминах функции FI.
Напротив, (ITEM), как показывает синтаксическое дерево, включает и (EMPLOYEE) и (ATTRIBUTE). Следовательно, оба эти параметра в FN могут повлиять на значение #(1ТЕМ).

Дальнейшее обобщение

Целью программы перифразирования является описание данной перифразы в возможно более общих терминах с тем, чтобы новые конструкции, созданные для конкретных перифраз, покрывали максимальное число новых возможных входов. В определенных случаях эти конструкции, созданные с помощью основного метода, описанного выше, могут быть расширены механизмом перифразирования следующим образом. Положим, некоторая подфраза S модели, которая совпадает с подцепочкой перифразы, связана с синтаксической единицей (М> в синтаксическом дереве модели. Рассмотрим перифразы вида "х у z", моделью для которых является форма "xSy" и S — собственная подфраза, связанная с синтаксической категорией (С). Механизм перифразирования учитывает этот тип условия и спрашивает пользователя, всегда ли у является перифразой S или только в контексте х и z. Если пользователь указывает на зависимость от контекста, обработка продолжается как обычно. Если же пользователь указывает, что у является перифразой S в любом контексте, тогда LIFER закрепляет у в качестве перифразы S в субграмматике, связанной с (О. В этом случае влияние данной перифразы будет сказываться везде, где используется категория (С). (Например, см. примечание к разделу II—1.)