Как научить поиск понимать запросы с ошибками
Как научить поиск понимать запросы с ошибками

Как научить поиск понимать запросы с ошибками

Найдется все, даже даже «xbgcs Lay’s»

Исследование института Baymard говорит, что проблемы с распознаванием поисковых запросов есть примерно у каждого второго онлайн-магазина. Для пользователей это может стать барьером, который вызывает разочарование. В конечном итоге, глупый поиск влияет на показатели продаж.

Как работает поиск

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

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

Когда пользователь пишет в поиске «чипсы Lay’s», поиск разбивает запрос на «чипсы» и «Lay’s», ищет эти слова по индексам и находит все документы, где они встречаются. Например, карточку товара «чипсы Lay’s сметана и зелень», новость «Попробуйте чипсы Lay’s со вкусом малосольных огурчиков» и статью «5 рецептов с чипсами Lays».

Система ранжирует документы и отображает пользователю самые релевантные. На первом месте будет карточка товара «чипсы Lay’s сметана и зелень»: в ней больше всего слов из запроса, и они находятся в заголовке и описании продукта.

Настроить полнотекстовой поиск можно разными способами. Мы чаще всего пользуемся Elasticsearch и Diginetica. Diginetica — это сервис для поиска в интернет-магазинах. Он сам обрабатывает все запросы. Elasticsearch настраиваем вручную.

Как научить поиск понимать запросы с ошибками

Запрос с ошибкой или опечаткой — тоже вариант точного запроса. Пользователь вводит тип товара, его название или бренд, но неправильно. Например, «чипсы Lays», «чиспы Lay’s» или даже «xbgcs Lay’s». Baymard Institute говорит, что 42% онлайн-магазинов такие запросы не распознают.

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

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

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

Но по функциональности эта функция не может сравниться с некоторыми другими библиотеками и модулями автоисправления. Например, Hunspell или Peter Norvig’s Spelling Corrector.

  • Hunspell — это библиотека проверки орфографии с открытым исходным кодом. Ее можно добавить в Elasticsearch в качестве токенизатора. Кроме того, есть плагины Elasticsearch, которые тоже позволяют интегрировать Hunspell.
  • Peter Norvig's Spelling Corrector — это алгоритм исправления ошибок, основанный на теории вероятности и расстоянии редактирования — количестве вставок, удалений или замен, необходимых, чтобы преобразовать одно слово в другое. Чтобы интегрировать Peter Norvig's Spelling Corrector с Elasticsearch, можно также использовать плагины.

Свой словарь ошибок и опечаток

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

Фонетический поиск

У фонетического поиска могут быть разные алгоритмы. Например, Soundex, Metaphone, Double Metaphone и NYSIIS. Все они преобразуют слова в коды, которые основаны на их звучании. Это помогает обрабатывать ошибочные запросы. Чтобы настроить фонетический поиск в Elasticsearch:

  • Создайте индекс Elasticsearch и добавьте поле для фонетического представления слов.
  • Используйте анализатор Elasticsearch «phonetic», чтобы преобразовать слова в фонетическое представление.
  • Индексируйте данные с фонетическим представлением слов.
  • Используйте фонетический поиск Elasticsearch, чтобы найти «чипсы Lay’s» по запросу «чипсы лейс».

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


Еще по теме: