Например, запрос:
python machine learning
Почему документ, где эти слова встречаются несколько раз, не обязательно будет выше документа, где они встречаются реже?
🔤 Здесь появляется BM25 — классический алгоритм ранжирования текстовых документов.
Он учитывает:
TF — насколько часто термин встречается в документе;
IDF — насколько термин редкий во всей коллекции;
длину документа — чтобы длинные тексты не получали преимущество просто из-за количества слов.
Упрощённо:
score =
TF × IDF × поправка на длину документа
💡 BM25 — не нейросеть и не semantic search. Он работает с совпадением терминов, поэтому отлично подходит как базовый слой поиска и часто используется вместе с векторным поиском в hybrid search.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста
