Архивы: по дате | по разделам | по авторам

Отложенный разговор

Архив
автор : Влад Жигалов   31.05.2002

Любая попытка предсказания будущего несет в себе страхи и мечты предсказателя. Отбросив страхи, займемся мечтами. О беседах с машиной грезили многие фантасты. Понимания языка человеческого от нее ждали задолго до появления первых ЭВМ. И порой казалось, что цель близка.

Ничего.
Ничего.
Ничего, ну совсем ничего.
Показалось, что-то есть, да где там. Ничего.
С. Лем. «Футурологический конгресс»

Любая попытка предсказания будущего несет в себе страхи и мечты предсказателя. Отбросив страхи, займемся мечтами. О беседах с машиной грезили многие фантасты. Понимания языка человеческого от нее ждали задолго до появления первых ЭВМ. И порой казалось, что цель близка. Лингвисты и кибернетики решали сложнейшие проблемы на стыке своих наук, были написаны горы (великолепных) статей и книг, выполнено (весьма успешно) множество проектов, защищена (блестяще) масса диссертаций. Всё замечательно. Все при деле. Но мечта осталась там же - нетронутая, недосягаемая, однако… потускневшая, что ли. От частого упоминания всуе, от долгого обещания «вот-вот», от постоянно откладываемого разговора.

Пожалуй, упорное «очеловечивание» ЭВМ имеет те же корни, что и «очеловечивание» животных и неодушевленных предметов в фольклоре. «Не убивай меня, Иван, я тебе пригожусь». Так мог бы начаться (или закончиться) разговор с какой-нибудь программой, скажем, при деинсталляции. Наш предок хотел видеть союзников во враждебном мире природы и наделял его обитателей речью, хотя бы в сказках. Мы, ежедневно борясь с глюкавыми системами и софтинами, мечтаем когда-нибудь поговорить с ними «за жизнь». Так имеют ли наши чаяния хоть какие-то основания под собой?

Проблема понимания естественного языка (именно так принято называть язык человека, в отличие от формальных языков машин и систем) не решена до сих пор. Центр тяжести исследований в этой области по вполне понятным причинам пришелся на английский. Законы его строения (грамматика) исследованы вдоль и поперек. Но оглянувшись вокруг в поисках понимающих нас программных систем, мы беспомощно разводим руками: «Ну не шмогла я…»

Проиллюстрирую это на примере естественно-языкового (ЕЯ) интерфейса к базам данных, причем ограничусь той разновидностью баз, с которой многие из нас частенько сталкиваются - каталогами товаров. Ну что бы не спросить на каком-нибудь сайте: «найди мне цифровой фотоаппарат о трех мегапикселах, да подешевле»?

Стоп. Вот этим самым вопросом и займемся. Вопрос человеку понятен? Вполне. Любой консультант-продавец в магазине, если он владеет русским языком, знает, что такое цифровой фотоаппарат, и хоть немного представляет себе его основные свойства, вопрос поймет и худо-бедно на него ответит. Изучить бы механизм понимания этого вопроса и других подобных - и можно создать понимающую систему. По аналогии. Главное здесь - уяснить, как человек понимает вопросы.

Long and winding road

Важный момент - какую часть в понимании играют знания о языке, а какую - о предметной области. Вспомним, чему нас учили в школе на уроках русского языка. Разбору предложений - то есть тому, что сейчас именуют словом «парсинг». Что ж, парсить так парсить. Начнем с морфологии.

  • Найди - глагол в повелительном наклонении;

  • мне - личное местоимение 1-го лица в дательном падеже;

  • цифровой - прилагательное мужского рода, единственного числа, в винительном падеже;

  • аппарат - существительное мужского рода, единственного числа, в винительном падеже;

  • о - предлог;

  • мегапикселах - существительное мужского рода, единственного числа, в предложном падеже;

  • да - союз;

  • подешевле - прилагательное в сравнительной форме.

Это результат ручного морфологического анализа, пока ничего о смысле запроса он нам не сказал. Результат же синтаксического разбора (опять-таки врукопашную) таков:

  • найди (что сделай?) - сказуемое;

  • мне (кому?) - косвенное дополнение;

  • цифровой фотоаппарат (что?) - прямое дополнение;

  • о трех мегапикселах (какой?) - определение;

  • да подешевле (какой?) - определение.

Гораздо лучше с разбором предложения справятся программные средства, причем найдут все варианты (а я выбрал только один. Кстати, сознательно, потому что процесс понимания предложения предшествовал процессу разбора). Школьные познания на синтаксисе обрываются, дальше - семантика. Семантический анализ оперирует смыслами на основе семантических словарей. Слово «найди» соберет вокруг себя синтаксически подчиненные фрагменты запроса «мне» и «цифровой фотоаппарат»: словарь содержит знания о том, что глагол «находить» имеет валентности на то, что именно ищут и, возможно, кому ищут (а также где, кто и т. д.). Но что-то подсказывает мне, что оборот «о трех мегапикселах» поставит систему в тупик: нет такой валентности у глагола «находить», чтобы требовала предложного падежа, да и фотоаппараты, согласно смыслу оных, не бывают о ком, о чем. Налицо вольность автора вопроса, обнаруженная, когда мы уже довольно глубоко закопались в анализ.

Впрочем, системы заходят в тупик не только в результате вольного обращения с языком, но это тема отдельного разговора. Предположим, система все-таки знает о такой вольности, как употребление предложного падежа там, где должен быть творительный с соответствующим предлогом (с кем, чем?). Оставим в стороне и неоднозначность со словом «подешевле»: найти подешевле или фотоаппарат подешевле? (представьте себе консультанта, который мучается этим вопросом). Хорошо, мы собрали семантику предложения: найди (кому) мне (какой, характеристика) цифровой (что, объект) фотоаппарат (какой, характеристика) о трех мегапикселах (какой, характеристика) подешевле.

Теперь от семантики идем к прагматике. Нам осталось всего ничего: перевести этот запрос на формальный язык. Ну, тут довольно просто:

  • найди Х Команда = искать;

  • цифровой Х Тип = цифровой;

  • фотоаппарат Х КлассОбъекта = фотоаппарат;

  • трех мегапикселах Х Разрешение = 3;

  • подешевле Х цена (низкая).

Эти правила основаны на знании о том, что «найди» - команда, «цифровой» - значение атрибута «Тип» у класса товаров «фотоаппарат». Еще один атрибут - разрешение - измеряется в мегапикселах, которые могут принимать соответствующие значения. Это знания о прагматическом контексте, без них мы не дойдем до решения задачи. Обратите внимание: мы прошли довольно долгий путь, и первоначальные знания (морфология, синтаксис) перешли через семантику в прагматику, знания о языке - в знания о предметной области. Причем многие знания оказались здесь лишними. В нашей задаче поиска товаров слово «найди» присутствует в самом контексте ситуации (поисковая система не спляшет и не споет, она только ищет), как и слово «мне» (а кто тут еще может быть? если написать тёте, что изменится?). Важны только слова «цифровой фотоаппарат», «трех мегапикселах», «подешевле». Их мы не можем выкинуть, иначе изменится смысл запроса. Получается, что обобщенный прагматический смысл запроса: «найди объекты с некоторыми характеристиками». Лингвисты называют это коммуникативной целью. В данной задаче эта цель - единственная.

Короткий путь

Выходит, все эти этапы - морфология, синтаксис, да и семантика, - большей частью лишние для решения задачи. Один и тот же запрос может быть сформулирован десятками способов, грамматически совершенно разных: мне нужно… дайте мне… я хочу выбрать… Он может вообще не содержать предваряющих слов, Интернет-стиль - это краткость: дешевая цифровая камера 3mpxl. Многообразие на языковом уровне все равно выливается в простые структуры на уровне предметном. И чтобы понять запрос, система может быть простой в своем методе понимания, если начинает решать задачу «с конца». Консультанту, кстати, тоже не обязательно быть мастером слова, чтобы понять покупателя. Он ориентирован на прагматику и поймет покупателя всегда, если захочет продать, а тот пожелает купить.

Если обратиться к бритве Оккама, то выясняется, что подобная задача решается небольшим количеством правил в семантической грамматике (см. таблицу на стр. 28). Сама грамматика не привязана ни к языку, ни к предметной области, а стало быть, основанная на ней система анализа универсальна для задачи поиска в каталогах на естественном языке 1.

Такая инвариантность как к языку, так и к предметной области сама по себе дает очень много: она позволяет автоматизировать процесс построения ЕЯ-интерфейсов. Из оборота изымается большой пласт лингвистических знаний, что отражается и на простоте, и на времени построения ЕЯ-интерфейсов - несложный ЕЯ-интерфейс к реляционной БД можно сделать за пару дней. То, что раньше было лишь предметом отдельных научных работ, стало технологией.

Проблемы vs. задачи

Знания о предметной области важнее для понимания, и это верно не только для рассмотренной задачи. Понимание здесь - это умение отобразить прагматический контекст, а знание грамматики языка - лишь средство разрешения неоднозначностей, не более того.

Общий подход, который кажется мне единственно верным: в каждой задаче, где необходимо понимание естественно-языкового текста, стараться обойтись тем минимумом средств, который позволяет решить именно эту задачу (опыт показывает, что этот минимум лежит в предметной области), а не пытаться решить проблему сразу, создав машину, понимающую все: за сорок лет не решили, и прорыва пока не ожидается.

Уверен, что такой подход не помешает мэйнстриму компьютерной лингвистики двигаться своим путем. Просто мэйнстрим занимается извечными научными проблемами, а я говорю о задаче, требующей решения «здесь и сейчас», пусть даже подручными средствами. Понимание машиной естественного языка вообще - это проблема. Понимание запросов к каталогу товаров - это задача. Первая поглотила массу времени, по-прежнему требует колоссальных средств и разрешения ее пока не видно; вторая уже решена, хотя сам факт этот на сенсацию не тянет. Задач таких много, но они исчислимы и, как правило, решаемы. Вспомним задачники, на которых мы учились: задача уже наполовину решена, если известно, что она имеет решение. Слова «умный в гору не пойдет» - иллюстрация к двум этим парадигмам: парадигма «альпиниста» (решения проблем) и «каравана» (решения задач).

Вот лишь несколько примеров задач из области ЕЯ-процессинга, где требуется понимание речи, некоторые из них уже так или иначе решены:

  • голосовые команды при управлении автомобилем или другим техническим устройством (конечно, управление некритическими функциями);

  • ЕЯ-интерфейс к базам данных (inbase.artint.ru);

  • анализ новостных и других коротких сообщений, основанный на их понимании;

  • телефонный автоответчик, пытающийся понять потребности звонящих (www.novcom.com);

  • голосовой калькулятор (www.sakrament.com/it-rus/democalc.htm);

  • система помощи в приложениях;

  • поиск на сайте.


1 (обратно к тексту) - Об этом подходе и технологии InBASE на его основе см. www.inbase.artint.ru.

Краешком задену такой животрепещущий вопрос, как распознавание и понимание речи, хотя это тема совершенно отдельного разговора. Распознавание и понимание речи - разные задачи. Человек, распознавая явно меньше 100% в речевом общении, все равно понимает, о чем речь. Во многом благодаря тому, что речь семантически избыточна, во многом потому, что дополняется и уточняется невербальными составляющими общения, но в основном - благодаря контексту. Системы распознавания в этом смысле - просто цифровые молотилки, абсолютно безмозглые и пока ничего не готовые понять. Отсюда и качество распознавания. К тому же речь может быть неправильна синтаксически, и опираться на синтаксис для помощи в распознавании бессмысленно.

Механизм восстановления плохо расслышанных фрагментов речи основан у человека прежде всего на смысле, и одно нерасслышанное слово, как правило, можно восстановить по контексту. И мы приходим все к тому же - к необходимости уметь понимать. А поскольку в каждой задаче понимать надо разное и по-разному, то стыковать эти локальные технологии понимания с универсальными технологиями распознавания, на первый взгляд, тяжело: процесс понимания слабо унифицируется. Зато унификации поддается задача внешнего (по отношению к системам распознавания) уточнения сказанного. Многозначность речевого распознавания можно снимать обращением к компонентам понимания, где выделяются наиболее вероятные варианты именно с точки зрения смысла сказанного. В системах диктовки, конечно, это работать почти не будет - поди-ка уследи за мыслию человеческой, а вот в узких предметных областях - работает.

А как насчет «просто поговорить с машиной»? К сожалению, разговор откладывается. А в ожидании разговора поговорим с человеком. По-моему, пока еще есть о чем.

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.