Вывод на естественном языке: идеальный интерфейс для извлечения по атрибутам

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

Один из возможных альтернативных подходов заключается в исполь' зовании естественного языка для формулирования запроса. Препятст' вием на этом пути, однако, становится то, что обычные современные компьютеры в большинстве случаев не способны эффективно обраба' тывать запросы на естественном языке, касающиеся реальных рабо' чих ситуаций. Распознавание естественного языка возможно в лабора' тории, в жестко контролируемых условиях, но не в реальном мире, где имеют место безграмотность, диалектизмы, разговорные выражения и прочие недоразумения. Так или иначе, программирование механиз' ма распознавания естественного языка лежит за пределами возможно' стей и бюджета средней команды программистов.

Более приемлемый подход, успешно опробованный авторами, состоит в том, что мы назвали выводом на естественном языке. Использую' щая эту методику программа предлагает пользователю массив элемен' тов управления, ограничивающих ввод. С их помощью пользователь выбирает нужные значения. Элементы расположены так, что образу' ют предложение на английском языке. Пользователь действует в рам' ках набора грамматически правильных вариантов, так что результа' том проектирования становится ограниченная самодокументирован' ная функция построения запроса. На рис. 15.3 приведен пример тако' го интерфейса.

 
  Вывод на естественном языке: идеальный интерфейс для извлечения по атрибутам - student2.ru

Рис. 15.3. Пример интерфейса извлечения по атрибутам, основанного

на естественном языке. Это фрагмент проекта, созданного фирмой Cooper для продукта Storage Manager по заказу Softek. Элементы управления, помогающие составить запрос к базе данных, предлагают естественный язык на выходе вместо того, чтобы пытаться принимать его в качестве входного. Щелчок по любой подчеркнутой конструкции раскрывает меню

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

 
  Вывод на естественном языке: идеальный интерфейс для извлечения по атрибутам - student2.ru

Вывод на естественном языке: идеальный интерфейс для извлечения по атрибутам 383

Интерфейс с выводом на естественном языке полностью подходит для составления запросов к традиционным реляционным базам данных. Большинству людей сложно работать с обычными запросами к базе дан' ных, поскольку для их понимания необходимо знать булеву систему обозначений и мудреный синтаксис а'ля SQL. Мы уже обсуждали про' блемы булевой нотации в главе 2. То, что программе требуются булевы запросы, еще не основание навязывать их составление пользователю.

Естественный язык не является языком булевой алгебры, и предложе' ния в нем соединяются не союзами AND (И) или OR (ИЛИ), а фразами типа

«все перечисленные» и «не все перечисленные». Пользователю проще выбрать из этих фраз, потому что они ясны и осмысленны, а когда он составит предложение, то сможет прочитать его, чтобы проверить пра' вильность.

С точки зрения программиста, самое сложное в выводе на естествен' ном языке состоит в том, что выбор одного из элементов в начале пред' ложения очень часто меняет набор вариантов в остальных частях предложения. Это означает, что для эффективной реализации вывода на естественном языке грамматика предложений должна быть хорошо продумана заранее и что элементы управления должны появляться и скрываться динамически, в зависимости от того, что выбрано в ос' тальных элементах управления. Кроме того, сами элементы должны быть в состоянии выводить или по меньшей мере загружать данные динамически.

Еще одним сложным вопросом является локализация. Если вы разра' батываете программу для пользователей, говорящих на разных язы' ках, а порядок слов в их языках различается (как, например, в немец' ком и английском), то, возможно, вам потребуется многоязычная сис' тема грамматического ассоциирования.

Как системы поиска по атрибутам, так и интерфейсы с выводом на ес' тественном языке требуют значительных усилий от проектировщиков и программистов, но зато приносят огромную выгоду пользователям, предоставляя им мощную и гибкую систему управления данными. По' скольку объем данных, которыми нам приходится управлять, растет экспоненциально, имеет смысл вкладываться в разработку этих более мощных целеориентированных инструментов управления данными уже сейчас.




Отмена

Отмена – замечательная функция, позволяющая отказаться от совер' шённого действия. Ценность этой простой и элегантной возможности очевидна. Тем не менее если рассмотреть имеющиеся реализации и при' менения этой функции с точки зрения целеориентированного подхода, обнаружатся значительные вариации ее назначения и принципа дей' ствия. Функция отмены чрезвычайно важна для пользователей и не так проста, как может показаться на первый взгляд. В этой главе ис' следуются различные представления пользователей об этой функции и разнообразные способы ее применения.

Пользователи и отмена

Отменатрадиционно воспринимается как метод спасения пользовате' ля в беде – эдакий рыцарь в сверкающих доспехах, или кавалькада, скачущая по холмам, или супергерой, влетающий в кадр в последнюю секунду.

Как вычислительная функция отмена не имеет никаких достоинств. Компьютеры не нуждаются в ней, поскольку никогда не ошибаются. Зато люди совершают ошибки постоянно, и эта функциональная воз' можность существует исключительно для них. Одно только это наблю' дение немедленно приводит нас к заключению, что из всех функцио' нальных возможностей программы модель отмены должна в наимень' шей степени соответствовать модели реализации и в наибольшей сте' пени – ментальной модели пользователей.

Люди не просто совершают ошибки. Ошибки – это часть их повседнев' ного поведения. С точки зрения компьютера фальстарт, взгляд в не' верном направлении, пауза, чихание, экспериментирование, разнооб' разные «ну» и «как бы» – все это ошибки. Однако с человеческой точ' ки зрения они вполне нормальны. Ошибки человека настолько обыч'

 
  Вывод на естественном языке: идеальный интерфейс для извлечения по атрибутам - student2.ru

Пользователи и отмена385

ны, что если вы будете расценивать их как неправильное, «ошибочное» поведение, то это отрицательно скажется на дизайне вашего программ' ного продукта.

Наши рекомендации