Диссертация (1137159), страница 28
Текст из файла (страница 28)
. ,b n } A0использованияпроизвольныхсимволовалфавитаобусловлена тем, что в специализированных названиях каких-либо объектовмогут присутствовать сочетания различных символов из разных алфавитов.Помимо этого, набор символов может представлять слово, имеющееопределенный смысл, однако при анализе входных запросов введение такойсущности необязательно, т. к.
анализируется вхождение в запрос определенныхиндикаторов,которыерусского алфавита.представляютсяпоследовательностьюсимволов174Приложение3.Полнаятаблицазаписейсловарей,используемых для анализа структуры входных запросовТип вопросаТипМножество слов-участниковиндикатораОписаниеХСструктуры"устраивать","структурировать","организовывать", "устройство","организация","структура","составляющая", "компонент","элемент"ОписаниеТРструктурыОписание"иметь", "состоять", "из", "что", "у", "обладать","есть", " часть"СТ_С"как", "из"ХС"характеристика", "свойство", "показатель"ТР"иметь", "что", "у", "обладать", "есть"ХС"работать",структурыОписаниехарактеристикОписаниехарактеристикОписаниеработыОписание"действовать","работа", "функционирование", "действие"ТРработыОписание"функционировать","иметь","что","у","обладать","есть","выполнять"СТ_С"как"ХС"функция", "обязанность"ТР"иметь",работыОписаниефункцийОписаниефункций"что","у","выполнять", "наделять""обладать","есть",175ОписаниеСТ_С"что", "за"ХС"назначение", "предназначение", "цель", "миссия",функцийОписаниеназначения"роль","предназначать","создавать","сконструировать", "построить", "разрабатывать","спроектировать"ОписаниеТРназначенияОписание"иметь","что","у","обладать","есть","выполнять", "преследовать", "играть"СТ_С"что", "зачем", "для"ХС"применять",назначенияОписаниеприменения"использовать","употреблять","задействовать","эксплуатировать","утилизировать", "пользоваться", "применяться","использоваться","употребляться","эксплуатироваться","утилизироваться","пользоваться", "применение", "использование","эксплуатация","употребление","утилизация","пользование", "задействование"ОписаниеТР"иметь", "что", "у", "обладать", "есть"ДОП_ТР"главный",примененияОписаниепримененияОписание"образ", "основной", "принцип","какой", "каков", "как", "правило"СТ_С"как", "когда"ХС"группа", "класс", "категория", "тип"примененияОписаниепринадлежности176ОписаниеДОП_ТР"в","главный","образ", "основной", "принцип",принадлежнос"какой",ти"принципиально", "существенно", "косвенно"ОписаниеДОП_УКпринадлежнос"каков","относиться","как","к","кто","что","принадлежать","представлять","входить"тиОписаниеСТ_С"к"ХС"отличаться","различаться","расходиться","несхожий","непохожий","расхожий",принадлежностиОписаниеразличий"несоответствовать","несхожесть","отличие","непохожесть","различие","расхождение","несовпадение", "несоответствие", "разница"ОписаниеСОЕД_УК "и", "с", "от", "на"различийОписаниеТРразличийОписание"иметь","что", "у", "обладать", "есть", "в","между"СТ_С"что"ХС"похожий",различийОписание"подобный","аналогичный",общих"схожий", "общий", "аналогичность", "схожесть",характеристик"сходство", "похожесть"ОписаниеобщиххарактеристикСОЕД_УК "и", "с", "от", "на"177ОписаниеТРобщих"иметь","что", "у", "обладать", "есть", "в","между"характеристикОписаниеСТ_С"что"ХС"особенность",общиххарактеристикОписаниеособенностей"уникальный","специфика","уникальность","особенный","отличительный","специфичный"ОписаниеХС_2"обстоятельство", "условие", "при", "ситуация"ТР"иметь",особенностейОписаниеособенностейОписание"что", "у", "обладать", "есть", "в","каков", "какой", "себе"ДОП_ТРособенностей"работать","вести","функционирование","функционировать","работа","действовать","поведение", "действие"ОписаниеСОЕД_УК "условие", "ситуация", "обстоятельство", "при"особенностейОписаниеСТ_С"как"ХС"возможность","способный","мочь"ТР"иметь", "что", "у", "обладать", "есть", "наделять"СТ_С"что","на"особенностейОписаниевозможностейОписаниевозможностейОписаниевозможностей178ВопросХСдостижения"успех","неудача","достижение","добиваться","достигать"целейВопросТРдостижения"иметь", "что", "у","какой", "каков", "за", "в", "к","быть"целейВопросДОП_УКдостижения"один","два", "три", "четыре", "пять", "шесть","семь", "восемь", "девять", "десять"целейВопросДОП_ТРдостижения"прошедший","прошлый","позапрошлый","текущий"целейВопросСТ_С"что"достиженияцелейВопрособ ХС"изменение", "изменяться"об ХС_2"структурный", "структура", "состав"об ТР"иметь", "что", "как", "у", "за", "к", "быть", "в",изменениисоставамножествВопросизменениисоставамножествВопросизменении"какой",состава"происходить""каков","касаться","затрагивать",множествВопрособ ДОМЕН_С "компания","департамент","отдел",179измененииЛОВО"руководство", "фирма", "предприятие"составамножествВопрособ ДОП_УКизменении"один","два", "три", "четыре", "пять", "шесть","семь", "восемь", "девять", "десять"составамножествВопрособ ДОП_ТРизменении"прошедший","текущий"составамножествВопросизменениисоставамножествоб СТ_С"что","как""прошлый","позапрошлый",180Приложение 4.
Алгоритмы.Алгоритм получения конкретного словаря для определенного типа запроса итипа индикатораВнешняя спецификация алгоритма «Получить_Словарь»Назначение: Алгоритм последовательно проверяет словари и возвращаетодин из них в зависимости от типа запроса и типа индикатора, поданных навход.Вход: Тип_Запроса — тип запроса; Тип_Индикатора — тип индикатора.Соответствует значениям из левой колонки таблицы 2.2; Словари — массивсловарных статей типа Словарь.Выход: Словарь — конкретная запись в словаре.
Имеет тип Словарь.Алгоритм «Получить_Словарь»начСловарь := nili := 0пока Словари(i) <> nil циклесли Словари(i)::Тип_Запр == Тип_Запроса и Словари(i)::Тип_Инд ==Тип_ИндикатораСловарь := Словари(i)выход циклкесли; i := i+1кциклконАлгоритм поиска вхождения слова в словарьВнешняя спецификация алгоритма «Вхождение_слова_в_словарь»Назначение: Алгоритм предназначен для проверки вхождений базовыхформ слова в определенный словарь, поданный на вход.Вход: Баз_формы — массив базовых форм рассматриваемого слова;Словарь—массивбазовыхформопределенному типу запроса и индикатора.слов-участников,относящихсяк181Выход: Результат — истина, если одна из базовых форм словаприсутствует в поданном на вход словаре, ложь в противном случае.Алгоритм «Вхождение_слова_в_словарь»начРезультат := ложь; i := 0пока Баз_формы(i) <> nil циклесли Результат == ложьj := 0пока Словарь(j) <> nil циклесли Словарь(j) == Баз_формы(i)Результат := истинавыход циклкесли; j := j+1кциклкесли; i := i+1кциклконАлгоритм определения типа запросаВнешняя спецификация алгоритма «Определение_Типа_Запроса»Назначение:Алгоритмпоследовательнопроверяетвхождениевсловарихарактеризующих слов каждого слова запроса.
Как только вхождениеобнаружено, то тип запроса определен. Исключение составляют запросы стипом «ОП_ОСОБ», которые можно спутать с запросами типа «ОП_РАБ», ноданная ситуация проверяется в алгоритме. Пример такого запроса: «Какработает генератор в условиях высокого давления?».Вход:Запрос — входной запрос, представленный в виде массива элементов типаРасш_Слово.Допуст_Типы — массив допустимых типов запроса.182Тип_Индтип—индикатора,покоторомупринадлежности слова тому или иному словарю.Выход:Тип_Запр — тип запроса.Алгоритм «Определение_Типа_Запроса»начТип_Запр := nilпока Запрос(i) <> nil циклj := 0пока Допуст_Типы(j) <> nil циклесли Тип_Инд == ХСесли Допуст_Типы(j) == ОП_СТРесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_СТР,ХС))Тип_Запр := ОП_СТРвыход циклкесликеслиесли Допуст_Типы(j) == ОП_РАБесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_РАБ,ХС))Тип_Запр := Определение_Типа_Запроса(Запрос,{ОП_ОСОБ},происходитанализ183ХС_2)если Тип_Запр <> nilвыход циклкеслиТип_Запр := ОП_РАБвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ХАРесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ХАР,ХС))Тип_Запр := ОП_ХАРвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ФУНесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ФУН,ХС))Тип_Запр := ОП_ФУНвыход циклкесликеслиесли Допуст_Типы(j) == ОП_НАЗесли Вхождение_слова_в_словарь(184Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_НАЗ,ХС))Тип_Запр := ОП_НАЗвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ПРИМесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ПРИМ,ХС))Тип_Запр := ОП_ПРИМвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ПРИНесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ПРИН,ХС))Тип_Запр := ОП_ПРИНвыход циклкесликеслиесли Допуст_Типы(j) == ОП_РАЗесли Вхождение_слова_в_словарь(185Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_РАЗ,ХС))Тип_Запр := ОП_РАЗвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ОБЩесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ОБЩ,ХС))Тип_Запр := ОП_ОБЩвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ОСОБесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ОСОБ,ХС))Тип_Запр := ОП_ОСОБвыход циклкесликеслиесли Допуст_Типы(j) == ОП_ВОЗМесли Вхождение_слова_в_словарь(186Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ВОЗМ,ХС))Тип_Запр := ОП_ВОЗМвыход циклкесликесликеслиесли Тип_Инд == ХС_2если Допуст_Типы(j) == ОП_ОСОБесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы,Словарь::Получить_Словарь(ОП_ОСОБ,ХС_2))Тип_Запр := ОП_ОСОБвыход циклкесликесликеслиj := j+1кциклесли Тип_Запр <> nilвыход циклкеслиi := i+1кциклесли (Запрос(0)::Знач == «из» И Запрос(1)::Знач == «чего») ИЛИ187(Запрос(0)::Знач == «из» И Запрос(1)::Знач == «каких»)Тип_Запр := ОП_СТРкеслиесли Запрос(0)::Знач == «за» И Запрос(1)::Знач == «что»Тип_Запр := ОП_ФУНкеслиесли Запрос(0)::Знач == «зачем» ИЛИ Запрос(0)::Знач == «для»Тип_Запр := ОП_НАЗкеслиесли Запрос(0)::Знач == «к»Тип_Запр := ОП_ПРИНкеслиесли Запрос(0)::Знач == «как» И Запрос(1)::Знач == «ведет»Тип_Запр := ОП_ОСОБкесликонАлгоритм обработки правой части запроса как объекта интересаВнешняя спецификация алгоритма «Поиск_ОИ_Справа»Назначение:Алгоритм предназначен для обработки части запроса, идущей послетипизирующего слова, как объекта интереса.