Открыть сервис

Поисковые алгоритмы: обработка запросов

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

Основные этапы обработки запроса

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

Предобработка и нормализация

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

Токенизация и сегментация

Запрос разбивается на токены — минимальные значимые единицы. Для русского языка сложность представляет отсутствие однозначных разделителей: словосочетания («красная площадь») могут обрабатываться как единый термин, а аббревиатуры («ЦБ РФ») требуют специальных правил. Современные системы используют также сегментацию на n-граммы для устойчивости к опечаткам.

Расширение запроса

Для повышения полноты выдачи применяются механизмы расширения:

  • Синонимизация — подстановка синонимов из тезаурусов (WordNet, RuWordNet);
  • Учёт словоформ — включение всех грамматических форм;
  • Транслитерация и перевод — для иностранных терминов;
  • Исправление опечаток — на основе расстояния Левенштейна и статистики частотности.

Модели сопоставления запроса и документа

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

Булева модель

Классическая модель, в которой документ либо соответствует запросу, либо нет. Запрос представляется в виде логического выражения с операторами AND, OR, NOT. Модель проста, но не даёт частичного соответствия и не ранжирует результаты.

Векторная модель

Запрос и документ представляются как векторы в многомерном пространстве терминов. Релевантность вычисляется через косинусную меру близости. Вариант TF-IDF учитывает частоту термина в документе (TF) и обратную частоту в коллекции (IDF), что позволяет взвешивать значимость слов.

Вероятностные модели

Модель BM25 (Okapi BM25) — одна из наиболее распространённых, использует вероятностную оценку релевантности на основе частотности терминов и длины документа. Модель учитывает насыщение частоты (убывающую отдачу от повторений) и нормализацию по длине документа.

Нейросетевые и семантические модели

Современные системы (начиная с 2010-х годов) применяют нейросетевые подходы: дистрибутивные семантики (word2vec, fastText), трансформерные модели (BERT, T5) для построения семантических векторов запроса и документа. Эти модели позволяют учитывать контекст, синонимию и парафразы, выходя за рамки лексического совпадения.

Ранжирование результатов

После сопоставления запроса с документами выполняется ранжирование — упорядочивание результатов по релевантности.

Факторы ранжирования

Используются десятки и сотни сигналов:

  • Текстовые — совпадение в заголовке, URL, мета-тегах, плотность ключевых слов;
  • СсылочныеPageRank, TrustRank, анкорные тексты внешних ссылок;
  • ПоведенческиеCTR (кликабельность), время на странице, отказы;
  • Региональные и языковые — привязка к региону пользователя, язык документа;
  • Коммерческие — наличие цен, контактов, отзывов для коммерческих запросов.

Машинное обучение в ранжировании

Современные поисковые системы используют методы машинного обучения (LTR — Learning to Rank): градиентный бустинг (LambdaMART, LightGBM), нейросетевые архитектуры. Модель обучается на размеченных данных о релевантности, собираемых через оценщиков качества и поведенческие сигналы.

Особенности обработки специфических типов запросов

Информационные, навигационные и транзакционные запросы

По интенту запросы делятся на три класса:

  • Информационные — пользователь ищет факты («столица Австралии»);
  • Навигационные — поиск конкретного сайта («вконтакте вход»);
  • Транзакционные — намерение совершить действие («купить ноутбук»).

Для каждого типа применяются разные стратегии: для транзакционных — вывод коммерческих сниппетов, для информационных — расширенные ответы (featured snippets).

Разговорные и голосовые запросы

С ростом голосового поиска (Google Assistant, Яндекс Алиса, Алиса — голосовой помощник Яндекса) алгоритмы адаптируются к длинным, естественно-языковым запросам. Используются диалоговые модели, учитывающие контекст предыдущих обращений, и обработка неоднозначностей через уточняющие вопросы.

Нечёткие и мультиязычные запросы

Для запросов с ошибками применяются алгоритмы нечёткого поиска и автодополнение (suggest). В мультиязычных средах (например, в Казахстане или Швейцарии) выполняется определение языка запроса и поиск по нескольким языковым индексам.

Критика и ограничения

Основные ограничения обработки запросов связаны с неоднозначностью естественного языка, невозможностью полного учёта контекста и личных предпочтений пользователя. Также существует проблема «пузыря фильтров» — персонализация выдачи может ограничивать разнообразие информации. Критике подвергается и непрозрачность алгоритмов крупных поисковых систем, что затрудняет их независимую оценку.

Источники

  • Маннинг К., Рагхаван П., Шютце Х. «Введение в информационный поиск», 2011.
  • Baeza-Yates R., Ribeiro-Neto B. «Modern Information Retrieval», 2011.
  • Документация и технические публикации Яндекс и Google о принципах ранжирования.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →