Диссертация (1137159), страница 17
Текст из файла (страница 17)
Анализ структуры запросов достижения целейРассмотрим более подробно структуру и конкретные примеры входныхзапросов, представленные в таблице 3.3. При рассмотрении будут использованышаблоны стем-формы, описанные в параграфе 2.6.Таблица 3.3. Шаблоны стем-форм и примеры входов для вопросовдостижения целейШаблон стем-формыПример{какой|каков} + … + ОИ1(сущ.) + Какие успехи были у компании Х в{иметь|{быть}+у|добиться|достигнуть} прошлом году?+ОИ2+{[{[за|в|к]}+[прошедший|прошл Достижения X позапрошлый годый|позапрошлый|текущий]+год}каковыосновныенеудачиХв95прошедшем году?ОИ1 = успех, неудача, достижениеКакихуспеховдобилосьXзатекущий год?{какой|каков} + … + ОИ1(сущ.) + Какие неудачи были у компании Х в{иметь|{быть}+у|добиться|достигнуть} 2010?+ОИ2+{[{[за|в|к]}+(цифра)+{год}]}Достижения X 11 годглавные неудачи Х в 2009 году?ОИ1 = успех, неудача, достижениеКаких успехов добилось X к 2008?{какой|каков} + … + ОИ1(сущ.) + Какие неудачи имела компания Х год{иметь|{быть}+у|добиться|достигнуть} назад?+ОИ2+{[{(цифра)}+год+назад]}успехи X 11 лет назадглавные успехи Х 5 лет назадОИ1 = успех, неудача, достижениеЧто+[добился|достиг]+ОИ2+{[{[за|в|к] ЧегодобиласькомпанияХв}+[прошедший|прошлый|позапрошлый прошлом году?Чего достиг холдинг X текущий год|текущий]+год}Что+[добился|достиг]+ОИ2+{[{[за|в|к] Чего достигло Х в 2009 году?Чего добились X к 2008?}+(цифра)+{год}]}Что+[добился|достиг]+ОИ2+{[{(цифра Чего добилась компания Х год назад?Чего достиг X 9 лет назад)}+год+назад]}При указании временного периода путем фраз вида «...
лет назад» будутиспользоваться числительные только до 10, исходя из предположения, что болеедлительную отсылку назад во времени более удобно осуществить при помощиввода года (например, 1998 год).3.4. Разработкаалгоритмаопределениятипавопросовдостижения целей и их объектов интересаПри анализе и разборе структуры запросов достижения целей используетсяпринцип, основанный на использовании словарей специфических слов-96индикаторов, описанный в параграфе 2.9.
Для определения типа запросапроисходит анализ каждого слова запроса на соответствие записям в словаре.Запрос представляется в виде массива элементов, имеющих тип Расш_Слово.Определение типа запроса происходит при помощи проверки вхождениябазовой формы одного из слов запроса в словарь с элементами типа ХС.Полный список записей находится в приложении 3. Рассмотрим записи словаря,соответствующие запросам достижения целей (Таблица 3.4):Таблица3.4.Записисловарей,содержащиеслова-участникиисоответствующие им типы индикаторов для запросов достижения целейТип индикатора Множество слов-участниковХС"успех","неудача","достижение", "добиваться", "достигать"ТР"иметь", "что", "у","какой", "каков", "за", "в", "к", "быть"ДОП_УК"один","два", "три", "четыре", "пять", "шесть", "семь","восемь", "девять", "десять"ДОП_ТР"прошедший", "прошлый", "позапрошлый", "текущий"СТ_С"что"Из соображений целостности, определение типа данного запроса можетбыть интегрировано в алгоритм «Опр_ТЗ», описанный в параграфе 2.8.1.
Дляэтого необходимо дополнить список типов запросов, поступающих на входалгоритма, типом В_ДЦ и добавить дополнительную проверку в главный циклалгоритма. Данный фрагмент будет выглядеть следующим образом:...если Допуст_Типы(j) == В_ДЦесли Вхождение_слова_в_словарь(Запрос(i)::Баз_Формы, Словарь::Получить_Словарь(В_ДЦ, ХС))Тип_Запр := В_ДЦвыход цикл97кесликесли...Таким образом, при наличии словаря, содержащего слова-индикаторы длязапросов достижения целей, происходит дополнение алгоритма «Опр_ТЗ»возможностью определять тип запроса достижения целей.Спецификой запросов достижения целей является присутствие указания навременной период, который интересует пользователя. Т.
е. пользователяинтересуют успехи, либо неудачи компании за конкретный период. Для этихцелей был разработан подалгоритм «Определение_Даты», описание которогодоступно в приложении 4.Рассмотрим алгоритм получения объектов интереса запроса.Внешняяспецификацияалгоритма«Разбор_Запроса_Достижения_Целей»Назначение: Алгоритм предназначен для разбора запроса достижения целей.В алгоритме используется обращение к подалгоритму «Определение_Даты»,описанному выше.
Передача входных параметров в данный подалгоритм будетпроизводиться в скобках после названия алгоритма в том же порядке, в которомони описаны в его спецификации.Вход: Запрос — массив элементов типа Расш_Слово, представляющийвходной запрос; Словарь_Доп_Слов — словарь допустимых слов-индикаторов;Словарь_Запр_Слов — словарь незначимых слов-индикаторов, т. е. продукцийпустых цепочек.Выход: Отличит_Слово — слово-индикатор, по которому был определентип запроса, имеет тип Расш_Слово; ОИ — массив элементов типаРасш_Слово, представляющий объект интереса. Объект интереса можетсостоять из нескольких слов, поэтому все они должны быть возвращены какзначимые; Дата — массив элементов типа Расш_Слово, содержащийинформацию о дате, относительно которой запрашивается информация поуспехам либо неудачам.98Алгоритм «Разбор_Запроса_Достижения_Целей»начi := f := 0пока Запрос(i) <> nil циклеслиВхождение_Слова_В_Словарь(Запрос(i)::Баз_Формы,Словарь_Доп_Слов)Отличит_Слово := Запрос(i)j := i+1пока Запрос(j) <> nil циклесли ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы, Словарь_Запр_Слов)И ! Вхождение_Слова_В_Словарь(Запрос(j)::Баз_Формы, Словарь_Доп_Слов)Дата := Определение_Даты(Запрос, j, В_ДЦ)если Дата <> nil выходОИ(f) := Запрос(j); f := f+1кесли; j := j+1кциклконДанный алгоритм позволяет определять объекты интереса запросовдостижения целей, а также даты, относительно которой запрашиваетсяинформация.3.5.
Методпреобразованиявопросовдостиженияцелейкрасширенному видуПреобразованиепроисходитприпомощиправилтрансформации,уникальных для каждого из фактов. В правиле трансформации указываютсяпорядок слов в результирующем словосочетании, а также их формы. Наосновании хранимых в базе фактов и соответствующих правил трансформациигенерируются словосочетания, которые позволят системе поиска по ключевым99словам найти документы, содержащие в себе упоминания данных фактов.После того, как множество словосочетаний-индикаторов сформировано, онопередается на вход синтаксической поисковой системе, которая осуществитотдельный поиск по каждому из них. Множество результирующих документов,возвращенных поисковой системой (ПС), будет проанализировано с точкизрения количества вхождений различных словосочетаний-индикаторов, т.е.указателей на присутствие упоминания того или иного факта в документе.Релевантность документов будет определяться, во-первых, по количествувхожденийразличныхопределяемомуфактов,алгоритмомаво-вторых,используемойпоПС.рейтингудокумента,Отсортированныепорелевантности первоначальному запросу документы затем будут переданыпользователю.Метод порождения результирующих индикаторов.1.По входному запросу находится информационная единица Studied-object, обозначающая объект интереса запроса.2.
По шаблону вида (3.2) строится цепочка X Y Z.3. В цепочке X Y Z символ #A# заменяется на произвольную лексическую единицу, которой соответствует информационная единица Studied-object.4. Пусть sem-pattern – цепочка вида <event-concept * (Агент, d1)(Роль2, d2), estimation>. Тогда в цепочке, полученной на Шаге 3, символ #Pred# заменяется на произвольную лексическую единицу pred-word-form, которой соответствует информационная единица event-concept, причем словоформа predword-form должна обладать значениями морфологических признаков, задаваемыми цепочкой prop-chain.5. В цепочке, полученной на Шаге 4, символ #B# заменяется на произвольнуюлексическую единицу, соответствующую той из семантических единиц d1и d2, которая отлична от символа #Объект-интереса в исходном шаблоне.Пример 1.
Пусть Studied-object = firm-Oracle, sem-pattern – цепочка<поглощение-орг * (Агент, #Объект-интереса)(Роль2, нек фирма1), 1>.Тогда по шаблону семантической трансформации вида (sem-pattern, #A#,100#Pred#, #B#, глаг * ПрошВр) в соответствии с данным алгоритмом можетбыть построен результирующий индикатор Oracle поглотил компания.Пример 2. Пусть запрос W="Каковы успехи компании Oracle?".
Послеопределения типа запроса и объекта интереса как пары (успех, Oracle)можно переходить к построению расширенного множества запросов.На основе предложенного метода был разработан алгоритм построениямножества преобразованных запросов ExtSet для запросов достижения целей.Рассмотрим внешнюю спецификацию алгоритма «Расширение_В_ДЦ», полноеописание которого доступно в Приложении 4.Внешняя спецификация алгоритма «Расширение_В_ДЦ»АлгоритмНазначение:предназначендляпостроениямножествасемантически преобразованных запросов ExtSet для запросов о достижениицелей.
Алгоритм использует подалгоритм «Получить_Факты_ДЦ», которыйобращается к базе знаний и производит выборку фактов для поданных на входобъекта интереса и характеристического слова запроса. В алгоритмеиспользованыстандартныеоперациисостроками,реализованныевпрактически любом языке программирования высокого уровня.Вход: Отличит_Слово - слово-индикатор, по которому был определен типзапроса; ОИ — массив элементов типа Расш_Слово, представляющий объектинтереса; Доп_ОИ — дополнительный значимый объект интереса, влияющийна смысл запроса.Выход: ExtSet — множество семантически преобразованных запросов.Внутренние переменные: Факты_ДЦ – массив для хранения извлеченныхиз базы фактов, представляющих собой структуру данных, содержащуютекстовое поле с записью факта, поле, содержащее массив всех правилтрансформации, записанных для данного факта, и поле, содержащее зависимоеот факта слово (например, в словосочетании «поглощение компании» фактомявляется слово «поглощение», а дополнением слово «компании»).