Архитектура программного обеспечения для поиска документов по запросу на естественном языке

А.В.Гаврилов

Новосибирский государственный технический университет, кафедра вычислительной техники, ул. Немировича-Данченко,

136, Новосибирск, Россия, 630087, email: avg@vt.cs.nstu.ru

ABSTRACT

The architecture of software for searching of semantics in documents is subscribed in this report. One is based on principle of semantics oriented analysis of natural language and use hierarchical semantic networks with elements of neural algorithms. The main algorithms of learning and searching are considered. Also the features of learning (creation of knowledge base) of proposed software are analyzed.

ВВЕДЕНИЕ.

Реализация диалога с компьютером на естественном языке (ЕЯ) является одной из главных проблем, решаемых в разделе информатики, называемой обычно “Искусственный интеллект”. Недаром тест Тьюринга, целью которого является оценка “качества” искусственной интеллектуальной системы, базируется на диалоге с компьютером.

Главной же проблемой при создании диалоговых систем с использованием ЕЯ является проблема распознавания смысла (семантики) предложений ЕЯ. Кроме того, решение этой проблемы актуально и для решения чисто прикладных задач, таких как

Решением проблемы формализации и распознавания смысла предложений на естественном языке занимаются давно с переменным успехом и зарубежные и отечественные исследователи [1-12].

Однако до сих пор нет достаточно полной модели представления знаний, содержащихся в предложении на ЕЯ, и эффективных принципов и алгоритмов обработки текстов на ЕЯ, объединяющих в себе достоинства методов инженерии знаний (например, семантических сетей) и преимущества нейронных сетей.

В статье делается попытка предложить такую модель и такие принципы и алгоритмы.

МОДЕЛЬ ЗНАНИЙ

В основе представления и распознавания смысла ЕЯ положены следующие основные принципы:

Первый их этих принципов (семантически-ориентированный анализ) был сформулирован и активно развивался в работах Нариньяни и Файна. Последние два принципа были сформулированы автором настоящей статьи и использованы им при создании системы программирования роботов на естественном языке [13-14].

На рисунке показана функциональная структура системы обработки запросов к документам по их содержанию.

 

 

База знаний (БЗ) представляет собой семантическую сеть фреймов. Правда, фреймами узлы сети названы условно, т.к. они являются их вырожденным случаем и напоминают узлы семантической сети

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

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

С фреймом может ассоциироваться высказывание или набор высказываний с одинаковым смыслом, а также, слово из словаря или документ. Соответственно, одной из характеристик фрейма является его уровень в сети:

0 – фрейм, связанный непосредственно со словом или документом (фрейм-слово или фрейм-документ),

1 – фрейм, с которым ассоциируется словосочетание (составной фрейм),

2 – фрейм-понятие, включающее в себя ссылки на нескольких других фреймов, играющих определенные роли в этом понятии,

3 – фрейм-рубрика, описывающий понятие, которое является “описанием” (ссылкой, классом)) всех понятий и документов, связанные с этой рубрикой,

Особая разновидность фреймов уровня 0 – фреймы для связи с процедурами, используемыми при анализе предложений ЕЯ. Такие фреймы содержат знак препинания или слово, которое обрабатывается особым образом (например, слово - “не”, а знаки препинания – тире, двоеточие, запятая, и точка с запятой).

Фрейм состоит из слотов. Каждый слот – это его имя и значение.

Значением слота является ссылка на другой фрейм, на слово в словаре или на документ.

Во фрейме существуют (но не все из них используются в конкретном фрейме) следующие слоты:

Кроме того, фрейм включает в себя следующие параметры:

В системе используется два словаря:

Кроме того, некоторые слова (назовем их специальными) из этих двух словарей могут быть связаны (отождествлены) с символами-разделителями (пробел, тире, запятая). Они заменяются на соответствующие знаки при предварительной обработке предложения. Это позволяет фильтровать ненужные с точки зрения анализа смысла (отождествляя их с пробелами) и структурировать длинные словосочетания и процесс их анализа путем замены таких слов как “и” или “или” на запятые, “это” или “равно” - на тире, “состоит” – на двоеточие и т.п.

АЛГОРИТМЫ

Обработка предложения в режиме обучения состоит из следующих этапов:

  1. выделение слов (используя знаки препинания и пробелы),
  2. распознавание слов по максимальной похожести со словами в словаре, при этом если подходящее слово не находится в основном словаре, происходит его поиск в пополняемом словаре, и, если и там его нет, происходит его добавление в этот словарь.
  3. создание фреймов, связанных с распознанными словами и знаками препинания (уровня 0), результатом распознавания предложения является объект-предложение, описывающий предложение и представляющий собой список фреймов
  4. замена в этом объекте специальных слов знаками-разделителями,
  5. обработка объекта-предложения процедурой распознавания-порождения фреймов.

Процедура распознавания-порождения фреймов рекурсивно обрабатывает объект-предложение, заменяя словосочетания между знаками препинания на распознанные в базе знаний или вновь созданные фреймы. В конце обработки этой процедурой список фреймов в объекте-предложении включает только один или два фрейма (в последнем случае в предложении присутствовал хотя бы один знак препинания "-" или двоеточие).

Фрейм-понятие создается по атрибутам в распознанных словах (это возможно при наличии, троек “субъект”-“действие”-“объект” или “объект-действие-объект” (в последнем случае во фрейме-понятии первый объект объявляется субъектом) или пар “объект”-“свойство”, “объект-действие”.

Фрейм-понятие или составной фрейм создаются только, если соответствующий фрейм не найден в базе знаний (операции 6 и 7).

При окончании обработки в случае, если в предложении есть тире, происходит создание связей типа Equal между фреймами - двумя частями предложения.

Если тире в предложении нет, создается составной фрейм из всех фреймов предложения. Последний созданный или распознанный фрейм запоминается как контекст. Если предложение начинается с тире, фрейм, соответствующий ему (распознанный или созданный) связявается связью Equal с фреймом-контекстом.

При создании составного фрейма или фрейма-понятия создается фрейм-документ и связь типа equal между ним и созданным фреймом.

При обработке фрейма-действия со словом “не” происходит инверсия следующего за ним фрейма-слова или в случае, если “не” встретилось в начале предложения или сразу после тире, происходит инверсия соответствующего составного фрейма или фрейма-понятия.

Фрейм-рубрика должен задаваться перед обработкой документа.

Обработка предложения в режиме обработки запроса состоит из следующих этапов:

  1. выделение слов (используя знаки препинания и пробелы),
  2. распознавание типа предложения по последнему знаку препинания: точка – повествовательное, ! – восклицательное, ? – вопросительное (результат распознавания пока не используется),
  3. распознавание слов по максимальной похожести со словами в словаре, при этом если подходящее слово не находится в базовом словаре, происходит его поиск в пополняемом словаре, и, если и там его нет, происходит его добавление в этот словарь. В последнем случае система задает вопрос “что такое <введенное новое слово>?” для уточнения его смысла и увязывания его с другими словами или понятиями. Ответ пользователя обрабатывается в режиме обучения.
  4. создание фреймов, связанных с распознанными словами и знаками препинания (уровня 0), результатом распознавания предложения является объект-предложение со списком фреймов,
  5. распознавание фреймов уровня 1 – словосочетаний в базе знаний, максимально похожих на распознанный запрос (фразу) и фреймов-понятий уровня 2 (здесь используется нейросетевой алгоритм, т.е. взвешенное суммирование сигналов от входящих во фрейм слов или фреймов и сравнение с порогом),
  6. поиск ассоциативно связанных ссылками Equal с распознанными фразами фреймов (уровня 0), связанных с документами,
  7. поиск фреймов-документов из найденных фреймов по связям типа include, act, obj, subject, prop сверху вниз, при этом, если документов очень много, система выдает сообщение с просьбой переформулировать запрос.
  8. вывод найденных имен документов или слов, входящих в состав найденных фреймов.

Фреймы-рубрики (уровня 3) планируется использовать для сокращения количества найденных фреймов. При этом выбираются для последующих операций только те фреймы, которые связаны через ссылку Parent с соответствующим фреймом-рубрикой, или у которых эта ссылка не определена. Фрейм-рубрика может задаваться в программе поиска в меню выбора рубрики или при нахождении соответствующего слова (словосочетания) в распознаваемом предложении-запросе.

ОБУЧЕНИЕ ПРОГРАММЫ СЕМАНТИЧЕСКОГО ПОИСКА

Рекомендуется обучать программу (создавать базу знаний) в следующей последовательности:

  1. Первоначальное обучение распознаванию структуры предложения заданием предложений в виде <слово> - @<символ>. После этого программа будет перед обработкой предложения при последующем обучении заменять заданное слово на заданный символ-разделитель. В качестве символа-разделителя могут быть пробел, тире, двоеточие, запятая, точка с запятой. Пробел означает, что данное слово будет исключаться из анализа семантики предложения. При этом обучении создается словарь специальных слов.
  2. Начальное обучение. При этом задаются основные понятия из житейской практики или предметной области в виде предложений типа “деньги – средство платежа”, “мораль – правила поведения”, “виды деятельности : торговля, производство, услуги” и т.п.
  3. Базовое обучение. При этом программе “скармливается” толковый словарь предметной области, где объясняются понятия в предложениях вида <понятие> - <объяснение, что это или для чего, какие бывают и т.п.>.
  4. Информационное наполнение. При этом программе скармливаются документы, в которых она должна искать ссылки при обработке запросов.

Этапы 1-3 необходимы для лучшей структуризации базы знаний и обеспечения достаточно большого процента распознаваемых понятий при обработке документов на этапе 4. Иначе, при обработке запроса программа часто будет не находить в запросе какого-либо известного ей понятия, выполнять поиск по словам, входящим в запрос.

После каждого этапа можно сохранять полученную базу знаний и для продолжения обучения загружать сохраненную ранее.

ЗАКЛЮЧЕНИЕ

В настоящее время разработана демонстрационная версия программного обеспечения, состоящая из двух программ:

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

Запрос: “Разработчики экспертных систем”.

Возможные варианты содержимого документов, удовлетворяющих данному запросу.

Содержимое документа 1: “Наши разработки: … экспертная оболочка ESWin”

Содержание документа 2: “Наша фирма разработала советующую систему на основе базе знаний …”

Содержание документа 3: “Вы можете заказать у нас разработку экспертной системы для …”

Содержание документа 4: “Фирма занимается разработкой программного обеспечения….. Наши продукты - …..инструментальная экспертная система ESWin”

Содержание документа 5: “Наши продукты…. Программа экономического анализа D … знания о рынке представлены в виде семантической сети (или правил, фреймов и т.п.)….”.

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

  1. экспертная система - советующая система,
  2. методы представления знаний в экспертных системах: фреймы, семантические сети, правила, лингвистические переменные.
  3. Экспертная оболочка это инструмент для создания и отладки экспертных систем.

Демонстрационная версия разработана в среде Delphi 5, требует RAM не менее 64 Мб, скорость процессора не менее 300 Мгц и доступна для скачивания по адресу http://insycom.da.ru (только программа поиска с демонстрационной базой знаний и документами). База знаний в ней хранится в текстовом виде и загружается целиком при запуске программы.

Программное обеспечение было испытано на компьютере с процессором AMD K6-2 350 Мгц и RAM 64 Мб. При этом база знаний была создана на основе предварительного диалога из порядка 40 обучающих предложений, обработки документов (формате .txt):

Созданная БЗ на носителе занимала около 8Мб (в текстовом виде) и содержала 87513 фреймов и 14715 слов в пополняемом словаре. Обработка в режиме обучения всех этих документов на указанном компьютере заняла около часа времени.

Предварительные испытания показали, что предложенные принципы и алгоритмы позволили построить систему, осуществляющую поиск документов и их фрагментов в ответ на запрос на естественном языке с довольно не тривиальными результатами. В найденных фрагментах могли отсутствовать слова запроса. Причем качество ответов сильно зависит от качества обучающего материала на этапах 1, 2 и 3 (см. выше).

Результаты испытаний позволили наметить пути дальнейшего усовершенствования предложенной архитектуры:

Планируется использовать разработанную архитектуру при построении ПО для поддержки работы с документами.

ЛИТЕРАТУРА

  1. П. Линдсей, Д.Норман. Переработка информации у человека. – М.: Мир, 1974.
  2. Т. Виноград. Программа, понимающая естественный язык. – М.: Мир, 1976.
  3. Р. Шэнк. Концептуальная обработка информации. – М.: Мир, 1976.
  4. И.А. Мельчук. Опыт теории лингвистических моделей “смысл-текст”. – М.: Наука, 1974.
  5. Э.В. Попов. Общение с ЭВМ на естественном языке. – М.: Наука, 1982.
  6. Е.В. Золотов, И.П. Кузнецов. Расширенные системы активного диалога. – М.: Наука, 1982.
  7. В.С. Файн. Распознавание образов и машинное понимание естественного языка. – М.: Наука, 1987.
  8. Моделирование языковой деятельности в интеллектуальных системах./ Под ред. А.Е. Кибрика и А.С. Нариньяни. – М.: Наука, 1987.
  9. Искусственный интеллект: В 3 кн. Кн. 1. Системы общения и экспертные системы. Справочник. / Под ред. Э.В. Попова. – М.: Радио и связь, 1990.
  10. С.А. Шумский, А.В. Яровой, О.Л. Зорин. Ассоциативный поиск текстовой информации. - / Труды Всероссийской науч.-технич. конференции “Нейроинформатика-1999”, ч. 3. - М., 1999. – С. 101-109.
  11. J. Yang, P. Pai, V. Honavar, I. Miller Mobile Intelligent Agents for Document Classification and Retrieval: A Machine Learning Approach. -http://www.cs.iastate.edu/~honavar/aigroup.html.
  12. Н.Н. Жигирев, В.В. Корж, Б.Н. Оныкий. Самонастраивающийся словарь ключевых слов и нейронная сеть Хопфилда для классификации текстов. - / Труды 2-й Всероссийской науч.-технич. конференции “Нейроинформатика-2000”, ч. 2. - М., 2000. – С. 58-61.
  13. А.В. Гаврилов. Диалоговая система подготовки программ для роботов.-В сб. "Диалоговые системы в задачах управления", Новосибирск, НЭТИ,1987.
  14. А.В. Гаврилов. Диалоговая система подготовки программ для роботов. - В сб. Automatyka, v.99. - Glivice, 1988. - P.173-180.
  15. http://www.noolab.ru