Назад
Источник: Лукащук М.О. Решение задачи Метапоиска на примере системы «MetaSearch». / М.О. Лукащук // VIII Всероссийская научно-техническая конференция «Современные информационные технологии в образовании и научных исследованиях» (СИТОНИ-2023). – Донецк: Донецкий национальный технический университет, 2023. – С. 112-118.
УДК 004.004
РЕШЕНИЕ ЗАДАЧИ МЕТАПОИСКА
НА ПРИМЕРЕ СИСТЕМЫ «METASEARCH»
Лукащук М.О.
ФГБОУ ВО «Донецкий национальный технический университет» (г. Донецк)
кафедра «Программная инженерия»
e-mail: mikhail.lukashchuk@mail.ru

Лукащук М.О. Решение задачи Метапоиска на примере системы «MetaSearch». Разработанная метапоисковая система «MetaSearch» интегрирует результаты запросов из Google, Yahoo и Baidu, устраняя дубликаты и группируя схожие записи. Используя модель предложений и метрику схожести, система предоставляет эффективный и уникальный обзор поисковых данных.

Ключевые слова: Метапоисковая система, Интеграция результатов поиска, Модель предложений и схожесть, Оптимизация поискового опыта, Дубликаты и группировка результатов, Эффективность поиска в Интернете

Введение

Современная информационная среда требует эффективных механизмов поиска. В статье представлена Метапоисковая система «MetaSearch», объединяющая выдачу трех ведущих поисковых систем - Google, Yahoo и Baidu. Методы обработки результатов и использование модели предложений обеспечивают точность и полноту в предоставлении уникальной информации.

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

1 Анализ аналогичных систем

Существует ряд аналогичных Метапоисковых систем, предназначенных для улучшения поискового опыта и обеспечения более полной и точной информации. Некоторые системы, такие как MetaGer и Dogpile, объединяют результаты из нескольких поисковых движков. Однако, в отличие от представленной системы, наш подход акцентирует внимание на устранении дубликатов и группировке схожих результатов с использованием модели предложений и метрики схожести. Это позволяет не только интегрировать данные, но и обеспечивать уникальный и точный обзор информации для конечного пользователя, повышая эффективность поиска в сети Интернет.

2 Алгоритм Метапоисковой системы «MetaSearch»

Алгоритм Метапоисковой системы «MetaSearch» реализован с помощью языка программирования python и среды разработки PyCharm Community Edition v2021.2.3.

Для реализации Метапоисковой системы «MetaSearch», первым делом считываем пользовательский запрос с веб-интерфейса, затем отправляем запрос к трем поисковым системам (Google, Baidu и Yahoo). Алгоритм поиска для каждой из поисковых систем уникален и рассматривается в зависимости от возможностей, предоставляемых той или иной поисковой системой.

2.1 Поиск в Google:

Для выполнения поиска в Google используется Google Custom Search[1] API. Сначала формируется HTTP-запрос, включая ключ API, идентификатор поисковой выдачи (CX) и параметры запроса.

API Key – это уникальный идентификатор, предоставляемый разработчикам, чтобы использовать определенный веб-сервис или API (Application Programming Interface). В контексте Google Custom Search API, ключ API необходим для аутентификации запросов к API. Он служит как форма идентификации вашего приложения или сервиса, позволяя Google определить, кому принадлежит запрос, и предоставить доступ к соответствующим данным.

Идентификатор поисковой выдачи (CX) используется в Google Custom Search API для указания, на каком конкретном поисковом движке будет выполняться запрос. Каждый созданный пользователем поисковый движок в Google Custom Search Console получает уникальный идентификатор CX. Этот идентификатор позволяет API знать, результаты какого именно поиска нужно вернуть в ответ на запрос.

Полученный JSON-ответ обрабатывается, извлекая информацию о заголовках, ссылках и сниппетах (небольшие отрывки текста из найденной поисковой машиной страницы сайта, использующиеся в качестве описания ссылки в результатах поиска). Это позволяет эффективно интегрировать результаты из Google в Метапоисковую систему «MetaSearch».

2.2 Поиск в Yahoo:

для поиска в Yahoo используется библиотека yahoo_search[2], которая взаимодействует с API Yahoo Search. С помощью этой библиотеки формируется запрос, результаты которого содержат заголовки, ссылки и сниппеты.

API Yahoo Search – это интерфейс программирования приложений, предоставляемый Yahoo, который позволяет разработчикам выполнять поисковые запросы и получать результаты из поискового движка Yahoo Search.

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

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

2.3 Поиск в Baidu:

поиск в Baidu осуществляется с использованием технологии веб-скрапинга. Веб-скрапинг[3] – это техника извлечения данных из веб-страниц, обычно с использованием HTTP-запросов для получения HTML-кода страницы, а затем анализа этого кода для извлечения нужной информации. В данном случае, веб-скрапинг используется для извлечения результатов поиска из HTML-страниц, полученных от поисковой системы Baidu.

Сначала формируется запрос с использованием библиотеки requests и UserAgent для имитации браузера. Затем отправляется HTTP-запрос к поисковику Baidu, и HTML-страница с результатами поиска обрабатывается с использованием BeautifulSoup. Заголовки, ссылки и описания извлекаются из HTML, интегрируются в общий набор результатов, предоставляя пользователю информацию из Baidu.

2.4 Объединение результатов поиска:

объединяем результаты поиска из трех источников в общий список. Используем уникальные URL для идентификации и удаления дубликатов. Удаляются похожие результаты поиска используя SentenceTransformer[4], а конкретно модель paraphrase-MiniLM-L6-v2[5].

SentenceTransformer – это модель машинного обучения, спроектированная для преобразования предложений в числовые векторы. Она обучена так, чтобы векторы предложений в семантическом пространстве были близкими к векторам семантически похожих предложений. Модель использует технику предварительного обучения на больших объемах текстовых данных.

Модель paraphrase-MiniLM-L6-v2 представляет собой легковесную, но мощную модель для задачи парафраза (перефразирования) текстов. Эта модель является частью семейства MiniLM и создана компанией Microsoft. Вот несколько ключевых характеристик этой модели:

MiniLM – это компактная версия мощной модели языкового представления (языковой модели). Версия paraphrase-MiniLM-L6-v2 представляет собой шестой уровень (L6) в этой архитектуре. Она обеспечивает баланс между производительностью и эффективностью, что особенно важно для приложений, требующих небольшие размеры моделей.

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

В контексте Метапоисковой системы «MetaSearch», где используется для векторизации описаний результатов поиска, эта модель помогает выявить семантическую схожесть между текстовыми описаниями. Это векторное представление может быть затем использовано для группировки по схожести и представления уникальных результатов.

Схожесть: косинусное сходство – это метрика, используемая для измерения угла между векторами в многомерном пространстве. В контексте Метапоисковой системы «MetaSearch», после векторизации описаний результатов поиска с помощью SentenceTransformer, применяется косинусное сходство между векторами. Это позволяет определить степень схожести между описаниями: чем ближе значение к 1, тем более похожи описания.

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

Для каждой группы схожих записей выбирается один "представитель". Итоговый список уникальных результатов формируется на основе выбранных представителей из каждой группы. Эти уникальные результаты предоставляются в формате JSON, который затем отправляется веб-интерфейсу для отображения пользователю.

Алгоритм удаления похожих результатов поиска можно представить в виде диаграммы (см. рис. 1).

Алгоритм удаления похожих результатов поиска
Рисунок 1 – Алгоритм удаления похожих результатов поиска

3 Выводы

Таким образом, разработанная Метапоисковая система «MetaSearch» представляет собой инновационное решение, нацеленное на улучшение эффективности и точности поиска в интернете. Основные характеристики и результаты проекта можно сформулировать следующим образом:

Система использует продвинутую модель предложений (paraphrase-MiniLM-L6-v2) и метрику косинусного сходства для выявления схожести между описаниями результатов поиска. Это позволяет эффективно группировать схожие записи и удалить дубликаты, обеспечивая пользователю более удобное и точное представление информации.

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

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

Литература

  1. Справка -- Программируемая поисковая система: https://support.google.com/programmable-search/#topic=4513742 (дата обращения: 11.11.2023)
  2. Yahoo_search py документация: https://pypi.org/project/yahoo-search-py/ (дата обращения: 11.11.2023)
  3. Веб-скраппинг с помощью Python полное руководство: https://ru-brightdata.com/blog/how-tos-ru/web-scraping-with-python (дата обращения: 11.11.2023)
  4. SentenceTransformer -- Documentation: https://sbert.net/ (дата обращения: 11.11.2023)
  5. Paraphrase-MiniLM-L6-v2: https://huggingface.co/sentence-transformers/paraphrase-MiniLM-L6-v2 (дата обращения: 11.11.2023)

Лукащук М.О. Решение задачи Метапоиска на примере системы «MetaSearch». Разработанная метапоисковая система «MetaSearch» интегрирует результаты запросов из Google, Yahoo и Baidu, устраняя дубликаты и группируя схожие записи. Используя модель предложений и метрику схожести, система предоставляет эффективный и уникальный обзор поисковых данных.

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

Lukashchuk M.O. The solution of the Metasearch problem on the example of the "MetaSearch" system. The developed metasearch system integrates query results from Google, Yahoo, and Baidu, eliminating duplicates and grouping similar entries. Using sentence model and similarity metric, the system provides an efficient and unique overview of search data.

Keywords: Metasearch System, Search Results Integration, Sentence Model and Similarity, Search Experience Optimization, Duplicate Removal and Result Grouping, Internet Search Efficiency.