Диссертация (1137159), страница 14
Текст из файла (страница 14)
Будем считать, что получить определеннуюзапись(словарную статью) словаря можно при помощи следующей записи:Словарь::Получить_Словарь(Тип_Запроса, Тип_Инд), где Тип_Запроса — этотип запроса, к которому относится словарь. Обозначения типов запросовпредставлены в таблице 2.2.Тип_Инд — это тип индикатора, к которомуотносятся слова-индикаторы в данной словарной статье.Таблица 2.2. Символы, соответствующие типам запросовТип запросаСимволОписание структурыОП_СТРОписание характеристикОП_ХАРОписание работыОП_РАБОписание функцийОП_ФУНОписание назначенияОП_НАЗОписание примененияОП_ПРИМОписание принадлежностиОП_ПРИНОписание различийОП_РАЗОписание общих характеристикОП_ОБЩОписание особенностейОП_ОСОБ77Описание возможностейОП_ВОЗМРассмотрим типы индикаторов (Таблица 2.3):Таблица 2.3.
Типы специализированных индикаторов для определенияхарактера значимых слов - участников поискового запросаНазваниеОписаниеиндикатораХСХарактеристическое слово первого типа, по которому можноопределить тип (либо сузить диапазон типов) вопросов.ХС_2Характеристическое слово второго типа, которое позволяетболее точно определить тип вопроса, если найдено слово первогопорядка.ТРСлова, исключенные из рассмотрения.
Выполняют рольтерминаторовприанализевходныхзапросов,служаразделителями значимых частей запроса.ДОП_ТРДополнительные ТР. Необходимы в случаях, когда поконкретным незначимым словам можно определить смыслследующего за ними текстаУКДополнительныеуказатели,которыеиспользуютсяприанализе некоторых типов запросов. Используются как и ДОП_ТР,однако имеют другую семантику при разборе текста.СОЕД_УКСоюзы для запросов с двумя объектами интереса, гдезапрашивается информация о различиях либо сходствах этихобъектов.СТ_СНачальное слово запроса, позволяющее сузить диапазонвозможных типов запросов для некоторых уникальных структурпредложений.Описание алгоритма получения словаря для определенных типов запросов78и типов индикаторов доступно в приложении 4.Для каждого типа вопроса все перечисленные в таблице 2.3 индикаторыХС и ХС_2 являются уникальными, а все остальные могут иметь совпадающиесимволы. Рассмотрим фрагмент множества записей, соответствующих записям(словарным статьям) в словаре (Таблица 2.4).
Полный список записей находитсяв приложении 3.Таблица 2.4. Фрагмент записей словарей, содержащих слова-участники исоответствующие им типы индикаторовТип вопросаТипМножество слов-участниковиндикатораОписаниеХСструктуры"устраивать", "структурировать", "организовывать", "устройство", "структура", "организа-ция","составляющая", "компонент", "элемент"ОписаниеТРструктурыОписание"иметь", "состоять", "из", "что", "у", "обладать","есть", " часть"СТ_С"как", "из"ХС"характеристика", "свойство", "показатель"ТР"иметь", "что", "у", "обладать", "есть"структурыОписаниехарактеристикОписаниехарактеристикПолный набор словарных статей обеспечивает достаточное количестворазнообразных флагов для анализа поступающих на вход запросов.Для корректной работы алгоритма необходимо выполнить первоначальнуюобработку входного текста, очистив его от лишних пробелов, а также знаковпрепинания, которые в предлагаемом подходе не играют никакой роли.
Такженеобходимо произвести разбивку входного текста на отрывки, разделенные79пробелами, которые в дальнейшем будут трактоваться как слова. Послепроведения первичных преобразований необходимо первичное расширениевходного массива слов посредством дополнения каждого слова его базовымиформами (одно слово может иметь несколько базовых форм). Рассмотримструктуру данных, которая называется Расш_Слово и имеет следующие поля:Знач — значение слова, т. е. неизменное слово в том виде в котором оноприсутствует во входном запросе; Баз_Формы — массив базовых форм, еслитаковые удалось обнаружить.Создание экземпляра данной структуры будет описываться в текстеследующим образом: Расш_Слово.создать(Строка, Мас_Строк), где Строка —это строка, которая устанавливается в качестве значения полю Знач, аМас_Строк — это массив строк, который устанавливается в качестве значенияполю Баз_Формы.Рассмотрим алгоритм «Первичная_Обработка_Запроса», необходимый дляприведения поступившего на вход текста в форму, удобную для обработкирассматриваемыми далее алгоритмами.
Для получения базовых форм словаиспользуется внешняя программа И.Сегаловича mystem[88], используемаяследующим образом: на вход подается некоторое слово, на выходе создаетсямассив слов, являющихся базовыми формами входного слова. Обращение кданнойпрограммебудетописыватьсяследующимобразом:Баз_Формы:=mystem(текст), где Баз_Формы — это переменная (массив) дляхранения результатов работы программы mystem, а текст — подаваемое навход слово, базовые формы которого необходимо получить.
Описаниеалгоритмов «Очистить_Запрос» и «Первичная_Обработка_Запроса» доступно вприложении 4.Определим метод «Содержит_Стем», который возвращает истину или ложьв зависимости от того, содержится ли поданное на вход слово в массивебазовыхформсловаБаз_Формы.Используетсяследующимобразом:Слово::Содержит_Стем(набор_символов), где Слово — объект, имеющий тип80Расш_Слово, а набор_символов — некоторый текст, который необходимообнаружить в массиве Баз_Формы.Другим второстепенным активно используемым алгоритмом являетсяалгоритм определения вхождения одной из базовых форм слова в определенныйсловарь. Описание алгоритма доступно в приложении 4.Данныеалгоритмыактивноиспользуютсякакчастьалгоритмовопределения типа запроса и объектов интереса, рассматриваемых далее.2.10 Алгоритмы определения типа аспектно-ориентированноговопроса и его объектов интереса2.10.1Алгоритм определения типа запросаОпределение типа запроса происходит в два этапа: на первом этапепроисходит попытка сузить диапазон рассматриваемых типов запросов, ккоторым может принадлежать входной запрос.
Это происходит при помощипроверки вхождений начальных слов запроса в словарь, содержащий стартовыеслова-участники. На втором этапе происходит анализ входного запроса насоответствие множеству типов, к которым он может относиться. Если послепервогоэтападиапазонрассматриваемыхтиповнебылсужен,торассматриваются все типы запросов.Рассмотрим алгоритм определения принадлежности запроса к тому илииному типу для уменьшения объема массива рассматриваемых типов запросов.Все стартовые слова, находящиеся в словаре, имеют одну базовую форму,поэтому на вход алгоритма будет подаваться слово в базовой форме.Обращение к полям структуры Словарь будет происходить при помощисимвола «::».
Описание алгоритма определения типа запроса по стартовомуслову находится в приложении 4.После того, как получен результат работы алгоритма определения множествадопустимых типов запроса по стартовому слову, можно переходить коднозначному определению типа запроса, поданного на вход.81Если алгоритм определения типов запроса по стартовому слову вернулпустой массив, то на вход алгоритму определения типа запроса подаетсямножество всех типов запросов, если же результат был не пустым, то на входподается этот результат. Из соображений компактности, часть алгоритма,содержащая однообразные проверки по словарям, не приводится, однакополный вариант доступен в приложении 4.Внешняя спецификация алгоритма «Опр_ТЗ»Назначение: Алгоритм последовательно проверяет вхождение каждогослова запроса в словари характеристических слов.
Как только вхождениеобнаружено, то тип запроса определен. Исключение составляют запросы стипом «ОП_ОСОБ», которые можно спутать с запросами типа «ОП_РАБ», ноданная ситуация проверяется в алгоритме. Пример такого запроса: «Какработает генератор в условиях высокого давления?».Вход: Запрос — входной запрос, представленный в виде массиваэлементов типа Расш_Слово; Доп_Типы — массив допустимых типов запроса;Тип_Инд — тип индикатора, по которому происходит анализ принадлежностислова тому или иному словарю.Выход: Тип_Запр — тип запроса.Полное описание алгоритма доступно в приложении 4.2.10.2Алгоритм определения объектов интереса запросаРассмотрим алгоритм определения объектов интереса поискового запроса.Алгоритм декомпозируется на один общий и несколько частных случаевразбора структуры входного запроса, определения его объектов интереса инекоторых вспомогательных объектов.