Исправление опечаток: словарь или модель
Два подхода к исправлению запросов, их сильные и слабые стороны, и почему на каталоге товаров обычно нужны оба.
Запрос с ошибкой можно чинить двумя способами: подобрать похожее слово по буквам или понять смысл, не исправляя. Подходы решают разные части задачи.
Словарный подход
Поиск сравнивает запрос со словами из индекса и берёт ближайшее по написанию.
Как это работает: считается число правок, нужных, чтобы превратить одно слово в другое. «Манипулятр» отличается от «манипулятор» на одну вставку, значит это оно.
Сильные стороны:
- предсказуемость: всегда понятно, почему исправлено именно так;
- работает без внешних сервисов и быстро;
- легко ограничить: например, разрешить только одну правку на коротком слове.
Слабые:
- не помогает, когда слова в каталоге нет вовсе;
- на коротких словах опасно: «кран» и «крем» отличаются на одну букву;
- бесполезен для артикулов, где каждая буква значима.
Модельный подход
Запрос превращается в вектор смысла, и близкие по смыслу позиции находятся даже при искажённом написании. Исправления как такового не происходит.
Сильные стороны:
- переживает искажения, которых нет ни в одном словаре;
- заодно понимает разговорные названия и описания задач;
- не требует ручного пополнения.
Слабые:
- непредсказуем: объяснить конкретный результат труднее;
- на артикулах и точных обозначениях работает хуже точного поиска;
- стоит денег за обращения и добавляет задержку.
Почему нужны оба
Разделение простое:
- точные обозначения — артикул, код, модель: только точный поиск, никакой нечёткости;
- обычные слова с искажением — словарный подход, ограниченный одной-двумя правками;
- описания задач и незнакомые формулировки — модель.
Порядок обработки тоже понятен: сначала попробовать точное совпадение, затем нечёткое по словарю, и только если результата нет — смысловой поиск. Так и дешевле, и предсказуемее.
Что показывать человеку
Исправление всегда должно быть видимым:
- «Искали „манипулятр“, показываем „манипулятор“» с возможностью вернуться к исходному;
- при смысловом подборе — строка о том, как понят запрос: «Понял так: нужна техника для вывоза мусора».
Молчаливое исправление раздражает сильнее ошибки, особенно когда исправлено неверно.
Как настроить пороги
- одна правка для слов до шести букв;
- две для более длинных;
- нечёткость выключена для полей с артикулами;
- у исправленного результата приоритет ниже, чем у точного совпадения.
Проверить пороги можно на двадцати реальных запросах: если появляются посторонние товары, пороги слишком мягкие.
Разбор опечаток на конкретной платформе — поиск опечаток на сайте Битрикс.
Вывод и следующий шаг
Словарь чинит написание, модель понимает смысл. На каталоге товаров нужны оба, с точным поиском впереди и жёсткими правилами для артикулов.
Следующий шаг: проверьте, как ваш поиск ведёт себя на артикуле с одной изменённой цифрой. Если он находит соседнюю модель, нечёткость включена там, где её быть не должно.
Частые вопросы
Можно ли обойтись только словарём?
Можно, если запросы состоят из названий товаров. Как только появляются описания задач, словаря не хватает.
Опасна ли нечёткость на коротких словах?
Опасна. Ограничивайте её одной правкой и повышайте приоритет точных совпадений.
Как быть с артикулами?
Отключать нечёткость для этих полей полностью.
Надо ли показывать исходный запрос?
Надо, со ссылкой на поиск без исправления. Это снимает ощущение подмены.
Заменяет ли модель словарь?
Не полностью: на точных обозначениях словарь и точный поиск надёжнее.
Что делать с фонетическими ошибками?
Собрать частые варианты из отчёта и добавить их как синонимы к товарам.