Научная статья на тему 'Система интеграции информации и знаний с использованием семантических технологий'

Система интеграции информации и знаний с использованием семантических технологий Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
275
231
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
онтология / триплеты / системы управления знаниями / семантическое аннотирование / семантический поиск / интеграция информации / semantic web / owl / rdf / ontology / triples / knowledge management systems / semantic annotating / semantic search / information integration

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тузовский Анатолий Федорович, Черний Антон Васильевич

Статья посвящена применению методологии Semantic Web в организациях для решения задачи интеграции разнородных ресурсов информации и данных. Описан подход к разработке такой системы, предложенная архитектура, используемые технологии и программные продукты. Система основана на наборе онтологий и нацелена на извлечение, интеграцию, категоризацию, поиск разнородных объектов знаний организации, на основе имеющихся в организации информационных систем и документов. Система позволяет интегрировать знания нескольких организаций-партнеров. Методология и система представляют собой универсальную платформу для создания Систем Управления Знаниями и могут быть применены в любой предметной области.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article is devoted to application of Semantic Web methodology in organizations for solving problems of integrating the heterogeneous information resources and data. The approach to such system development was described: architecture, the applied techniques and software products were proposed. The system is based on a set of ontologies and aimed at extraction, integration, categorization, search for heterogeneous knowledge objects of organization on the basis of information systems and documents available in the organization. The system allows integrating knowledge of several organization-partners. Methodology and system represent a universal platform to develop Knowledge management system that may be applied in any knowledge domain

Текст научной работы на тему «Система интеграции информации и знаний с использованием семантических технологий»

УДК 004.4'413

СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР ДЛЯ ВОПРОСНО-ОТВЕТНОЙ СИСТЕМЫ

К.Х. Ким, А.П. Савинов

Томский политехнический университет E-mail: kimkir@sibmail.com

Рассмотрена программная реализация в среде Borland Delphi 7алгоритма синтаксического анализатора текстов на естественном русском языке. За основу взята лингвистическая методология проведения глубокого синтаксического анализа И.А. Мельчука. Приведен анализ достоинств и недостатков этого подхода с точки зрения программирования. Показано, что внедрение программного блока глубокого синтаксического анализа расширит возможности вопросно-ответной системы.

Ключевые слова:

Лингвистический процессор, автоматический синтаксический анализ, вопросно-ответные системы, интерфейс на естественном языке, синтаксическая структура предложения.

Key words:

Linguistic processor, automatic syntax analysis, question-answer systems, natural language interface, syntax structure of the sentence, generative grammars, syntax, parser.

Введение

Проблема создания интеллектуального человеко-машинного интерфейса остается актуальной и по сей день. Между собой люди общаются с помощью речи на естественном языке или письменного текста. Для обеспечения массового использования компьютеров населением необходимо, чтобы взаимодействие неподготовленного пользователя с ЭВМ также происходило на естественном языке в виде письменного текста или речи [1-3].

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

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

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

• графематическую;

• морфологическую;

• синтаксическую;

• семантическую.

Графематический анализ является подготовительным этапом для морфологического анализа. Входной текст разбивается на отдельные словоформы, программа запоминает расположения словоформ в тексте, распознает косвенные элементы текста (номера телефонов, наименования организаций, Ф.И.О., даты и т. д.).

Целью морфологического анализа является определение всех вариантов грамматических характеристик (род, число, падеж, часть речи) к каждой словоформе входного текста.

Синтаксический анализ определяет наличие и характер синтаксических связей между словоформами, создает синтаксическую структуру текста.

Семантический анализ создает структуру входного текста.

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

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

Н. Хомский стал родоначальником первого подхода и основателем школы генеративистов. Самым ярким представителем второго подхода является И.А. Мельчук, автор модели «Смысл - Текст» [1, 2].

На сегодняшний день наибольшие успехи наблюдаются в английском языке, в котором уже существует ряд систем, способных успешно производить синтаксический разбор предложений. Поскольку для английского языка характерен прямой порядок слов в предложении, для осуществления синтаксического анализа наиболее подходят грамматики составляющих, разработанные американским ученым Н. Хомским [1].

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

Лингвистический алгоритм автоматического синтаксического анализа текста на естественном языке, реализующий грамматики зависимостей, был детально разработан И.А. Мельчуком в середине 60-х гг. прошлого века [2]. Особенностью предложенного подхода является стремление сделать полный синтаксический разбор предложения. Однако вычислительная мощность компьютеров не позволяла тогда реализовать сложные алгоритмы анализа в полном объеме. Упрощение алгоритмов и отказ от перебора омонимичных вариантов - компромисс, который приводил к низкой точности синтаксического анализа предложения.

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

Вместо системы синтаксических правил используется обширный набор примеров-предложений, разобранных человеком вручную (или полуавтоматически, но с обязательным контролем чело-века-оператора). Этот набор примеров используется для «обучения» статистического распознавателя, опирающегося на известный метод дерева принятия решений [3].

Для создания набора примеров не требуется высокой квалификации в области лингвистики. Проблема только в количестве этих примеров - для достижения приемлемой точности анализатора их может потребоваться тысячи.

Разновидностью статистических систем синтаксического анализа являются анализаторы, которые используют описание языка в виде моделей управления. Они настроены на работу в требуемой предметной области и полученные в результате предварительного анализа корпуса текстов этой предметной области. Каждой модели управления приписывается частотность, характеризующая вероятность использования этой модели управления для новых текстов данной области [4].

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

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

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

1. Общие принципы внутрисегментного

синтаксического анализа

В основу работы синтаксического анализатора был положен лингвистический алгоритм синтаксического внутрисегментного анализа текста на естественном языке И.А. Мельчука.

Внутрисегментный автоматический синтаксический анализ занимается определением синтаксических связей между словами одного простого предложения (сегмента, фрагмента) или предложения в составе сложносочиненного или сложноподчиненного предложения.

Все словосочетания рассматриваются как сочетания из двух слов (синтагм), где одно слово -«главное», другое - «зависимое». «Главное» и «зависимое» слова связаны друг с другом определенным видом связи. Существуют 33 типа синтаксических связей (ОНД - Отношения Непосредственной Доминации).

Слова в предложении согласованы между собой по средством морфологических признаков (род, число, падеж). Если рассматривать значения грамматических признаков слов, как некоторую конфигурацию, то каждое словосочетание имеет определенную конфигурацию грамматических признаков. Чтобы не приходилось каждый раз вести поиск по всем типам синтаксических связей и сопоставлять грамматические признаки для определения типа связи, была создана специальная таблица - таблица конфигураций. Каждая строка таблицы конфигураций представляет собой отдельное правило синтаксиса.

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

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

Когда этап предварительной обработки завершен, алгоритм переходит к синтаксической обработке входных данных и начинает рассматривать слова первого простого предложения (сегмента, фрагмента). Для того, чтобы определить, какое из слов «главное», а какое «зависимое», алгоритм поочередно берет каждое слово и рассматривает его как «главное», далее ищет в пределах простого предложения «зависимое» слово.

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

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

Принцип распределения конфигураций по циклам таков. Группа конфигураций, которые рассматриваются на первом цикле, - это конфигурации, которые не зависят от других конфигураций. Конфигурации, которые рассматриваются на втором цикле - это такие конфигурации, которые зависят хотя бы от одной конфигурации первого цикла и т. д.

2. Описание методов реализации внутрисегментного

синтаксического анализа в среде 0е1рЫ 7

Если рассматривать внутрисегментный автоматический синтаксический анализ текста с точки зрения его реализации в виде программы, то можно сказать, что система использует 2 типа данных:

Статические данные и алгоритмы или данные в виде таблиц - это морфологические признаки словоформ (в таблице информаций) и словарь правил синтаксиса (в виде таблицы конфигураций). Эти данные реализованы в виде отдельных таблиц.

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

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

Алгоритмы для обработки данных - это программные блоки, на которые разделена вся система автоматического синтаксического анализа. Эти алгоритмы реализованы в виде программных процедур. Алгоритмы используют данные из таблицы конфигураций как параметры для процедур (место поиска, предмет поиска, параметры поиска, диапазон поиска). Процедуры разделяются согласно подходу внутрисегментного анализа на 5 блоков:

• основной алгоритм;

• проверка на дополнительные условия;

• дополнительные обработки;

• обработка исключений (действия, если не найден второй член конфигурации);

• основная обработка.

В описании автоматического внутрисегментного синтаксического анализа И.А. Мельчука каждый блок представлен в виде списка операций. Все операции в блоке сгруппированы под заголовками, которые рассматривают конкретный случай в синтаксической грамматике (составные предлоги «...так, как...», «последовательности числительных», и т. д.). Каждая операция описывается текстом и примерами (рис. 1).

В среде Delphi 7 была сохранена структура представления алгоритма. Заголовки таких операций были реализованы в виде названий классов, а операции внутри них упорядочены по шагам. Краткие описания операций сохранены в виде комментариев в коде программы. Все 5 блоков автоматического внутрисегментного анализа имеют одинаковую структуру. Основной алгоритм взаимодействует с остальными блоками по принципу «ссылок», блок отправляет данные на дальнейшую обработку, всегда с указанием номера процедуры и блока.

Рассмотрим на примере реализации Блока исключений (действия, если не найден второй член конфигурации). Блок состоит из 58 классов, каждый из которых является наследником TProcClass. Каждый класс-наследник состоит из набора последовательных процедур, предназначенных для разрешения определенной исключительной ситуации. Это может быть проверкой или записью значений в таблицу информаций или сегментов. Класс-родитель содержит вспомогательные процедуры, общие для классов-наследников, такие как изменение индексов в таблице морфологических признаков при добавлении/удалении строки.

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

Например, если в таблице конфигурации требуется обращение к процедуре номер 5 блока исключений, класс будет иметь название TIfNotSecMem5 (If Not Second Member - если не найден второй член конфигурации). Каждый класс содержит определенный набор последовательных процедур, назы-

i Надоели баннеры? Вы всегда можете отключить рекламу.