Поисковые алгоритмы: обработка запросов¶
Поисковые алгоритмы: обработка запросов — совокупность методов и программных процедур, используемых поисковыми системами для интерпретации пользовательского запроса, сопоставления его с индексом документов и выдачи релевантных результатов. Обработка запросов является ключевым этапом работы поисковой машины, определяющим качество и точность выдачи.
¶Основные этапы обработки запроса
Процесс обработки запроса в типовой поисковой системе проходит несколько последовательных стадий, каждая из которых решает конкретную задачу по трансформации исходного текста в формализованное представление.
¶Предобработка и нормализация
На начальном этапе выполняется очистка запроса от лишних символов, приведение к нижнему регистру и нормализация 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 →


