В работе рассматривается механизм взаимодействия пользователя с программной системой посредством естественно-языкового интерфейса. Описана структура работы подобного интерфейса. Также представлен вариант реализации интерфейса с использованием ограниченного естественного языка. Представлено описание разработанного прототипа естественно-языкового пользовательского интерфейса.
Ключевые слова: естественный язык, обработка естественного языка, человеко-машинное взаимодействие.
Сегодня существует большое количество программных систем. Каждая из них обладает своими, характерными для конкретной системы, принципами взаимодействия. В конечном итоге это затрудняет свободное использование системы и приводит к увеличению времени, необходимому на обучение пользователя работе с системой.
Перспективным в данной ситуации является применение более привычного для пользователя естественного языка в процессе общения с машинами и компьютерными системами.
Данное решение обладает рядом преимуществ:
− Минимальная подготовка пользователя для работы с системой.
− Простота и высокая скорость задания произвольных запросов к системе.
Простота при работе с естественно-языковым интерфейсом достигается путем применения пользователем языка, используемого в ежедневной коммуникации.
Пользователи сети Интернет пытаются найти ответы на вопросы с помощью поисковых машин и форумов. В Интернете уже есть ответы на эти вопросы, вопрос только в том, насколько быстро может быть получен этот ответ.
Для решения подобной проблемы используется естественно-языковой интерфейс в составе диалоговой системы.
Поиск знаний, в отличии от простого поиска информации, требует учета семантики запросов. Для естественно-языкового пользовательского интерфейса вопросно-ответных систем можно также использовать ограниченную лексику и грамматику языка. При этом не происходит серьёзного ухудшения функциональности и производительности вопросно-ответной системы.
Ограниченный естественный язык — это подмножество естественного языка, текст на котором успешно воспринимается носителем полного естественного языка без приложения дополнительных усилий.
Не требуется дополнительного изучения ограниченной версии языка для составления текстов. Данный язык обладает сокращенным набором лексики и грамматики. Это позволяет сократить время анализа естественно-языковых элементов в вопросно-ответной системе, а также помогает избежать неоднозначностей на лингвистическом уровне.
Цикл работы естественно-языкового интерфейса начинается с ввода пользователем сообщения на естественном языке путём ввода текста. По введенному в систему тексту строится его формальное описание. Все предшествующие результаты анализа используются при анализе последующих запросов, что позволяет системе сохранять ход диалога с пользователем и разрешать спорные моменты, связанные с использованием одних и тех же терминов в разных предметных областях [1].
В процессе обработки естественно-языкового текста происходит последовательное выполнение морфологического, синтаксического и семантического анализа.
Первым этапом обработки пользовательского запроса является морфологический и морфемный анализ. На данном этапе для каждого слова в формальной записи предложения строятся отношения, которые задают соответствия для значений грамматических категорий [3].
В результате морфологического анализа определяются морфологические характеристики каждого слова такие как падеж, склонение, часть речи и т. д. Количество и наличие морфологических характеристик слов и допустимых значений зависят от конкретного языка. Однако, некоторые характеристики (часть речи) существуют во многих языках.
Для проведения процедуры морфологического анализа текста существует три различных подхода:
- «четкая» морфология;
- «нечеткая» морфология;
- вероятностный подход.
При обработке естественно-языковых (ЕЯ) текстов на русском языке в наиболее часто применяется подход, основанный на «четкой» морфологии. Данный подход базируется на словаре Зализняка [2].
В данном словаре описаны основные словоформы для русскоязычных слов. Каждой словоформе сопоставляется определенный код. Существует некая система правил, в соответствии с которой для данного слова возможно построить все остальные формы. При этом в качестве исходных данных используется начальная словоформа и соответствующий ей код. В случае использования «четкого» подхода в процессе морфологического анализа, необходимо иметь в наличии словарь всех словоформ и слов для данного языка. Данный словарь на входе принимает форму слова. На выходе словарь представляет морфологические характеристики конкретной словоформы. Возможно построение словаря на основе словаря Зализняка по следующему алгоритму:
Первым шагом происходит перебор всех слов, содержащихся в словаре. Для каждого из этих слов необходимо определить все возможные словоформы. Полученные словоформы сохраняются в формируемом словаре. В процессе проведения морфологического анализа конкретного слова достаточно найти его в словаре. В результате будут получены точные значения всех морфологических характеристик анализируемого слова.
При морфемном анализе определяются конкретные морфемы в рамках каждого слова: приставка, корень, суффикс, окончание. В словаре морфем русского языка [4, 6] для каждого слова указано разделение на составные части. Однако, в словаре не указываются типы каждой из составных частей. Таким образом, достоверно не может быть известно какая из частей является корнем, а какая суффиксом.
При этом совокупность всех возможных корней слов русского языка представляет собой открытое множество. В то же время, множество всех приставок, суффиксов и окончаний ограничено. Также известен порядок следования морфем в составе слова: сначала идут приставки, затем корни, далее суффиксы и окончания. Таким образом, с помощью словаря морфем русского языка возможно построить словарь, содержащий как разбиение слова на составные части, так и тип каждой из морфем. В результате для проведения морфемного анализа слова достаточно просто обратиться к разработанному словарю.
При этом морфемный анализ не ограничивается обращениями к словарю. В ситуации, когда слово отсутствует в словаре, возможно непосредственное проведение анализа на основе стандартного строения слов русского языка (приставка — корень — суффикс — окончание) и множества всех приставок, суффиксов и окончаний [5].
На этапе синтаксического анализа внутри предложения определяются отношения синтаксических связей. Далее выявляются главные и второстепенные члены предложения, определяется тип предложения и т. д. Синтаксический анализ выполняется поэтапно: при описании формальной структуры предложения используется информация, которая была получена ранее на этапе морфологического анализа. На этом этапе применяются лексические и синтаксические правила для анализируемого языка.
Этап семантического анализа представляет наиболее сложную часть обработки естественно-языкового текста. Семантический анализ можно представить как обработку семантической сети, которая отражает результат анализа на предыдущих этапах естественно-языкового текста, присутствующих в системе знаний о предметной области и языке программной системы. На данном этапе анализируются соотношения лингвистической конструкции и тех конструкций, которые хранятся в памяти системы для выявления отношений соответствия.
В процессе построения семантической модели слова учитывается его многозначность. Смысл слова рассматривается как некоторое множество различных значений. Каждое из этих значений или вся совокупность в целом реализуется в определенном контексте. Результатом семантического анализа является конструкция запроса к информационной системе.
В рамках исследовательской работы разработан прототип программной системы, реализующей естественно-языковой пользовательский интерфейс к структурированному источнику данных.
В качестве исходных данных представлена база данных MySQL, которая содержит информацию о существующих программных библиотеках и фреймворках.
Значением, получаемым на выходе программной системы, является SQL запрос к базе данных. Одним из необходимых условий для работы системы является наличие структуры данных, описывающей содержимое базы данных. В частности, необходимо описание таблицы и входящих в нее полей.
В качестве примера, пользовательский запрос на естественном языке «Показать библиотеки для С++» будет преобразован в SQL запрос к базе данных SELECT Name, Url FROM Data WHERE Type=’library’ AND Language=’cpp’.
Таким образом, естественно-языковой пользовательский запрос на русском языке преобразуется в SQL запрос, который в дальнейшем может быть отправлен к базе данных.
Литература:
- Житко В. А. Пользовательский интерфейс интеллектуальных вопросно-ответных систему // NB: Кибернетика и программирование. — 2012. — № 1. — С. 23–30. DOI: 10.7256/2306–4196.2012.1.13862.
- Зализняк А. А. Грамматический словарь русского языка. Словоизменение. 3-е изд. М. Русский язык, 1987.
- Крайванова В. А. Модель естественно-языкового интерфейса для систем управления сложными техническими объектами и оценка эффективности алгоритмов на ее основе // УБС. 2009. № 26. URL: http://cyberleninka.ru/article/n/model-estestvenno-yazykovogo-interfeysa-dlya-sistem-upravleniya-slozhnymi-tehnicheskimi-obektami-i-otsenka-effektivnosti-algoritmov-na (дата обращения: 16.01.2015).
- Кузнецова А. И., Ефремова Т. Ф. Словарь морфем русского языка. М. Русский язык, 1986.
- Селезнев, К. Обработка текстов на естественном языке // «Открытые системы», № 12, 2003.
- Тихонов А. Н. Морфемно-орфографический словарь. М.: АСТ: Астрель, 2002. — 704 с.