Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Зо Лин Кхаинг

  • Зо Лин Кхаинг
  • кандидат науккандидат наук
  • 2016, ФГБОУ ВО «Национальный исследовательский университет «МЭИ»
  • Специальность ВАК РФ05.13.11
  • Количество страниц 183
Зо Лин Кхаинг. Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах: дис. кандидат наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. ФГБОУ ВО «Национальный исследовательский университет «МЭИ». 2016. 183 с.

Оглавление диссертации кандидат наук Зо Лин Кхаинг

ВВЕДЕНИЕ

ГЛАВА 1 ИНФОРМАЦИОННО-ПОИСКОВЫЕ СИСТЕМЫ

1.1. Процесс информационного поиска

1.2. Информационно-поисковый язык

1.3. Индексирование

1.4. Виды информационного поиска

1.5. ИПС Интернета

1.5.1. WWW-технология

1.5.2. Проблемы в области ИП и создания ИПС Интернета

1.5.3. Персонализация поиска в ИПС

1.5.4. Современные поисковые системы Интернета

1.6. Выводы по главе

ГЛАВА 2 ИНТЕЛЛЕКТУАЛИЗАЦИЯ И ПЕРСОНАЛИЗАЦИЯ ПОИСКА В ИПС

2.1. ИПС как мультиагентная система

2.2. Основные понятия МАС в распределенном искусственном интеллекте

2.3. Проектирование поисковой МАС

2.4. Структура и схема функционирования поисковой МАС

2.4.1. Интерфейсный агент

2.4.2. Поисковый агент

2.4.3. Агент проверки существования страниц

2.4.4. Агент ранжирования страниц

2.5. Интеллектуализация и персонализация поиска в ИПС на основе прецедентного подхода

2.6. Способы представления и извлечения прецедентов

2.7. Извлечение прецедентов методом ближайшего соседа (ближайших соседей)

2.8. Повторное использование прецедентов

2.9. Адаптация и применение прецедентов

2.10. Сохранение прецедентов (обучение)

2.11. Выводы по главе

ГЛАВА 3 АРХИТЕКТУРА И ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ

ИПС НА ОСНОВЕ ПРЕЦЕДЕНТОВ

3.1. Пользовательский интерфейс

3.2. База Данных (индекс)

3.2.1. Структура базы данных (индекса) ИПС

3.2.2. Индексирование документов в ИПС

3.3. Программа поиска

3.4. Блока управления

3.5. CBR-агенты

3.6. Алгоритмы, реализующие различные схемы взаимодействия агентов в ИПС на основе прецедентов

3.6.1. Схемы взаимодействия мобильных агентов в рамках предложенной мультиагентной архитектуры ИПС

3.6.2. Алгоритм, описывающий действия агента управления при выполнении поиска результатов на запрос пользователя

3.6.3. Алгоритм поиска по прецедентам CBR-агентами

3.6.4. Алгоритм формирования результатов поиска на основе прецедентов

3.7. Выводы по главе

ГЛАВА 4 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРОТОТИПА ИПС НА ОСНОВЕ ПРЕЦЕДЕНТОВ «STRAY SEARCH»

4.1. Использованные технологии

4.1.1. Asp.net MVC

4.1.2. ADO.NET Entity Framework

4.1.3. Windows Communication Foundation (WCF)

4.2. Структура ИПС «STRAY SEARCH»

4.2.1. SearchClient

4.2.2. ManagerAgent

4.2.3. LocalAgent

4.2.4. IndexDataAgent

4.2.5. RobotAgent

4.3. Реализация Web-сервисов

4.3.1. Создание контрактов

4.3.2. Выбор подходящей привязки

4.4. Реализация Web-приложения «STRAY SEARCH»

4.4.1. Создание моделей (Models)

4.4.2. Создание котроллеров (Controllers)

4.4.3. Создание Представлений (Views)

4.5. Применение и анализ эффективности разработанного прототипа ИПС на

основе прецедентов

4.5.1. Пример выполнения пользовательского запроса к ИПС «STRAY SEARCH»

4.5.2. Анализ эффективности разработанного прототипа ИПС на основе прецедентов

4.5.2.1. Оценка интегрального показателя эффективности информационного поиска ИПС

4.5.2.2. Оценка эффективности работы ИПС «STRAY SEARCH» с использованием метрик качества ранжирования

4.6. Выводы по главе

ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММНОГО КОДА

ПРИЛОЖЕНИЕ 2. МАТЕРИАЛЫ ДЛЯ ОЦЕНКИ ЭФФЕКТИВНОСТИ

РАБОТЫ ПРОТОТИПА ИПС НА ОСНОВЕ ПРЕЦЕДЕНТОВ

ПРИЛОЖЕНИЕ 3. АКТ О ВНЕДРЕНИИ И СВИДЕТЕЛЬСТВО О РЕГИСТРАЦИИ ПРОГРАММЫ ДЛЯ ЭВМ

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах»

ВВЕДЕНИЕ

Данная работа посвящена исследованию и разработке методов и программных средств поиска информации для информационно-поисковых систем (ИПС) [1] на основе методов искусственного интеллекта (ИИ) [2].

Полученные результаты были использованы для разработки мультиагентной архитектуры ИПС и выполнения программной реализации прототипа ИПС с использованием методов правдоподобных рассуждений на основе прецедентов [3, 4].

Разработанный прототип ИПС был использован в учебно-научном процессе кафедры ПМ НИУ «МЭИ».

Актуальность темы исследования. На данный момент ИПС стали основным поисковым инструментом, который используется при поиске во всемирной сети Интернет. Однако проблема повышения эффективности поиска в современных ИПС (поисковых машинах Интернета) стоит очень серьезно, так как по запросу пользователя зачастую выдается большое количество нерелевантных документов. Таким образом, понятие релевантности является определяющим в ИПС, когда речь идет о качестве поиска информации.

В настоящее время наблюдается устойчивая тенденция к интеллектуализации ИПС и персонализации поиска [5]. Именно таким путем идут сегодня крупные компании на рынке поисковых систем Интернет (Google, Yandex и др.), активно внедряющие различные сервисы и инструменты персонализации и интеллектуализации поиска. Указанные механизмы поиска направлены на устранение основных недостатков традиционного контекстного поиска по ключевым словам.

На пути создания персонализированных интеллектуальных ИПС (ИИПС) стоит много нерешенных проблем, но разработка подобных систем весьма

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

Для обеспечения персонализации и интеллектуализации поиска в работе предлагается использовать методы ИИ и, в частности, мультиагентный подход [6] и методы правдоподобных рассуждений на основе прецедентов (CBR - Case-Based Reasoning) [4].

Выполненные исследования опираются на результаты работ в области конструирования ИПС и моделирования правдоподобных рассуждений в области ИИ Д.А. Поспелова, В.К. Финна, В.Н. Вагина, А.П. Еремеева, О.П. Кузнецова, Д.В. Ландэ, Г.С. Осипова, А.Б. Петровского, В.Б. Тарасова, И.Б. Фоминых, В.Ф. Хорошевского, и др., а также зарубежных ученых Р. Шенка (R. Schank), Р. Абельсона (R. Abelson), Д. Колоднера (J. Kolodner), К. Маннинга (C. Manning), П. Рагхавана (P. Raghavan), Х. Шютце (H. Schütz) и др.

Объектом исследования являются методы поиска информации в ИПС на основе прецедентов. Предметом исследования являются методы и программные средства интеллектуализации и персонализации поиска в ИПС на основе прецедентов.

Целью работы является исследование и разработка методов и программных средств поиска информации для ИПС на основе прецедентного подхода.

Для достижения указанной цели необходимо решить следующие задачи:

- изучение основных характеристик и особенностей ИПС, а также различных методов поиска в ИПС;

- анализ проблем построения ИПС Интернета и возможных путей их решения;

- разработка методов интеллектуализации и персонализации ИПС на основе прецедентного подхода;

- разработка мультиагентной архитектуры интеллектуальной ИПС на основе прецедентов;

- программная реализация прототипа ИПС на основе прецедентов.

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

Научная новизна исследования состоит в следующем:

1) Предложен метод интеллектуализации и персонализации поиска на основе прецедентов, позволяющий объединить в себе различные подходы к решению данной задачи (как явные, так и неявные методы персонализации поиска) и снизить нагрузку на индекс (БД, сервер) поискового инструмента, а также упростить решение проблемы, связанной с обеспечением конфиденциальности данных;

2) Предложена мультиагентная архитектура ИПС на основе прецедентов, расширяющая стандартную архитектуру ИПС средствами поиска и персонализации на основе прецедентов (CBR-агентами с распределенными библиотеками прецедентов (БП) и инструментами их взаимодействия), что обеспечивает выполнение альтернативного варианта поиска по прецедентам для снижения нагрузки на индекс ИПС и позволяет учесть персональную информацию пользователей для повышения точности ответа на их запросы;

3) Разработаны модификации алгоритмов поиска решения на основе прецедентов, учитывающие специфику ИПС и реализующие различные схемы взаимодействия мобильных агентов при поиске в мультиагентной

среде, включая механизмы формирования и оценки результатов поиска в ИПС на основе прецедентов, что позволяет снизить нагрузку на индекс ИПС и информационный шум при ответе на запросы пользователей.

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

Практическая значимость работы подтверждается использованием разработанных в диссертации на языке C# в среде разработки Microsoft Visual Studio 2010 программных модулей, в том числе «Модуль персонализации поиска на основе прецедентов для информационно-поисковых систем», зарегистрированный в государственном реестре программ для ЭВМ (свидетельство о государственной регистрации программы для ЭВМ № 2016610379 от 11 января 2016 г.), в НИР кафедры ПМ, поддержанных грантами РФФИ (№ 12-07-00508, № 14-01-00427), в работах по государственному заданию Министерства образования и науки Российской Федерации № 2.737.2014/К «Методы и инструментальные средства моделирования рассуждений в интеллектуальных системах поддержки принятия решений (СППР)», и в учебно-научном процессе кафедры ПМ НИУ «МЭИ», о чем имеется акт о внедрении.

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

Апробация работы. Основные положения и результаты диссертации докладывались и обсуждались на 17-ой, 18-ой, 19-ой международных научно-технических конференциях аспирантов и студентов «Радиоэлектроника, электротехника и энергетика» в МЭИ (г. Москва, 2011 - 2013 г.г.), на

тринадцатой национальной конференции по искусственному интеллекту с международным участием КИИ-2012 (г. Белгород, 2012 г.).

Публикации. Основные результаты, полученные при выполнении диссертационной работы, опубликованы в 6 печатных работах и из них две в журнале, включенном в перечень ВАК ведущих рецензируемых научных журналов и изданий.

Структура и объем работы. Диссертация состоит из введения, 4 глав, заключения, списка использованной литературы (68 наименования) и 3 приложений. Диссертация содержит 152 страницы машинописного текста (без приложений), 34 рисунка и 3 таблицы.

СОДЕРЖАНИЕ РАБОТЫ

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

В первой главе рассмотрены основные понятия информационного поиска (ИП), характеристики ИПС и основные этапы процесса поиска, а также различные виды ИП. Проанализированы проблемы построения распределенных ИПС Интернета и указаны перспективы интеллектуализации и персонализации поиска. В конце главы перечислены примеры различных современных поисковых систем Интернет и описаны их особенности, а также имеющиеся средства интеллектуализации и персонализации поиска.

Во второй главе описана возможность реализации механизмов интеллектуализации и персонализации поиска в ИПС с использованием мультиагентного подхода и методов на основе прецедентов (CBR-методов). Описаны основные понятия мультиагентного подхода и мультиагентных систем (МАС), рассмотрены архитектуры МАС и дана их краткая характеристика. Проанализированы принципы организации и особенности поисковых мультиагентных системах. Во второй части главы приведены основные понятия и определения, связанные с прецедентным подходом, и указана специфика применения CBR-методов для реализации в ИПС возможности их интеллектуализации и персонализации.

В третей главе приведена разработанная архитектура и функциональные возможности ИПС на основе прецедентов. А также разработана структура базы данных (индекса) ИПС и БП. И предложены различные схемы взаимодействия мобильных агентов при поиске в ИПС на основе прецедентов. В конце главы

приведены разработанные алгоритмы, реализующие различные схемы взаимодействия агентов в ИПС на основе прецедентов.

В четвёртой главе описана программная реализация прототипа ИПС на базе разработанной мультиагентной архитектуры ИПС на основе прецедентов, которая состоит из компонентов (мобильных агентов), взаимодействующих в распределенной среде (в локальной и\или глобальной сети Интернет). Прототип ИПС «STRAY SEARCH» обеспечивает удобный доступ через web-интерфейс к документам, содержащимся в индексе ИПС, стандартные механизмы индексации документов и поиска (поиск по ключевым словам, полнотекстовый поиск, поиск по МЕТА-тегам), а также механизмы поиск и персонализации на основе прецедентов. Программная реализация прототипа ИПС на основе прецедентов «STRAY SEARCH» выполнена с использованием технологии .NET для построения распределенных информационных систем ASP.NET, ADO.NET Entity Framework и Windows Communication Foundation (WCF). В конце главы выполнен анализ эффективности работы прототипа ИПС на основе прецедентов «STRAY SEARCH» для различных схем взаимодействия агентов.

ГЛАВА 1

ИНФОРМАЦИОННО-ПОИСКОВЫЕ СИСТЕМЫ

Информационно-поисковая система (ИПС) - это система, обеспечивающая поиск и отбор необходимых данных в специальной базе с описаниями источников информации (индексе) на основе информационно-поискового языка и соответствующих правил поиска [1, 2]. Главной задачей любой ИПС является поиск информации в соответствии с информационными потребностями пользователя, формируемыми в виде запроса. Очень важно в результате проведенного поиска ничего не потерять, то есть найти в индексе все документы, относящиеся к запросу (полнота поиска), и не выдать ничего лишнего (точность поиска).

1.1. Процесс информационного поиска

Информационный поиск (ИП) - процесс отыскания в некотором множестве текстов (документов) таких, которые посвящены указанной в запросе теме (предмету) или содержат нужные пользователю факты, сведения (рис. 1) [2]. ИП может осуществляется вручную либо посредством ИПС с использованием средств автоматизации. Непременным участником ИП является человек. В зависимости от характера информации, которая содержится в выдаваемых ИПС документах, ИП может быть документальным, в том числе библиографическим и фактографическим. ИП нужно отличать от логической переработки информации, без которой невозможна непосредственная выдача человеку ответов на задаваемые им вопросы.

Коррекция запроса

Формирование запроса

Поиск

Окончание поиска

Просмотр результатов

поиска

Рис. 1. Процесс информационного поиска

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

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

данной ИПС). Необходимые значения этих показателей зависят от специфики информационных потребностей. Например, при поиске патентных описаний с целью проведения экспертизы патентной заявки на новизну необходима 100% полнота результата ИП, а при поиске, ориентированном на обычного исследователя, приемлемой считается точность (релевантность) результата около 80%, а полнота - около 50%.

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

ИПС, решая задачи сбора, хранения, обработки и выдачи информации, выполняют следующие операции [2]:

■ поиск документов;

■ анализ содержимого документов;

■ построение поисковых образов документов (извлечение из документов информации, используемой системой как знания о документе);

■ хранение поисковых образов документов (сведений о документах);

■ анализ запросов пользователей (потребителей информации);

■ поиск релевантных (соответствующих) запросу документов;

■ выдача ссылок на документы пользователям.

1.2. Информационно-поисковый язык

Язык запросов - это искусственный язык, на котором записываются запросы к базам данных (БД) и другим информационным системам, а также к ИПС [6].

Язык, на котором формулируются запросы к поисковым системам называется языком поисковых запросов или информационно-поисковым языком.

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

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

Информационно-поисковый язык (ИПЯ) - знаковая система, предназначенная для описания (путём индексирования) основного смыслового содержания текстов (документов) или их частей, а также для выражения смыслового содержания информационных запросов с целью реализации ИП [7].

Любой абстрактный ИПЯ состоит из алфавита (списка элементарных символов), правил образования и правил интерпретации. Правила образования устанавливают какие комбинации элементарных символов допускаются при построении слов и выражений, а правила интерпретации - как надлежит понимать эти слова и выражения.

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

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

применялись классификации библиотечно-библиографические и языки дескрипторного типа [8].

1.3. Индексирование

Индексирование - процесс выражения главного предмета или темы текста какого-либо документа в терминах ИПЯ. Применяется для облегчения поиска необходимого документа среди множества других. Проводится индексирование как целого документа, так и его частей [6, 7]. Для индексирования нередко используются заглавия текстов. При индексации опускаются сопутствующие предметы или темы. Это служит причиной того, что при поиске не найденными остаются документы, для которых предмет или тема информационного запроса является не главной, а сопутствующей.

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

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

Построенный таким способом сложный класс обозначается перечнем ключевых слов или дескрипторов, и этот перечень служит поисковым образом данного документа или выражением на ИПЯ смыслового содержания запроса. Таким образом, при координатном индексировании смысловое содержание текста выражается как бы указанием его координат в некотором «-мерном смысловом пространстве.

Разновидностью координатного индексировании является циклическое индексирование, которое основано на использовании ключевых слов заглавия текста и заключается в том, что все ключевые слова заглавия вместе с контекстом поочерёдно выводятся в поисковую колонку. В этой колонке ключевые слова даются в алфавитном порядке. На основе координатного индексирования созданы и более сложные ИПЯ. Основное преимущество координатного индексирования перед классификационным заключается в том, что координатное индексирование не создаёт никаких затруднений при поиске документов по любому, заранее не предусмотренному сочетанию признаков. Особым типом индексирования следует считать раскрытие смыслового содержания текста документа через приводимую вместе с ним библиографию - имена авторов и библиографические описания их работ, на которые ссылается автор данного текста. Такое индексирование служит основой для составления указателей цитированной литературы - весьма эффективный инструмент не только для поиска документов, но и для решения других задач (науковедческих, прогностических и т.д.) [6].

1.4. Виды информационного поиска

Поиск информации представляет собой процесс выявления в некотором множестве документов таких, которые посвящены указанной теме, содержат необходимые факты, сведения, данные. Процесс поиска включает

последовательность операций, направленных на сбор, обработку и предоставление необходимой информации заинтересованным лицам.

Поиск информации состоит из четырех этапов [2, 6]:

■ определение информационной потребности и формулировка информационного запроса;

■ определение совокупности возможных держателей информационных массивов;

■ извлечение информации из выявленных информационных массивов;

■ ознакомление с полученной информацией и оценка результатов поиска.

Это большая междисциплинарная область науки, стоящая на пересечении

когнитивной психологии, информатики, информационного дизайна, лингвистики, семиотики и библиотечного дела. Информационный поиск рассматривает поиск информации в документах, поиск самих документов, извлечение метаданных из документов, поиск текста, изображений, видео и звука в локальных реляционных БД, в гипертекстовых БД таких, как Интернет и локальные Интранет-системы. Существуют различные виды поиска [9-12]: 1) Документальный поиск. Документальные ИПС хранят и выдают сведения о документах, основное содержимое которых представлено в виде связанного текста на ЕЯ. Признаки документа, отражающие его содержание в ИПС, называют поисковым образом, а признаки запроса к ИПС - поисковым предписанием. Процедура перевода документа и запроса в форму представления, принятую в ИПС, называется индексированием. При сопоставлении поискового образа и поискового предписания используется тот или иной критерий смыслового соответствия (релевантности). Первые ИПС были библиотечными и спользовались для поиска книг в библиотеках. Позже их стали применять и для поиска документов в больших хранилищах и стали называть документальными. Документальный

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

2) Фактографический поиск. В фактографических ИПС хранятся не документы, а собственно сведения (факты) об объектах предметной области. Подобные ИПС реализуются, в частности, на основе реляционных БД. С точки зрения обеспечения релевантности результатов поиска (выборки данных) запросу фактографический поиск в отличие от документального является точным и полным.

3) Полнотекстовый поиск - поиск по всему содержимому документа и он является разновидностью документального поиска. Как правило, полнотекстовый поиск для ускорения поиска использует предварительно построенные индексы. Наиболее распространенной технологией для индексов полнотекстового поиска являются инвертированные индексы [2, 10].

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

5) Адресный поиск. Процесс поиска документов по чисто формальным признакам, указанным в запросе. Для осуществления нужны следующие условия: наличие у документа точного адреса; обеспечение строгого порядка расположения документов в запоминающем устройстве или в хранилище системы. Адресами документов могут выступать адреса веб-

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

6) Семантический поиск. Процесс поиска документов по их содержанию. Условия:

• Перевод содержания документов и запросов с естественного языка (ЕЯ) на ИПЯ и составление поисковых образов документа и запроса.

• Составление поискового описания, в котором указываются дополнительные условия поиска.

Принципиальная разница между адресным и семантическим поисками состоит в том, что при адресном поиске документ рассматривается как объект с точки зрения формы, а при семантическом поиске - с точки зрения содержания. При семантическом поиске определяется множество документов без указания адресов. В этом принципиальное отличие каталогов и картотек. Библиотека - собрание библиографических записей без указания адресов [2].

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Список литературы диссертационного исследования кандидат наук Зо Лин Кхаинг, 2016 год

ЛИТЕРАТУРА

1. Ландэ Д.В. Поиск знаний в Internet / Д.В. Ландэ - СПБ: Диалектика-Вильямс, - 2005, - 272 с.

2. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. Пособие // - М.: Изд-во МГТУ им. Н.Э. Баумана, - 2005, -304 с.

3. Варшавский П.Р., Еремеев А.П. Методы правдоподобных рассуждений на основе аналогий и прецедентов для интеллектуальных систем поддержки принятия решений// Новости искусственного интеллекта. - 2006. - №3. - С. 39-62.

4. Зо Лин Кхаинг. Исследование и разработка методов интеллектуального поиска в информационно поисковых системах // Радиоэлектроника, электротехника и энергетика: Восемнадцатая Международная научно-техническая конференция студентов и аспирантов: Тезисы докладов в 4 томах, Т. 2. - М.: Издательский дом МЭИ, 2012. C. 40-41.

5. Харитоненков А.В. Семантические модели персонализации поиска в документальных массивах сети Интернет // Журнале научных публикаций аспирантов и докторантов. 2009. № 9. ISSN 1991-3087. - [Электронный ресурс]. URL: http : //j urnal. org/articles/2009/inf3 3 .html - Режим доступа: (дата обращения: 28.03.2013).

6. Вайсбанд Игорь. 5000 лет информатики. - М.: «Черная белка», - 2010. - 352 с.

7. Комаров И.И. Методы автоматического поиска релевантной информации в тексте на естественном языке. 2003, - СПб.: Госуниверситет, 115 с.

8. Автоматизация индексирования и реферирования документов // Информатика. Сер. "Итоги науки и техники". - М.: ВИНИТИ, - 1983. -Т. 7. -246 с.

9. Поиск информации в сети Интернет - [Электронный ресурс]. URL: http://www.mgul.ac.ru/links/search help.shtml - Режим доступа: (дата обращения: 28.03.2010).

10.Зо Лин Кхаинг. Исследование и разработка методов интеллектуального поиска в информационно поисковых системах // Радиоэлектроника, электротехника и энергетика: Восемнадцатая Международная научно-техническая конференция студентов и аспирантов: Тезисы докладов в 4 томах, Т. 2. - М.: Издательский дом МЭИ, 2012. C. 40-41.

11. Константин Кирилюк Что такое поисковая система и как она работает? -[Электронный ресурс]. URL: http://wmascat.blogspot.com/2012/04/chto-takoe-poiskovaya-sistema.html - Режим доступа: (дата обращения: 11.04.2010).

12.Касумов В.А. Методы информационного поиска в Internet на основе нечётких отношений предпочтений. Автоматика и вычислительная техника. 2003, №4, с. 71 -V8.

13.Маннинг К., Рагхаван П., Шютце Х. Введение в информационный поиск // -М.: Вильямс, - 2011, - 397 с.

14. Куприянова, Г.И., "Информационные ресурсы Internet", - М.: ИПК госслужбы, - 2012г, - 321 с.

15.Фролов А.В., Фролов Г.В. Глобальные сети компьютеров. Практическое введение в Internet, E-mail, FTP, WWW, и HTML, программирование для Windiws Sockets. Том 23, - М.: Диалог-МИФИ, - 199б, - 283 c.

^.Arvind Arasu, Junghoo Cho, Hector Garcia-Molina, Andreas Paepcke, Sriram Raghavan. Searching the Web. - [Электронный ресурс]. URL: http://rose.cs.ucla.edu/~cho/papers/cho-toit01.pdf - Режим доступа: (дата обращения: 01.01.2013).

17.Зуев М.Б. Клиент не отвечает или временно не доступен... Интернет-маркетинг: взгляд практиков / М.Б. Зуев, Д.Е. Разваляев - М: Вершина, - 2008.

- 248 с.

18.Павел Храмцов "Поиск и навигация в Internet". Computer world, №20. -[Электронный ресурс]. URL: http://www.osp.ru/cw/1996/20/31.htm - Режим доступа: (дата обращения: 12.06.2015).

19.Кузьмин А. В. Поиск в Интернете. Как искать, чтобы найти: Все, от поиска информации, файлов, видео и фотографий до поиска товаров и работы через Интернет / А. В. Кузьмин, Н. Н. Золотарева. - СПб.: Наука и Техника., - 2006,

- 150 с.

20.Егоров А.Б. Поиск в Интернете // А. Б. Егоров. - Санкт-Петербург: НиТ, -2007. - 190 с.

21.Гусев В.С., Поиск в Internet. Самоучитель. - Киев: Диалектика, 2004. - 336 с.

22.Prabaharan S. and R. S. D. Wahidabanu, Ontological Approach for Effective Generation of Concept Based User Profiles to personalize search results // International Journal of Computer Science, 8(2), 2012, p. 205-215.

23.Sung Ho Ha, Seong Hyeon Joo and Hyun U. Pae, Searching for Similar Informational Articles in the Internet Channels // International Journal of Computer Science and Engineering, 2(1), 2007, p. 14-17. 24.Чурсин, Н. А. Популярная информатика // Н.А. Чурсин. - М.: «Вильямс», -2011. - 300 с.

25.Персонализированный поиск в Yandex и Google - [Электронный ресурс]. URL: http://seranking.ru/blog/seo/personalizirovannyjj-poisk-v-yandex-i-google/ -Режим доступа: (дата обращения: 10.02.2014).

26.Гусев В.С. Google. Эффективный поиск - Москва, Санкт - Петербург, - Киев: Диалектика, - 2007. - 240 c.

27.Гусев В.С. Яндекс. Эффективный поиск - Москва, Санкт - Петербург, - Киев: Диалектика, - 2007. - 224 с.

28.Поисковая система Yahoo! - [Электронный ресурс]. URL: http://www.wmz-portal.ru/page-al-poiskovaia sistema yahoo.html - Режим доступа: (дата обращения: 8.04.2014).

29. Описание поисковой системы Bing. - [Электронный ресурс]. URL: http://anokalintik.ru/opisanie-poiskovoi-sistemy-bing.html - Режим доступа: (дата обращения: 10.03.2014).

30.Карцан И.Н. Современные поисковые системы в сети Интернет: анализ принципов работы и классификация / И.Н. Карцан, В.В. Кожевников, П.В. Зеленков // Вестник НИИ СУВПТ: Сб. научн. Трудов // Под общ. ред. проф. Н.В. Василенко; Красноярск: НИИ СУВПТ. - 2006. - Вып. 23. - С. 221-227.

31.Тарасов В.Б. Эволюционная семиотика и нечеткие многоагентные системы -основные теоретические подходы к построению интеллектуальных организаций// Информационные технологии и вычислительные системы. -1998. - №1. - С. 54-68.

32.Ferber J. Les systemes multi-agents. Vers une intelligence collective. - Paris (France): InterEditions, - 1995. - 522 p.

33.Городецкий В.И. Многоагентные системы: современное состояние исследований и перспективы применения // Новости искусственного интеллекта. - 1996. - №1. - c. 44-59.

34.Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. // - М.: Эдиториал УРСС, - 2002. - 352 c.

35.Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. -СПб.: Питер, - 2001.

36.Тарасов В.Б. Агенты, многоагентные системы, виртуальные сообщества: стратегическое направление в информатике и искусственном интеллекте// Новости искусственного интеллекта. - 1998. - №2. - С.5-63.

37.Карцан И.Н. Алгоритмическое обеспечение тематико-ориентированного мониторинга и персонификации информационных ресурсов / И.Н. Карцан // Вестник НИИ СУВПТ; Сб. научн. трудов / Под общ. ред. проф. Н.В. Василенко; Красноярск: НИИ СУВПТ. - 2006, - Вып. 24. - c. 10-15.

38.Главные направления развития многоагентных систем - [Электронный ресурс]. URL: http://www.aiportal.ru/articles/multiagent-systems/directions-of-development-of-mas.html - Режим доступа: (дата обращения: 10.02.2014).

39.Варшавский П.Р., Еремеев А.П. Моделирование рассуждений на основе прецедентов в интеллектуальных системах поддержки принятия решений // Искусственный интеллект и принятие решений. 2009. №2. с. 45-47.

40.Зеленков П.В. Проблема развития метапоисковых технологий / П.В. Зеленков, Т.А. Ковалева // Вестник НИИ СУВПТ № 14: Сб. науных трудов // Под общей ред. профессора Н.В. Василенко. - Красноярск: НИИ СУВПТ. - 2004. - Вып. 14. - С. 95-103.

41.Л.А. Трофимова, В.В. Трофимов. Управленческие решения (методы принятия и реализации): учебное пособие Л.А. Трофимова, В.В. Трофимов. - СПб.: Изд-во СПбГУЭФ, - 2011. - 190 с.

42. Федотов В.Б. Построение распределенной системы доступа к информационным ресурсам на основе многоагентной архитектуры / VII Международная конференция по электронным публикациям "EL-Pub2002", -г. Новосибирск. - 2002. - с. 23-27.

43.Поспелов Д.А. Многоагентные системы - настоящее и будущее // Информационные технологии и вычислительные системы, №2 1, 1998, с. 14-21.

44.Варшавский П.Р., Еремеев А.П. Моделирование рассуждений на основе прецедентов в интеллектуальных системах поддержки принятия решений // Искусственный интеллект и принятие решений. 2009. №2. с. 45-47.

45.Aamodt A., Plaza E. Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches// Artificial Intelligence Communications. IOS Press. - 1994. - Vol.7, №1. - p. 39-59.

46.Варшавский П.Р. Механизмы правдоподобных рассуждений на основе прецедентов (накопленного опыта) для систем экспертной диагностики// Труды 11-й национальной конференции по искусственному интеллекту с международным участием (Дубна, 28 сентября - 3 октября 2008 г.). - М: URSS, 2008. - Т.2. - c.106-113.

47.Варшавский П.Р., Алехин Р.В., Зо Лин Кхаинг Применение онтологического подхода для реализации поиска решения на основе прецедентов в интеллектуальных системах поддержки принятия решений // Труды XIII национальной конференции по искусственному интеллекту с международным участием КИИ-2012. Т.3. - Белгород: Изд-во БГТУ, 2012. С. 72-79.

48.Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. М.: Эдиториал УРСС, 2002.

49.T. Kohonen, Self-Organizing Maps (Third Extended Edition), New York, 2001, p. 37-46.

50.Chris Burges, Tal Shaked. Learning to rank using gradient descent // ICML '05 Proceedings of the 22nd international conference on Machine learning. 2005. p. 8996.

51. Зо Лин Кхаинг. Реализация поиска на основе прецедентов в мультиагентных интеллектуальных информационно-поисковых системах // Радиоэлектроника, электротехника и энергетика: Девятнадцатая Международная научно-

техническая конференция студентов и аспирантов: Тезисы докладов в 4 томах, Т. 2. - М.: Издательский дом МЭИ, - 2013. - c. 34-35.

52.Бредихин К.Н., Варшавский П.Р. Архитектура системы распределенного вывода на основе прецедентов для интеллектуальных систем // Программные продукты и системы. 2011. № 1. С. 50-53.

53.Варшавский П.Р., Зо Лин Кхаинг, Аркар Мьо. Применение методов поиска решения на основе прецедентов в информационных поисковых системах «Программные продукты и системы», № 3(103), 2013, с. 114-119.

54.Варшавский П.Р., Алехин Р.В., Ар Кар Мьо, Зо Лин Кхаинг. Реализация прецедентного модуля для интеллектуальных систем «Программные продукты и системы», № 2 (110), 2015, с. 26-31.

55.Официальный сайт стеммера Портера - [Электронный ресурс]. URL: http : //tartarus. org/~martin/PorterStemmer/ - Режим доступа: (дата обращения: 27.09.2014).

56.Стеммер Портера для русского языка. Официальный сайт. - [Электронный ресурс]. URL: http : //snowball.tartarus. org/al gorithms/russian/stemmer.html -Режим доступа: (дата обращения: 27.09.2014).

57.Белоногов Г.Г., Калинин Ю.П., Хорошилов А.А. Компьютерная лингвистика и перспективные информационные технологии. М.: Русский мир, 2004. 246 с.

58.Варшавский П.Р., Алехин Р.В., Зо Лин Кхаинг Применение онтологического подхода для реализации поиска решения на основе прецедентов в интеллектуальных системах поддержки принятия решений // Труды XIII национальной конференции по искусственному интеллекту с международным участием КИИ-2012. Т.3. - Белгород: Изд-во БГТУ, - 2012. - c. 72-79.

59.Adam Freeman. Pro ASP.NET MVC 3 Framework. Apress, 3rd Edition. -2011, -852 p.

60.Scott Millett. Professional ASP.NET Design Patterns. Wrox. - 2010, - 720 p.

61. Julia Lerman. Programming Entity Framework: Building Data Centric Apps with the ADO.NET Entity Framework. O'Reilly Media, 2nd Edition. - 2010, - 920 p.

62.Nishith Pathak. Pro WCF 4: Practical Microsoft SOA Implementation. Apress; 2nd Edition. - 2011, - 472 p.

63.Mike Liu. Pro WCF 4: WCF 4.0 Multi-tier Services Development with LINQ to Entities. Packt Publishing. - 2010, - 348 p.

64.Douglas Barry. Web Services, Service-Oriented Architectures, and Cloud Computing. Morgan Kaufmann, 2nd Edition. - 2003, - 245 p.

65.Eric A. Marks. Service-Oriented Architecture (SOA) Governance for the Services Driven Enterprise. Wiley, 1st Edition. - 2008, - 320 p.

66.Terry Halpin. Information Modeling and Relational Databases. Morgan Kaufmann, 2nd Edition. - 2008, - 976 p.

67.Richard W. Scamell, Narayan S. Umanath. Data Modeling and Database Design. Course Technology, 1st Edition. - 2007, - 720 p.

68. Зо Лин Кхаинг. Исследование и анализ подходов к построению информационно-поисковых систем // Радиоэлектроника, электротехника и энергетика: Семнадцатая Международная научно-техническая конференция студентов и аспирантов: Тезисы докладов в 4 томах, Т. 2. - М.: Издательский дом МЭИ, 2011. C. 368-369.

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММНОГО КОДА 1) SiteDTO.cs

using System;

using System.Collections.Generic; using System.Linq; using System.Web;

namespace StrayMan.Models {

public class SiteDTO {

// идентификация страницы

public string SiteID { get; set; } // адрес страницы в сети Интернет public string Url { get; set; } // Название документа

public string Title { get; set; } // Описание документа

public string Description { get; set; } // Тип документа

public string Type { get; set; } // Ссылка Кэш документа

public string CacheLink { get; set; } // SES документа public float SES { get; set; }

}

}

2) AccountModels.cs

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Globalization;

using System.Web.Mvc;

using System.Web.Security;

namespace StrayMan.Models {

//изменение пароля

public class ChangePasswordModel {

//текущий пароль [Required]

[DataType(DataType.Password)] [Display(Name = "Current password")] public string OldPassword { get; set; } //новый пароль [Required]

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]

[DataType(DataType.Password)] [Display(Name = "New password")]

public string NewPassword { get; set; } // Подтверждения нового пароля [DataType(DataType.Password)] [Display(Name = "Confirm new password")]

[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]

public string ConfirmPassword { get; set; }

}

// для авторизации

public class LogOnModel {

// имя пользователя [Required]

[Display(Name = "User name")] public string UserName { get; set; } // пароль пользователя [Required]

[DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } // запоминание имя и пароля [Display(Name = "Remember me?")] public bool RememberMe { get; set; }

}

// для регистрации

public class RegisterModel {

// имя пользователя [Required]

[Display(Name = "User name")] public string UserName { get; set; } // Email пользователя [Required]

[DataType(DataType.EmailAddress)] [Display(Name = "Email address")] public string Email { get; set; } // пароль пользователя [Required]

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]

[DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } // Подтверждения пароля [DataType(DataType.Password)] [Display(Name = "Confirm password")] [Compare("Password", ErrorMessage match.")]

public string ConfirmPassword { get; set; }

The password and confirmation password do not

}

}

3) HomeController.cs

using System;

using System.Collections.Generic;

using System.Linq; using System.Web; using System.Web.Mvc; using StrayMan.Models; using StrayMan.DAL;

namespace StrayMan.Controllers {

public class HomeController : Controller {

// для доступа к данным DataAccess _db = new DataAccess();

//для списка результатов List<SiteDTO> results = new List<SiteDTO>();

public ActionResult Index() {

return View();

}

//поиск результатов

public ActionResult Search(string query, int? page) {

// проверка существования пользователя

if (User.Identity.IsAuthenticated) {

//для получения результатов из прецедентов results = _db.getResult(query, "htm"); ViewBag.query = query; // для добавления прецедента (сохранение)

LocalPrecedentEntities _local = new LocalPrecedentEntities();

Precedent_case_ Pc = new Precedent_case_

{

CaseId = _local.Precedent_case_.Count() + 1,

Query = query,

Username = User.Identity.Name

};

_local.Precedent_case_.AddObject(Pc);

_local.SaveChanges();

}

else {

// для получения результатов из индекса ИПС results = _db.getResults(query, "htm"); ViewBag.query = query;

}

return View("Search", results);

}

public ActionResult About() {

return View();

}

}

}

4) DataAccess.cs

using System;

using System.Collections.Generic; using System.Linq; using System.Web; using StrayMan.Models;

namespace StrayMan.DAL {

public class DataAccess {

ServerPrecedentManager.PrecedentManagerClient pmanager = new ServerPrecedentManager.PrecedentManagerClient();

ServerAgentManager.IndexManagerClient imanager = new ServerAgentManager.IndexManagerClient();

public List<SiteDTO> getResult(string query, string queryType) {

// Получение результатов из прецедентов

var sResults = pmanager.getResult(query, queryType); List<SiteDTO> results = new List<SiteDTO>(); results = (from r in sResults

select new SiteDTO {

CacheLink = r.CacheLink, Description = r.Description, SiteID = r.SiteID, Title = r.Title, Type = r.Type, Url = r.Url, SES = r.SES }).ToList(); return results;

}

public List<SiteDTO> getResults(string query, string queryType) {

// Получение результатов из индекса ИПС

var sResults = imanager.getResult(query, queryType); List<SiteDTO> results = new List<SiteDTO>(); results = (from r in sResults

select new SiteDTO {

CacheLink = r.CacheLink,

Description = r.Description, SiteID = r.SiteID, Title = r.Title, Type = r.Type, Url = r.Url, SES = r.SES }).ToList(); return results;

}

}

}

5) IFromIndexDB.cs

using System;

using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text;

namespace FromIndexDB {

// интерфейс работы с шаблоном [ServiceContract]

public interface IFromIndexDB {

// для получения доступа к странице (сайту) по id [OperationContract]

idbSite[] getSitesByIds(string[] sitesIds, string query); // для поиска сайтов [OperationContract]

idbSite[] SearSites(string query, string queryType);

}

// добавление составных типов [DataContract]

public class idbSite {

[DataMember]

public string SiteID { get; set; } // Идентификатор страницы [DataMember]

public string Url { get; set; } // Адрес страницы в сети Интернет [DataMember]

public string Title { get; set; } // Название документа [DataMember]

public string Description { get; set; } // Описание документа [DataMember]

public string Type { get; set; } // Тип документа [DataMember]

public string CacheLink { get; set; } // Ссылка Кэш документа [DataMember]

public float SES { get; set; } // SES документа [DataMember]

public string Keywords { get; set; } // Ключевые слова

}

}

6) FromIndexDB.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

using SESHelper;

namespace FromIndexDB {

public class FromIndexDB : IFromIndexDB {

StraySearchDBEntities _index = new StraySearchDBEntities(); SES ses = new SES();

public idbSite[] getSitesByIds(string[] sitesIds, string query) {

List<idbSite> sites = new List<idbSite>(); // проверить все id из идентификатора документов

foreach (var id in sitesIds) {

var site = (from s in _index.Site where s.SiteId == id join c in _index.CachePage on s.SiteId equals c.SiteId

select new idbSite {

CacheLink = c.FileName, SiteID = s.SiteId, Title = s.Title, Description = s.Abstract, Url = s.Url, Type = c.Filetype, Keywords = s.Keywords,

}).FirstOrDefault();

if (site != null) // страница не загружена {

// найти SES для полученных результатов и сохранить double D = ses.FindSES(query, site.Keywords.Split(' ')); site.SES = (float)D; sites.Add(site);

}

}

return sites.OrderByDescending(x => x.SES).ToArray();

// Поиск по ключевым словам

private bool FindByWord(string q, string[] words) {

bool isContain = false;

foreach (string s in words) {

if (q.ToLower().Contains(s.ToLower())) {

isContain = true;

}

}

return isContain;

}

// для поиска сайтов

public idbSite[] SearSites(string query, string queryType) {

var _word = query.Split(' '); // слово найти в Заголовок, Аннотация, ключевые слова и получить сайты var site = (from s in _index.Site.AsEnumerable()

join c in _index.CachePage.AsEnumerable() on s.SiteId equals c.SiteId

where c.Filetype.Equals(queryType.ToLower()) && (FindByWord(s.Title, _word) || FindByWord(s.Abstract, _word) || FindByWord(s.Keywords, _word))

select new idbSite {

CacheLink = c.FileName, SiteID = s.SiteId, Title = s.Title, Description =s.Abstract, Url =s.Url,

Keywords = s.Keywords, Type = c.Filetype

});

var SESsites = new List<idbSite>(); // рассчитать SES для Заголовков, Аннотаций, Ключевых слов

foreach (var s in site) {

double[] allses = new double[3]; double D;

allses[0] = ses.FindSES(query, s.Keywords.Split(',')); allses[1] = ses.FindSES(query, s.Title.Split(' ')); allses[2] = ses.FindSES(query, s.Description.Split(' '));

D = 0.2 * allses[2] + 0.4 * allses[0] + 0.4 * allses[1];

s.SES = (float)D;

SESsites.Add(s);

}

return SESsites.OrderByDescending(x => x.SES).ToArray();

}

}

7) SESHelper.cs

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

namespace SESHelper {

public class SES {

public double FindSES(string w, string[] words) {

// параметры для SES double SES = 0; bool f = false; int max, k = 0; // определение массива слов string[] q = w.Split(' '); // сравнить длину запроса с длиной слов if (q.Length > words.Length) max = q.Length;

else

max = words.Length;

foreach (string s in q) {

f = false; // для получения SES

foreach (string s1 in words) {

if (((s.ToLower().Contains(s1.ToLower())) ||

(s1.ToLower().Contains(s.ToLower()))) && (s.ToLower() != "") && (s1.ToLower() != "")) {

f = true; break;

}

}

if (f) {

k = k + 1;

}

}

SES = 100 * ((double)k / max); return Math.Round(SES, 2);

}

}

}

8) IFromPrecedentDB.cs

using System;

using System.Collections.Generic;

using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text;

namespace FromPrecedentDB {

// интерфейс работы с шаблоном [ServiceContract]

public interface IFromPrecedentDB {

// для получения результатов из прецедентов [OperationContract]

pdbSite[] returnLocalResult(string query, string queryType); // для добавления нового прецедента int insertNewPrecedent(string query, pdbSite[] results);

}

// добавление составных типов

[DataContract]

public class pdbSite {

[DataMember]

public string SiteID { get; set; } // Идентификация страницы [DataMember]

public string Url { get; set; } // Адрес страницы в сети Интернет [DataMember]

public string Title { get; set; } // Название документа [DataMember]

public string Description { get; set; } // Описание документа [DataMember]

public string Type { get; set; } // Тип документа [DataMember]

public string CacheLink { get; set; } // Ссылка Кэш документа [DataMember]

public float SES { get; set; } // SES документа [DataMember]

public string Keywords { get; set; } // Ключевые слова

}

}

9) FromPrecedentDB.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

using SES1Helper;

using System.Security.Principal;

namespace FromPrecedentDB {

public class FromPrecedentDB : IFromPrecedentDB {

FromIndexDB.FromIndexDBClient indexDB = new FromIndexDB.FromIndexDBClient();

public pdbSite[] returnLocalResult(string query, string queryType) {

LocalPrecedentEntities _local = new LocalPrecedentEntities();

SES1 ses1 = new SES1(); //объявление для прецедента

var precedent = from p in _local.Precedent_case_.AsEnumerable()

where ses1.FindSES1(query.ToLower(), p.Query.ToLower()) > 80 select p;

// проверить, есть ли прецеденты или нет

if (precedent.Count() <= 0) {

var iSites=this.getSitesFromDB(query, queryType); // найти в индексе if (iSites.Count() > 0)

{

// переходим к добавлению нового прецедента

int res = insertNewPrecedent(query, getSitesFromDB(query, queryType));

};

return iSites;

}

else {

var sites = new List<string>(); var pSES = new List<float>(); // проверить документы в найденных прецедентах

foreach (var p in precedent) {

var pSite = from r in _local.Results

where r.CaseId == p.CaseId select r.SiteId; sites.AddRange(pSite); var pS = from s in _local.Results

where s.CaseId == p.CaseId select s.SES; pSES.AddRange(pS);

}

int i = _local.Results.Count(); int j = 0;

foreach (var si in sites) {

i = i + 1;

// для добавления прецедента и сохранения результатов

Result pR = new Result {

ResultId = i,

}

SiteId = si,

CaseId = _local.Precedent_case_.Count() + 1,

SES = pSES.ElementAt(j)

};

j = j + 1;

_local.Results.AddObject(pR);

_local.SaveChanges();

var SitesFromIndex = indexDB.getSitesByIds(sites.ToArray(), query);

// для форматирования получить страницы (сайты) из индекса var FormatedSitesFromIndex = (from s in SitesFromIndex

select new pdbSite {

CacheLink = s.CacheLink, Description = s.Description, SiteID = s.SiteID, Title = s.Title, Type = s.Type, Url = s.Url, SES = s.SES }).ToArray();

return FormatedSitesFromIndex;

}

}

pdbSite[] getSitesFromDB(string query, string siteType) {

var resultlist = (from s in indexDB.SearSites(query, siteType)

select new pdbSite {

CacheLink = s.CacheLink, Description = s.Description, SiteID = s.SiteID, Title = s.Title, Type = s.Type, Url = s.Url, SES = s.SES }).ToArray();

return resultlist;

}

public int insertNewPrecedent(string query, pdbSite[] results) {

LocalPrecedentEntities _pre = new LocalPrecedentEntities(); int i = _pre.Results.Count();

// для добавления прецедента и сохранения результатов

foreach (var si in results) {

i = i + 1;

Result res = new Result {

ResultId = i, SiteId = si.SiteID,

CaseId = _pre.Precedent_case_.Count() + 1,

SES = si.SES

};

_pre.Results.AddObject(res);

}

try {

_pre.SaveChanges(); return 1;

}

catch {

return 0;

}

} }

}

10) SES1Helper

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

namespace SES1Helper {

public class SES1 {

public double FindSES1(string w, string words) {

double SES = 0; bool f = false; int max, k = 0; string[] q1 = w.Split(' '); string[] q = words.Split(' '); if (q1.Length > q.Length) max = q1.Length;

else

max = q.Length;

foreach (string s in q1) {

f = false;

foreach (string s1 in q) {

if (((s.ToLower().Contains(s1.ToLower())) ||

(s1.ToLower().Contains(s.ToLower()))) && (s.ToLower() != "") && (s1.ToLower() != "")) {

f = true; break;

}

}

if (f)

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.