Prog Academy
RU UA
ИИ и машинное обучение

Что такое семантический поиск?

Семантический поиск — это поиск по смыслу запроса, а не по совпадению слов. Запрос и документы переводятся в эмбеддинги, после чего система находит записи, векторы которых ближе всего к вектору запроса.

Классический полнотекстовый поиск ищет вхождения слов и потому промахивается на синонимах, опечатках и переформулировках. Семантический поиск найдёт статью «условия возврата товара» по запросу «как вернуть покупку», потому что сравнивает смыслы.

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

Где применяется

Смысловой поиск применяют там, где пользователи формулируют запрос своими словами: база знаний службы поддержки, внутренний портал с регламентами, каталог товаров, архив статей. Он находит нужное, даже если в документе использована совсем другая терминология.

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

Пример

Сотрудник ищет «что делать, если клиент передумал». В регламенте эта ситуация называется «аннулирование заказа до отгрузки» — ни одного общего слова. Поиск по ключевым словам вернёт пустоту, смысловой найдёт нужный пункт.

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

Чем семантический поиск отличается от поиска по ключевым словам?

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

Что такое гибридный поиск?

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

Нужна ли для семантического поиска языковая модель?

Для самого поиска — нет, достаточно модели эмбеддингов, которая заметно меньше и дешевле. Языковая модель нужна на следующем шаге, если по найденным фрагментам требуется сформулировать связный ответ, а не просто показать список документов.

Как оценить качество такого поиска?

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

Связанные термины