Диссертация (1137159), страница 13
Текст из файла (страница 13)
Теоретической основой анализа будет являтьсяпонятие контекстно-свободной грамматики (КС-грамматики).Как известно, КС-грамматикой называется упорядоченная четверка G вида(N, T, s, P), где N и T — непересекающиеся конечные множества символов (т.е.алфавиты), называемых нетерминальными (нетерминалами) и терминальными(терминалами) соответственно; P — конечное множество выражений вида y →z, где y принадлежит N, z — цепочка (возможно, пустая) в алфавите,являющимся объединением N и T; s – выделенный символ из N, называемыйначальным символом. Из соображений компактности будем рассматривать КСграмматики в форме Бэкуса-Наура [31].Определение 2.6.
Пусть A — произвольный алфавит. Тогда КСграмматику вида (N, T, s, P) назовем КС-грамматикой с опорным алфавитом A⇔ когда найдется такой нетерминал y ∈ N , что система продукций P включает71подмножество продукций, состоящее из всех продукций вида y → b, где b —произвольный символ из алфавита A.Построим КС-грамматику в форме Бэкуса-Наура с опорным алфавитом A0,являющимся объединением русского алфавита, латинского алфавита имножества, состоящего из запятой, цифр '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' испецсимволов !, @, #, $, %, ^, &, *, (, ), _, +, ~, {, }, [, ], /, |, :, «, », <, >, -, №, ;, :,=, \, ., ?.
Множества нетерминалов и терминалов этой грамматики обозначимчерез N0 и T0 соответственно.ТогдапустьN0 -множество,состоящееизсимволов<текст>,<вопрос_описания_структуры>,<вопрос_описания_характеристик>,<вопрос_описания_работы>,<вопрос_описания_функций>,<вопрос_описания_назначения>,<вопрос_описания_применения>,<вопрос_описания_принадлежности>,<вопрос_описания_различий>,<вопрос_описания_общих_характеристик>,<вопрос_описания_особенностей>,<вопрос_описания_возможностей>,<специфическая_цепочка_1>,<специфическая_цепочка_2>,<специфическая_цепочка_3>,<специфическая_цепочка_4>,<специфическая_цепочка_5>,<дополнительное_существительное_1>,<специфическая_цепочка_6>,<смешанный_элемент_1>,<специфическая_цепочка_7>,<дополнительный_глагол_1>,<дополнительный_глагол_2>,<специфическая_цепочка_8>,<специфическая_цепочка_9>,<специфическая_цепочка_10>,<дополнительная_цепочка_1>,<дополнительное_существительное_2>,<опциональная_цепочка_2>,<специфическая_цепочка_11>,<вопросительное_местоимение>,<дополнительный_глагол_3>,<возможный_предлог_1>,<возможный_предлог_2>,<специфическая_цепочка_12>,<дополнительная_цепочка_2>,<опциональная_цепочка_3>,<специфическая_цепочка_13>,<специфическая_цепочка_14>,<специфическая_цепочка_15>,<дополнительная_цепочка_3>,<опциональная_цепочка_4>,<возможное_вопросительное_местоимение>,<специфическая_цепочка_16>,<специфическая_цепочка_17>,<дополнительная_цепочка_4>,<дополнительная_цепочка_5>,<опциональная_часть_вопроса>,<дополнительная_цепочка_6>,<специфическая_цепочка_18>,<возможное_вопросительное_слово>,<опциональная_цепочка>,<набор_символов>, <символ>.72Пусть T0 - множество, состоящие из символов:устраивать, структурировать, организовывать, устройство, структура,организация,составляющая,составляющаячасть,компонент,элемент,характеристика, свойство, показатель, работать, функционировать, действовать,работа, функционирование, действие, принцип, правило, функция, обязанность,выполнять,возложенныйна,наделять,миссия,цель,назначение,предназначение, роль, выполнять, преследовать, являться, есть, предназначать,создавать,сконструировать, построить, разрабатывать, спроектировать,применять,использовать,задействовать,употреблять,эксплуатировать,утилизировать, пользоваться, применяться, использоваться, употребляться,эксплуатироваться, применение, использование, эксплуатация, употребление,утилизация, пользование, задействование, принцип, правило, стандарт, подходк, ситуация, случай, группа, класс, категория, тип, кто, что, относиться,принадлежать, входить, представлять, в, отличаться, различаться, несхожий,непохожий, расхожий, несоответствовать, расходиться, и, от, на, с, отличие,несхожесть,расхождение,несовпадение,несоответствие,непохожесть,разница, аналогичность, схожесть, сходство, похожесть, похожий, схожий,подобный, аналогичный, особенность, уникальность, отличительная черта,специфика, уникальный, особенный, отличительный, специфичный, поведение,вести себя, в ситуация, при, при обстоятельство, в обстоятельство, в условие,возможность, какой, каков, обладать, иметь, у, есть у.Пусть P0 - система продукций, заданная в приложении 2, причем P0включает следующие продукции:<текст>::=<вопрос_описания_структуры>|<вопрос_описания_характеристик>|<вопрос_описания_работы>|<вопрос_описания_функций>|<вопрос_описания_назначения>|<вопрос_описания_применения>|<вопрос_описания_принадлежности>|<вопрос_описания_различий>|<вопрос_описания_общих_характеристик>|<вопрос_описания_особенностей>|<вопрос_описания_возможностей>;<вопрос_описания_структуры>::=как<набор_символов><специфическая_цепочка_1><набор_символов><возможное_вопросительное_слово><набор_симв73олов><специфическая_цепочка_2><опциональная_цепочка><набор_символов>|возможное_вопросительное_слово><набор_символов><специфическое_существительное><набор_символов>|изчтосостоять<набор_символов>|изкакой<набор_символов><специфическая_цепочка_2>состоять<набор_символов>;<специфическая_цепочка_1>::=устраивать|структурировать|организовывать;<специфическая_цепочка_2>::=устройство|структура|организация|составляющая|составляющаячасть|компонент|элемент;<вопрос_описания_характеристик>::=<возможное_вопросительное_слово><набор_символов><специфическая_цепочка_3><опциональная_цепочка><набор_символов>|<возможное_вопросительное_слово><набор_символов><специфическая_цепочка_3><набор_символов>;<специфическая_цепочка_3>::= характеристика|свойство|показатель;<возможное_вопросительное_слово>::= |какой|каков;<опциональная_цепочка>::= |обладать|иметь| у|есть у;<набор_символов>::= |<набор_символов><набор_символов>|<символ>;<символ> ::= b1…<символ> ::= bn , где {b1, ...,bn }∈ A0Тогдаконтекстно-свободнуюграмматикуGr0 = (T0, N 0, < текст >, P0 )сопорным алфавитом A0 назовем грамматикой входного языка запросов.НеобходимостьиспользованияпроизвольныхсимволовалфавитаA0 обусловлена тем, что в специализированных названиях каких-либо объектовмогут присутствовать сочетания различных символов из разных алфавитов.Помимо этого, набор символов может представлять слово, имеющееопределенный смысл, однако при анализе входных запросов введение такойсущности необязательно, т.
к. анализируется вхождение в запрос определенных74индикаторов,которыепредставляютсяпоследовательностьюсимволоврусского алфавита.Пример. Пусть В1 = «Каковы главные характеристики алгоритмаДейкстры?». Тогда в грамматике с предложенной системой продукций можновыполнить следующую систему заменнетерминалов на правые частипродукций, приводящую к выводу цепочки, дающей обобщенное описаниеструктуры вопроса В1. В данном примере опущены промежуточныепосимвольные преобразования нетерминала <набор_символов>.<текст> => <вопрос_описания_характеристик>,<вопрос_описания_характеристик>=><возможное_вопросительное_слово><набор_символов><специфическая_цепочка_3><опциональная_цепочка><набор_символов>,<возможное_вопросительное_слово>=>каков,<специфическая_цепочка_3>=> характеристика,<опциональная_цепочка>=>,<набор_символов>=>главные|алгоритма Дейкстры.Из примера видно, что <текст> =>Expr1, где Expr1 — цепочка видакаков<набор_символов>характеристика<набор_символов>.Пусть Gr0 = (T0, N 0, s 0, P0 ) - контекстно-свободная грамматика с опорнымалфавитомA0 ,множествомнетерминальныхсимволовN 0 ,множествомтерминальных символов T0 , множеством продукций P0 и начальным символомs0 .
Тогда через Linp (Gr0 ) обозначим множество всех цепочек в алфавите T0 ,выводимых из s0 с помощью продукций из P0 . Тогда определим входной языкзапросов Linput как множество всех таких цепочек str, что стем-форма цепочкиstrk является выражением языка Linp (Gr0 ) .Таким образом, выше был предложен новый метод формального описанияструктурывходныхтекстованализаторааспектно-ориентированныхестественно-языковых вопросов на основе аппарата КС-грамматик.752.9Основные идеи разработки алгоритмов определения типа иобъектов интереса входных запросовРассмотрим основные идеи, лежащие в основе алгоритма определениятипа аспектно-ориентированного вопроса.
Некоторые детали алгоритмовобусловлены тем, что проектирование производится для языков объектноориентированнойпарадигмы.Анализструктурывходныхзапросов(приложение 1), которые являются аспектно-ориентированными вопросами,позволил выявить общие черты, характерные для многообразия представленныхпримеров. Входные запросы данного типа в большинстве случаевимеютобщую структуру, а отличаются лишь характеристическим словом, котороепозволяет определить, к какому именно типу относится входной запрос. Данноенаблюдение позволяет отказаться от разбора входного текста по словам сдетальным морфологическим анализом каждого из слов-участников, а также отвыявлениявзаимосвязеймеждуними.Анализнаосноверазборапоследовательности слов в запросах определенного типа выполняется вкачестве исключения из общего правила.В запросах присутствуют слова, которые необходимо исключить израссмотрения, т.
к. они не несут какой-либо смысловой нагрузки. Примерамитаких слов являются «какой», «в», «как», «каков» и т. д. Слова такого родабудем называть терминаторами по аналогии с нуль-символами нультерминированных строк [11]. Помимо данных двух основных типов словучастников запроса, были выделены дополнительные участники, которыепозволяют более точно анализировать структуру входного текста и выделять егозначимые части. Целесообразно выделить специализированный индикатор,который позволит определять к какому из типов значимых при разборе словучастников относится каждый из ключевых наборов слов, характерных дляопределенного типа запроса.В силу того, что для каждого типа запроса возможно выделитьхарактеристические слова, видится разумным разместить данные наборы слов вотдельной структуре данных, предварительно установив соответствие каждого76набора определенному типу запросов.
Назовем такую структуру данныхСловарь и рассмотрим ее поля: Слова_Инд — массив слов-индикаторов вбазовой форме; Тип_Запр — тип запроса, к которому относится данный массивслов-индикаторов; Тип_Инд — тип (характер) слов-индикаторов.Словари удобно использовать для хранения различных наборов словиндикаторов с разбиением по типам и принадлежности видам запросов.Словари создаются и наполняются до начала работы алгоритма. Доступ копределенному полю словаря осуществляется при помощи оператора «::»(Например, чтобы получить тип запроса, необходимо использовать следующуюзапись: Словарь::Тип_Запр).