С
егодня существует большое количество программных систем. Каждая из них обладает своими, характерными
для конкретной системы, принципами взаимодействия. В конечном итоге это затрудняет свободное использование системы и приводит к увеличению времени, необходимому на обучение пользователя работе с системой.
Перспективным в данной ситуации является приме- нение более привычного для пользователя естественного языка в процессе общения с машинами и компьютерными системами.
Данное решение обладает рядом преимуществ:
Минимальная подготовка пользователя для работы с системой.
Простота и высокая скорость задания произвольных запросов к системе.
Простота при работе с естественно-языковым интер- фейсом достигается путем применения пользователем языка, используемого в ежедневной коммуникации.
Пользователи сети Интернет пытаются найти ответы на вопросы с помощью поисковых машин и форумов. В Ин- тернете уже есть ответы на эти вопросы,
вопрос только в том, насколько быстро может быть получен этот ответ.
Для решения подобной проблемы используется есте- ственно-языковой интерфейс в составе диалоговой си- стемы.
Поиск знаний, в отличии от простого поиска инфор- мации, требует учета семантики запросов. Для есте- ственно-языкового пользовательского интерфейса во- просно-ответных систем можно также использовать ограниченную лексику и грамматику языка. При этом не происходит серьёзного ухудшения функциональности и производительности вопросно-ответной системы.
Ограниченный естественный язык — это подмноже- ство естественного языка, текст на котором успешно вос- принимается носителем полного естественного языка без приложения дополнительных усилий.
Не требуется дополнительного изучения ограниченной версии языка для составления текстов. Данный язык об- ладает сокращенным набором лексики и грамматики. Это позволяет сократить время анализа естественно-язы- ковых элементов в вопросно-ответной системе, а также помогает избежать неоднозначностей на лингвистиче- ском уровне.
Цикл работы естественно-языкового интерфейса начи- нается с ввода пользователем сообщения на естественном языке путём ввода текста. По введенному в систему тексту строится его формальное описание. Все предшествующие результаты анализа используются при анализе последу- ющих запросов, что позволяет системе сохранять ход ди- алога с пользователем и разрешать спорные моменты, связанные с использованием одних и тех же терминов в разных предметных областях [1].
В процессе обработки естественно-языкового текста происходит последовательное выполнение морфологиче- ского, синтаксического и семантического анализа.
Первым этапом обработки пользовательского за- проса является морфологический и морфемный анализ. На данном этапе для каждого слова в формальной записи
предложения строятся отношения, которые задают соот- ветствия для значений грамматических категорий [3].
В результате морфологического анализа определяются морфологические характеристики каждого слова такие как падеж, склонение, часть речи и т.д. Количество и на- личие морфологических характеристик слов и допустимых значений зависят от конкретного языка. Однако, неко- торые характеристики (часть речи) существуют во многих языках.
Для проведения процедуры морфологического анализа текста существует три различных подхода:
«четкая» морфология;
«нечеткая» морфология;
вероятностный подход.
При обработке естественно-языковых (ЕЯ) текстов на русском языке в наиболее часто применяется подход, ос- нованный на «четкой» морфологии. Данный подход бази- руется на словаре Зализняка [2].
В данном словаре описаны основные словоформы для русскоязычных слов. Каждой словоформе сопоставляется определенный код. Существует некая система правил, в соответствии с которой для данного слова возможно по- строить все остальные формы. При этом в качестве ис- ходных данных используется начальная словоформа и со- ответствующий ей код. В случае использования «четкого» подхода в процессе
морфологического анализа, необ- ходимо иметь в наличии словарь всех словоформ и слов для данного языка. Данный словарь на входе принимает
форму слова. На выходе словарь представляет морфоло- гические характеристики конкретной словоформы. Воз- можно построение словаря на основе словаря Зализняка по следующему алгоритму:
Первым шагом происходит перебор всех слов, содер- жащихся в словаре. Для каждого из этих слов необходимо определить все возможные словоформы. Полученные словоформы сохраняются в формируемом словаре. В про- цессе проведения морфологического анализа конкретного слова достаточно найти его в словаре. В результате будут получены точные значения всех морфологических харак- теристик анализируемого слова.
При морфемном анализе определяются конкретные морфемы в рамках каждого слова: приставка, корень, суф- фикс, окончание. В словаре морфем русского языка [4, 6] для каждого слова указано разделение на составные части. Однако, в словаре не указываются типы каждой из составных частей. Таким образом, достоверно не может быть известно какая из частей является корнем, а какая суффиксом.
При этом совокупность всех возможных корней слов русского языка представляет собой открытое множество. В то
же время, множество всех приставок, суффиксов и окончаний ограничено. Также известен порядок следо- вания морфем в составе слова: сначала идут приставки, затем корни, далее суффиксы и окончания. Таким об- разом, с помощью словаря морфем русского языка воз- можно построить словарь, содержащий как разбиение слова на составные части, так и тип каждой из морфем. В результате для проведения морфемного анализа слова достаточно просто обратиться к разработанному словарю. При этом морфемный анализ не ограничивается обра- щениями к словарю. В
ситуации, когда слово отсутствует в словаре, возможно непосредственное проведение ана- лиза на основе стандартного строения слов русского языка (приставка — корень — суффикс — окончание)
и множества всех приставок, суффиксов и окончаний [5]. На этапе синтаксического анализа внутри предло-
жения определяются отношения синтаксических связей. Далее выявляются главные и второстепенные члены предложения, определяется тип предложения и т.д. Син- таксический анализ выполняется поэтапно: при описании формальной структуры предложения используется ин-
формация, которая была получена ранее на этапе мор- фологического анализа. На этом этапе применяются лек- сические и синтаксические правила для анализируемого языка.
Этап семантического анализа представляет наиболее сложную часть обработки естественно-языкового текста. Семантический анализ можно представить как обработку семантической сети, которая отражает результат анализа на предыдущих этапах
естественно-языкового текста, присутствующих в системе знаний о предметной области и языке программной системы. На данном этапе анализи- руются соотношения лингвистической конструкции и тех конструкций, которые хранятся в памяти системы для вы- явления отношений соответствия.
В процессе построения семантической модели слова учитывается его многозначность. Смысл слова рассма- тривается как некоторое множество различных значений. Каждое из этих значений или вся совокупность в целом реализуется в определенном контексте. Результатом се- мантического анализа является конструкция запроса к информационной системе.
В рамках исследовательской работы разработан про- тотип программной системы, реализующей естествен- но-языковой пользовательский интерфейс к структури- рованному источнику данных.
В качестве исходных данных представлена база данных MySQL, которая содержит информацию о существующих программных библиотеках и фреймворках.
Значением, получаемым на выходе программной си- стемы, является SQL запрос к базе данных. Одним из необходимых условий для работы системы является на- личие структуры данных, описывающей содержимое базы данных. В частности, необходимо описание таблицы и входящих в нее полей.
В
качестве примера, пользовательский запрос на естественном языке «Показать библиотеки для С++» будет преобразован в SQL запрос к базе данных
SELECT Name, Url FROM Data WHERE Type=’library’ AND Lan- guage=’cpp’.
Таким образом, естественно-языковой пользователь- ский запрос на русском языке преобразуется в SQL за- прос, который в дальнейшем может быть отправлен к базе данных.