ДонНТУ   Портал магистров

Метапоисковая система «Дворцы Крыма»

На четвертом курсе по дисциплине Системное программирование и операционные системы представилась возможность в качестве курсовой работы разработать приложение для метапоиска в Интернет. Я с большим энтузиазмом взялась за разработку такого приложения. Задача метапоиска состоит в выборке наиболее релевантных результатов, что подразумевает ведение словарей, словарей-синонимов, словарей-ошибок, словарей-сокращений, и поэтому пришлось согласовать предметную область мета-поиска. В первоначальном варианте предметная область называлась Достопримечательности Крыма, а затем пришлось ее сузить до Дворцов Крыма.

В разработанном приложении я использовала поисковые веб-сервисы Google и Yandex. Их особенностью является то, что предоставляемая квота на запросы для Googlе составляет 100 запросов в сутки, и 1000 запросов для Yandex. Конечно, при возможности можно за деньги купить большее число запросов в день. Поэтому пришлось экономно тестировать систему, что не отразилось на корректности работы системы.

Содержание

Введение

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

Для расширения возможности поиска, учитывая вышесказанное, были созданы системы, названные метапоисковыми. Они не имеют собственных поисковых баз данных, не содержат никаких индексов и при поиске используют ресурсы множества поисковых систем, т.е. обслуживает запросы пользователей за счет опрашивания других поисковых систем. Точнее метапоисковая система характеризуется выбором поисковых систем, которые будут обрабатывать запрос, адаптацией к разным языкам запросов, используемым в разных системах, слиянием и обработкой ответов от различных поисковых систем [2, 3].

Такие системы позволяют увеличить вероятность нахождения нужной информации за счет:

Описание задачи: характеристика

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

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

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

Описание задачи: проблема автоматизации

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

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

Стандартная метапоисковая система

Рисунок 1 – Стандартная метапоисковая система

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

Следующее поколение метапоисковых систем

Рисунок 2 – Следующее поколение метапоисковых систем

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

Описание задачи: постановка задачи

Необходимо разработать удобный для пользователя способ ввода запросов, разработать структуру словарей (понятие <–> объект, синонимов, ошибок, сокращений), написать подсистему, генерирующую семантически эквивалентные запросы с помощью словарей, разработать подсистему модификации словарей, разработать алгоритм определения релевантности результатов к исходному запросу, разработать систему вывода результатов пользователю.

Анализ существующих методов решения

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

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

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

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

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

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

Метапоисковые системы – эти сервисы направляют запрос пользователя на несколько поисковых машин, а затем принимают полученные результаты, обрабатывают их и выдают единым списком [5].

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

Сервис Clusty – один из крупнейших современных метапоисковиков, «полноценная» версия экспериментальной машины Vivisimo, разрабатывающейся с 2004 г. Clusty работает с поисковиками Ask, Gigablast, Live (теперь – Bing), дополняя результаты данными, полученными в «Википедии», Yahoo! News и Open Directory [4].

Описание алгоритмов

Основные алгоритмы метапоисковой системы:

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

Выборка релевантных результатов – сначала отбираем совпавшие ссылки среди результатов Google и Yandex. Затем, если не хватило результатов (всего их должно быть 15), анализируем текст результатов поиска. Это означает, что мы считаем вхождение каждого слова из запроса в тексте результата. Отбираем наиболее частотные результаты, и добавляем их к общим результатам

Описание программы

Описание базы данных

Предметная область – Дворцы Крыма.

Гипероним – слово с более широким значением, выражающее общее, родовое понятие, название класса (множества) предметов (свойств, признаков).

Гипоним – понятие, выражающее частную сущность по отношению к другому, более общему понятию.

Гипероним в данной предметной области выступает «дворец». Система допускает расширение словарей, т .е и самой предметной области.

Структура гиперонимов и гипонимов двух уровней. На первом уровне «дворец», на втором уровне гиперонимов выступают частные случаи, например, Бахчисарайский, Алупкинский, Воронцовский, Юсуповский дворцы. Гипеpонимы второго уровня соотносятся с первым. Для каждого гиперонима существуют гипонимы.

Взаимодейсвие с Google и Yandex

Для начала нужно несколько слов о веб-сервисах. Веб-служба, веб-сервис (англ. web service) – программная система, идентифицируемая строкой URI, чьи общедоступные интерфейсы определены на языке XML. Описание этой программной системы может быть найдено другими программными системами, которые могут взаимодействовать с ней согласно этому описанию посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

 Схема работы веб-службы

Рисунок 3 – Схема работы веб-службы

Само взаимодействие происходит через подключение к адресу веб-сервиса. В программе использованы две поисковые системы Google и Yandex. Поисковая система Google предоставляет поисковый веб-сервис Google Custom Search API, этот сервис возвращает результаты в формате JSON. Yandex предоставляет сервис "Yandex.XML", результаты возвращаются в формате xml. Адрес для совершения запроса к Yandex выглядит следующим образом: "http://xmlsearch.yandex.ru/xmlsearch?user=kalamitramarina&key=03.154689110:a9e48998adc0e8beecf9e0a2c9754a9d".

Описание интерфейса

При запуске программы появляется главное окно (рис.4), вводим запрос в текстовое поле, кнопка «Искать».

Главное окно метапоисковой системы

Рисунок 4 – Главное окно метапоисковой системы

Чтобы перейти к управлению словарями – кнопка «Словари» на главной форме. Управление словарями предполагает пользовательское вмешательство в содержимое словарей. Пользователь может добавлять, удалять слова. Форма управления словарями изображена на рисунке 5. После добавления новых слов нужно обязательно обновить данные. Формы добавления новых слов довольны просты в использовании и интуитивно понятны.

Форма управления словарями

Рисунок 5 – Форма управления словарями

Выводы

В данной научной работе была разработана и реализована система, позволяющая производить метапоиск по двум поисковым системам Google и Yandex. В процессе создания системы были разработаны классы, моделирующие объекты предметной области.

Программа была написана в cреде NetBeans IDE 7.1. Были получены при разработке проекта новые знания по работе с элементами интерфейса, навыки программирования в среде объектно-ориентированного программирования. Данная система имеет свои достоинства такие, как наглядность, простота интерфейса и достаточно удобное пользование им.

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

Список источников

  1. Современный метапоиск [Электронный ресурс]: Издательство «Открытые системы»: многопредмет. науч. журн. / Моск. физ.-техн. ин-т. – Электрон. журн. – Режим доступа: http://www.osp.ru/pcworld/2009/08/9957584/
  2. Метапоисковые системы [Электронный ресурс]: – Режим доступа: http://www.vsepoisk.ru/2009/07/blog-post_23.html
  3. Архитектура метапоисковых систем [Электронный ресурс]: – Режим доступа: http://citforum.ru/internet/search/metaping.shtml
  4. Мета-поиск. Мета-поисковые системы. МПС [Электронный ресурс]: – Режим доступа: http://www.bastau.com/websitepromotion-searchengines-metasearchsystems.htm
  5. Метапоисиовые системы [Электронный ресурс]: – Режим доступа: http://www.bgsha.com/ru/learning/course/course_content.php?COURSE_ID=6&LESSON_ID=166