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

Поисковый запрос и обработка опечаток

Поисковый запрос — это текстовая строка, которую пользователь вводит в поисковую систему для получения информации. Обработка опечаток (также исправление ошибок ввода, англ. query spelling correction) — это этап обработки запроса, на котором система выявляет и компенсирует орфографические ошибки, опечатки и искажения, чтобы выдать релевантные результаты несмотря на неверное написание.

Постановка задачи

Пользовательский ввод редко бывает безошибочным. Типичные искажения:

  • Опечатки — случайные замены, пропуски, перестановки или удвоения символов («поисковй», «прнитер»).
  • Орфографические ошибки — неверное написание слова по незнанию («кампьютер», «агенство»).
  • Фонетические ошибки — написание «на слух» («ваще», «щас»).
  • Разделение и склейка слов — «в контакте» / «вконтакте», «не работа» / «неработа».
  • Раскладка клавиатуры — ввод латиницей вместо кириллицы («ghjrb» вместо «проект»).

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

Методы исправления

Словарный подход

Простейший метод — проверка слов запроса по словарю и замена на ближайшее известное слово. Расстояние редактирования (расстояние Левенштейна) измеряет минимальное число вставок, удалений и замен символов между строками. Кандидаты с наименьшим расстоянием считаются наиболее вероятными исправлениями.

Модификации учитывают особенности ввода: расстояние Дамерау—Левенштейна добавляет операцию перестановки соседних символов, что важно для опечаток вида «прнитер» → «принтер».

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

Словарный метод не различает частотность. Вероятностная модель оценивает, какое исправление наиболее вероятно:

P(исправление | запрос) ∝ P(запрос | исправление) · P(исправление)

где P(исправление) — априорная частота слова в языке или в логах запросов, а P(запрос | исправление) — вероятность такой опечатки. Модель шумного канала (noisy channel) позволяет выбирать статистически наиболее правдоподобный вариант.

Контекстные и нейросетевые методы

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

Источники данных

Для обучения и настройки исправления используют:

  • Логи поисковых запросов — пары «запрос → клик по результату», по которым видно, какие написания ведут к одному и тому же документу.
  • Словари и корпуса текстов — для оценки частотности слов.
  • Явные пары исправлений — размеченные данные «ошибочный запрос → правильный».

Стратегии выдачи

Исправление не всегда означает замену запроса. Применяются разные стратегии:

СтратегияОписание
АвтозаменаЗапрос молча исправляется, выдача строится по исправленной форме
ПодсказкаСистема показывает «Возможно, вы имели в виду…» и предлагает исправленный вариант
Смешанная выдачаРезультаты объединяются по исходному и исправленному запросам
Без измененийЕсли уверенность низкая, запрос обрабатывается как есть

Порог уверенности важен: ошибочное «исправление» корректного запроса (например, редкого имени или термина) ухудшает поиск сильнее, чем пропущенная опечатка.

Смежные задачи

Обработка опечаток тесно связана с:

  • Автодополнением — предсказанием запроса по мере ввода, где исправление применяется к префиксу.
  • Сегментацией запроса — разбиением слитного текста на слова.
  • Нормализацией — приведением к единому регистру, устранением лишних пробелов и знаков.
  • Морфологической обработкой — учётом словоформ и лемматизацией.

Значение

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

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

На главную IRONLIVE →