Поговорить с гаджетом по-человечески
Программирование
Разнообразие операционных систем само по себе неудобно, но еще неудобней то, что с каждой из них приходится взаимодействовать на ее собственном "языке". Простым выходом из этого положения было бы использование естественного языка в коммуникации с программами.
Язык для взаимодействия с гаджетами является подмножеством естественного языка, таким же, как язык, на котором человек взаимодействует с животными
Фото: Олег Харсеев, Коммерсантъ
На сегодняшний день в мире существует большое количество различных гаджетов. Это, в свою очередь, приводит к большому разнообразию операционных систем и программного обеспечения. Каждая из программ обладает характерными только для нее принципами взаимодействия. Подобное многообразие затрудняет свободное использование системы и приводит к увеличению времени, которое необходимо для обучения пользователя работе с нею.
Для работы с программами на мобильных устройствах могут применяться голосовые помощники, такие как Siri, Cortana, Google Now.
По аналогии с голосовым помощником, одним из вариантов решения проблемы взаимодействия пользователя с программой является применение более привычного естественного языка.
Подобное решение обеспечивает минимальную подготовку пользователя, а также высокую скорость и простоту формирования произвольных запросов к информационной системе.
Основной проблемой использования естественно-языкового интерфейса для доступа к источникам данных является низкое качество работы интерфейсов, улучшение которого ограничено сложностью анализа запросов на естественном языке.
Для подобного пользовательского интерфейса можно использовать ограниченную лексику и грамматику языка. В результате сложные предложения вообще не используются в пользовательском запросе к диалоговой системе. К серьезному ухудшению функциональности и производительности системы это не приводит.
Ограниченный естественный язык — это подмножество естественного языка, на котором текст хорошо воспринимается носителем без дополнительных усилий. При этом не требуется дополнительного изучения ограниченной версии языка для составления текстов. Такой язык обладает сокращенным набором лексики и грамматики. Добиться приемлемого уровня обработки естественного языка можно без использования полного грамматического анализа. Достаточно извлечь наиболее информативные части предложения, такие как ключевые слова, фразы и фрагменты. Это позволяет сократить время анализа естественно-языковых элементов в диалоговой системе, а также помогает избежать лингвистических неоднозначностей, таких как омонимы.
Цикл работы естественно-языкового пользовательского интерфейса начинается с ввода пользователем текста запроса на естественном языке. На основе запроса строится его формальное описание. При этом все предшествующие результаты используются при анализе последующих запросов, что позволяет системе сохранять нить диалога с пользователем и разрешать неоднозначные и спорные моменты, связанные с различным использованием одних и тех же слов в разных предметных областях.
В процессе обработки естественно-языкового текста происходит последовательное выполнение морфологического, синтаксического и семантического анализа.
На первом этапе обработки пользовательского запроса определяются морфологические (падеж, склонение, часть речи и т. д.) и морфемные характеристики (приставка, корень, суффикс, окончание) каждого слова. Наличие и количество морфологических характеристик слов и допустимых значений зависят от конкретного языка. Однако некоторые характеристики, например часть речи, существуют во многих языках.
Процесс взаимодействия пользователя с естественно-языковым интерфейсом информационной системы представлен в виде диалога. Конечной целью диалога выступает получение пользователем ответа на вопрос за наименьшее количество возможных итераций
На этапе синтаксического анализа определяются главные и второстепенные члены предложения, тип предложения.
Затем следует наиболее сложная часть обработки естественно-языкового текста — этап семантического анализа с учетом результатов предыдущих этапов и имеющихся в системе знаний о языке и предметной области. В процессе построения семантической модели слова учитывается его многозначность. Смысл слова рассматривается как множество различных значений. Вся совокупность этих значений в целом или каждое из них реализуются в определенном контексте.
В итоге получается конструкция запроса к информационной системе. Значением, получаемым на выходе программной системы, является SQL-запрос к базе данных. Одним из необходимых условий для работы системы является наличие структуры данных, которая описывает содержимое базы данных. В частности, необходимо описание таблицы и входящих в нее полей.
Процесс взаимодействия пользователя с естественно-языковым интерфейсом информационной системы представлен в виде диалога. Конечной целью диалога выступает получение пользователем ответа на вопрос за наименьшее количество возможных итераций.
В рассматриваемом примере (см. рисунок) пользователь осуществляет поиск программных библиотек. При этом возможно использование одного или нескольких фильтров в рамках поисковой сессии.
Состояния диалоговой системы затрагивают все ресурсы, с которыми взаимодействует пользователь. При этом полный набор состояний диалоговой системы может включать в себя:
- одно начальное состояние;
- различные комбинации списков библиотек, формируемых в зависимости от начальных значений и используемого фильтра; специальное состояние, обозначающее окончание работы текущей диалоговой сессии.
В качестве возможных действий с диалоговой системой рассматриваются взаимодействие пользователя с системой (ввод пользователем запроса к системе, предоставление системой ответа на пользовательский запрос, различные уведомления); взаимодействие системы с внешними ресурсами (отправка запроса к базе данных); внутренняя обработка данных.
Подобная программная система реализует естественно-языковой пользовательский интерфейс к базе данных. Она может применяться в областях, где требуется обеспечить доступ пользователя к информации из определенной предметной области.
Например, можно реализовать естественно-языковой интерфейс для аналитической программной системы. Пользователь, введя запрос на естественном языке, получает необходимый отчет за определенный временной период. В результате применение методов обработки естественно-языкового текста позволяет реализовать программный интерфейс, обеспечивающий взаимодействие пользователя с программной системой на естественном языке.