В
статья · 4 мин чтения· Команда AISSE

Векторный поиск по тексту на примере каталога

Разбираем на пяти карточках, что именно происходит при векторном поиске: какой текст берётся, как считается близость и почему выдача выглядит так.

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

Каталог для примера

Возьмём пять позиций из парка спецтехники:

  • Экскаватор-погрузчик, ковш 0,3 м³, глубина копания 4,5 м.
  • Мини-погрузчик с бортовым поворотом, ширина 1,6 м.
  • Автокран 25 т, стрела 21 м.
  • Кран-манипулятор, борт 6 м, стрела 8 т/м.
  • Самосвал 10 м³.

Каждая карточка — это название, описание и характеристики.

Что именно попадает в вектор

Не вся карточка целиком. Обычно собирается компактный текст из полей, которые несут смысл:

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

Цена, артикул и складские коды в вектор не идут: смысла в них нет, а шум они добавляют. Их место — в фильтрах и в точном поиске.

Итог для первой карточки может выглядеть так: «Экскаватор-погрузчик. Земляные работы: копка траншей и котлованов, планировка, погрузка грунта. Ковш 0,3 кубометра, глубина копания до 4,5 метра».

Обратите внимание: слово «траншея» появилось не в названии, а в описании назначения. Именно за него зацепится поиск.

Как считается близость

Вектор запроса и вектор карточки сравниваются по углу между ними — чем меньше угол, тем выше близость. Результат обычно приводят к числу от 0 до 1.

Что это значит на практике:

  • 0,8 и выше — уверенное попадание в задачу;
  • 0,5–0,7 — тематически рядом, но нужно смотреть глазами;
  • ниже 0,3 — случайное совпадение, показывать такое вредно.

Конкретные пороги подбираются под каталог: на узком ассортименте карточки похожи друг на друга, и числа сдвигаются.

Три запроса и что произойдёт

«Выкопать траншею под водопровод»

Наверху окажется экскаватор-погрузчик: у него в описании прямо названы траншеи и копка. Мини-погрузчик будет ниже — он тематически близок, но копает иначе. Автокран и самосвал получат низкую близость.

«Поднять оборудование на крышу»

Первым пойдёт автокран, вторым кран-манипулятор. Разделить их поиск сам не сможет: оба про подъём. Здесь нужен либо уточняющий вопрос про высоту и вес, либо фильтр по характеристикам.

«Вывезти строительный мусор»

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

Почему выдача иногда выглядит странно

Три типичные причины:

  1. Описание не про назначение. Если в карточке только характеристики, вектор описывает железо, а не работу.
  2. Одинаковые описания. Скопированные тексты делают карточки неразличимыми для модели.
  3. Слишком длинный текст. Когда в вектор уходит вся страница с доставкой и реквизитами, смысл товара размывается.

Что с этим делать

  • Добавьте в каждую карточку одно предложение о назначении.
  • Уберите из индексируемого текста служебные блоки: доставка, гарантия, реквизиты.
  • Разнесите похожие позиции по описанию: чем они отличаются на деле.
  • Поставьте порог отсечения и честно отвечайте «не нашли», если он не пройден.

Вывод и следующий шаг

Векторный поиск ищет по тому тексту, который вы ему дали. Качество выдачи почти целиком определяется тем, написано ли в карточке, для чего эта позиция нужна.

Следующий шаг: откройте пять карточек своего каталога и проверьте, есть ли в них хоть одно предложение о назначении. Если нет — начните с них.

Частые вопросы

Какие поля включать в векторизацию?

Название, категорию, назначение и характеристики словами. Цены, коды и служебные тексты — нет.

Что делать с очень длинными описаниями?

Обрезать до смысловой части или разбивать на фрагменты и индексировать их отдельно.

Почему две разные карточки дают одинаковую выдачу?

Скорее всего, у них одинаковые описания. Модель различает тексты, а не артикулы.

Как подобрать порог отсечения?

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

Нужно ли пересчитывать векторы при смене цены?

Нет. Пересчёт нужен при изменении названия, описания или характеристик.

Помогает ли векторный поиск с опечатками?

Обычно да, потому что смысл слова сохраняется. Но точные модели и артикулы лучше искать точным совпадением.

Ярлыки: Поиск

Статья полезна?

Комментарии

Пока никто не написал. Будьте первым.

Написать комментарий

Комментарии выходят после проверки. Ссылки на другие сайты не пропускаем.

Читайте дальше

Проверьте на своём каталоге
Регистрация, загрузка каталога и первый осмысленный ответ — за один день.
Начать бесплатно Задать вопрос