Научная статья на тему 'Синтаксический анализатор для вопросно-ответной системы'

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

CC BY
429
59
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
лингвистический процессор / автоматический синтаксический анализ / вопросно-ответные системы / интерфейс на естественном языке / синтаксическая структура предложения / linguistic processor / automatic syntax analysis / question-answer systems / natural language interface / syntax structure of the sentence / generative grammars / syntax / parser

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ким Кирилл Хабокович, Савинов Анатолий Павлович

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

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

Software implementation of text syntax analyzer algorithm in the natural Russian language in Borland Delphi 7 environment has been considered. Linguistic methodology of carrying out the deep syntax analysis of LA. Melchuk is taken as a principle. The analysis of advantages and disadvantages of this approach from the point of view of programming is introduced. It is shown that introduction of a program block of the deep syntax analysis expands the possibilities of the question-answer system.

Текст научной работы на тему «Синтаксический анализатор для вопросно-ответной системы»

§ 5. ЧАСТЬ Д - ДЕЙСТВИЯ В СЛУЧАЕ, ЕСЛИ НЕ НАЙДЕН ВТОРОЙ ЧЛЕН

КОНФИГУРАЦИИ

Для составных предлогов, последним компонентом которых является предлог

(КНФ 15-20)

1. Проверить, является ли словоформа первая вправо от іо, словоформой друг.

2. Обозначить словоформу, первую вправо после друг, через іі.

Имеются в виду случаи, типа в зависимости друг от друга // по отношению друг к другу и т. д., где словоформа друг отделяет последний компонент составного предлога.

Рис. 1. Пример описания алгоритма автоматического синтаксического анализа из книги И. А. Мельчука. 0 - главное слово; 0 ■ зависимое слово; КНФ - конфигурация

ваемых шагами: Лер 1, 81ер2 и т. д. Такая структура объясняется наличием случаев, когда из одного класса происходит обращение к определенному шагу другого класса. На рис. 2 приводится пример структуры одного класса.

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

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

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

Создание таблиц БД осуществляется с помощью утилиты Database Desktop (DBD), входящей в комплект поставки Delphi. Утилита DBD решает целый ряд задач, связанных с таблицами. С ее помощью можно создавать или изменять структуру таблицы, строить ее первичные ключи и индексы, создавать и изменять записи, просматривая их и т. д. Для хранения структуры таблиц была выбрана база данных Paradox 7.

Для интерпретации данных из базы используется компонент TTable из панели BDE. В среде Borland Delphi существует набор встроенных функций для обращения к данным в таблице TTable. Использование этих функций привело к уменьшению громоздкости кода и к исключению ошибок, связанных с написанием запросов к таблицам.

Интерфейс построения дерева зависимостей

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

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

Procedure TIfNotSecMem5 (var i0, i1, i2 knf: integer)

Begin

If (некоторое условие) then TIfNotSecMem35.Step3 (var i0, i1, i2 knf: integer); End;

Рис. 2. Структура программной реализации одной из обработок алгоритма синтаксического анализа

//................Класс 1 TKNF15_20-

1. Проверить, является ли словоформа, первая вправо от I0, словоформой "друг"

2. Если да, то обозначить словоформу, первую вправо после "друг" через I1

-}

procedure TIfNotSecMem1.Step1(); begin

ShowMessage ('блок IfNotSecMem1 Step1');

// ShowMessage('FormSystem.TableInformation.FieldByName('SymbolsWord').AsString'); FormSystem.TableInformation.Next;

if (FormSytem.TableInformation.FieldByName('SymbolsWord').AsString= 'друг') then Step2 else begin

I0 := I0+1; // следующая словоформа, переход кА.1.4

ShowMessage ('Если не найден 2-ой член 15_20.Step1->nepexofl к A.1.4');

end;

end;

procedure TIfNotSecMem1.Step2(); begin

ShowMessage ('Если не найден 2-ой член 15_20.Step2'); FormSystem.TableInformation.Next;

i1:= FormSystem.TableInformation.FieldByName('WordID').AsInteger;

// переход к блоку G

ShowMessage('Eonn не найден 2-ой член 15_20.Step1->nepexofl к G9'); BusyComb_V.Step1;

BusyComb_V.Free;

end;

//...........................Конец Класс! TKNF15_20.........................

Рис. 3. Пример программирования одного из блоков алгоритма синтаксического анализа

время, оставшееся до завершения обработки, номер текущего цикла анализа.

Программный блок ведения статистики

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

Заключение

Рассмотрена программная реализация в среде Вог1апё Delphi 7 алгоритма синтаксического анализатора текстов на естественном русском языке. Программно реализованы блоки для дополнительных обработок и исключений. Программные блоки проверки на дополнительное условие, основных обработок и основной алгоритм реализованы примерно на 50 %. В алгоритм И.А. Мельчука и структуру данных внесены существенные доработки: полностью исключен принцип «переадресации»; в структуру таблиц морфологических признаков (информаций к словоформам) и таблицы конфигураций добавлены новые поля. Все поля, связанные с переадресацией, исключены. Изменения были необходимы из-за

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

Разработан и программно реализован журнал операций для тестирования работоспособности

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

СПИСОК ЛИТЕРАТУРЫ

1. Большаков И.А., Гельбух А.Ф. Модель «Смысл - Текст» тридцать лет спустя // Диалог 99: Труды Междунар. семинара. - М., 1999 - Т. 1. - С. 15-24.

2. Мельчук И.А. Автоматический синтаксический анализ. - Новосибирск: Изд-во АН СССР, 1965. - 358 с.

3. Андреев А.М., Березкин Д.В., Брик А.В., Кантонистов Ю.А. Вероятностный синтаксический анализатор для информационно-поисковой системы [Электронный ресурс]. - режим

доступа: http://www.inteltec.ru/publish/articles/textan/1kx5_9. shtml. - 16.03.2006.

4. Волкова И.А., Мальковский М.Г., Одинцев Н.В. Адаптивный Синтаксический анализатор // Диалог 2003: Труды Междунар. семинара. - М., 2003. - Т. 1. - С. 401-406.

Поступила 09.04.2009г.

УДК 681.3.068+681.5

ВЫЯВЛЕНИЕ СКРЫТЫХ ЗАКОНОМЕРНОСТЕЙ В СЛОЖНЫХ СИСТЕМАХ

О.Г. Берестнева, Я.С. Пеккер

Томский политехнический университет Сибирский государственный медицинский университет E-mail: ogb@tpu.ru; pekker@ssmu.ru

Рассмотрены основные подходы к решению задачи выявления скрытых закономерностей в сложных медико-биологических системах. Показаны особенности решения такой задачи в случае количественных и качественных экспериментальных данных. Представлена технология выявления скрытых закономерностей на основе методов Data Mining.

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

Компьютерный анализ данных, скрытые закономерности, биосистемы, деревья решений. Key words:

Computer analysis of data, hidden patterns, biological systems, decision trees.

Введение

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

На современном уровне исследования биологических систем имеет смысл говорить именно о системном подходе, который получил развитие в трудах И.Р. Пригожина, П.К. Анохина, К.В. Судакова, У. Эшби и других выдающихся ученых.

Начиная со второй половины XX в., биология и медицина стремительно отходят от вербального описания и все больше тяготеют к формализации процессов, происходящих в биосистемах, использованию математических моделей и технических средств, а позднее и компьютерных технологий [2, 3]. Однако, это сопряжено с колоссальными сложностями, особенно при оценке динамических характеристик поведения биосистем и процесса их адаптации.

Значительные трудности изучения количественных характеристик биологических систем предопределяются особенностями и свойствами последних, и, прежде всего [1]: структурной и функциональной сложностью; вариабельностью параметров для одного состояния; нелинейностью характеристик; невозможностью полного описания системы. Последняя особенность («ущербность» описания) существенно осложняет постро-

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