Я использую elasticsearch, чтобы найти документы, похожие на данный документ, с помощью запроса «больше похоже на этот».
Есть ли простой способ получить оценку elasticsearch от 0 до 1 (используя косинусное сходство)?
Спасибо!
Я использую elasticsearch, чтобы найти документы, похожие на данный документ, с помощью запроса «больше похоже на этот».
Есть ли простой способ получить оценку elasticsearch от 0 до 1 (используя косинусное сходство)?
Спасибо!
Вы можете изучить Оценка функции Elasticsearch, а точнее функции script_score
и field_value_factor
. Это позволит вам взять оценку из оценки по умолчанию (_score
) и улучшить или заменить ее другими способами. Это действительно зависит от того, какое усиление или трансформацию вы хотите. Модель оценки по умолчанию учитывает Векторная модель, но и многое другое.
Я не думаю, что это возможно получить напрямую.
Но, возможно, этот обходной путь имеет смысл?
Elasticsearch всегда возвращает max_score
в hits
документе.
Вы можете разделить документ _score
на max_score
. Отчет с наивысшим значением будет оценен как 1, документы, которые не так похожи на данный, будут оценены меньше.
Elasticsearch использует логическую модель для поиска совпадающих документов и формулу, называемую практической функцией оценки, для расчета релевантности. Эта формула заимствует концепции из термина «частота/обратная частота документа» и модели векторного пространства, но добавляет более современные функции, такие как коэффициент координации, нормализация длины поля и повышение термина или предложения запроса.