Я немного запутался в стратегии оценки lucene. Я знаю, что скоринг формула Lucene является как:Lucene scoring: в каком контексте используется queryNorm?
score(q,d) = coord(q,d) x queryNorm(q) X SUM <t_in_q> (tf(t_in_d) x idf(t)^2 x t.getBoost() x norm(t,d))
Я понимаю, каждый компонент в этой формуле, кроме queryNorm (д). По словам официальной документации,
queryNorm (д) представляет собой нормирующий коэффициент, используемый, чтобы сделать счеты между запросов сопоставимыми. Этот фактор не влияет на рейтинг документа (поскольку все ранжированные документы умножаются на один и тот же коэффициент), но скорее всего просто пытается сделать оценки из разных запросов (или даже разных индексов) сопоставимыми.
Почему мне нужно сравнивать баллы между различными запросами? В другом слове вы могли бы привести пример , чтобы показать, в каком контексте queryNorm (q) полезен?
Это интересный ключ. Я все еще на лодке, где предоставление общим пользователям большего контроля над queryNorm не вредит поисковому запросу. Однако, поскольку он вычисляется по весу, о нем мало затрат на вычисление. – Denzel
Так что, вернувшись к моему вопросу, сравнение баллов по запросам больше проявляется в персонале машинного обучения, таком как кластеризация документов, и редко встречается в обычной поисковой работе, верно? – Denzel
Существуют стратегии, позволяющие сопоставлять запросы, не обязательно отправляясь на машинное обучение (см. [Косинус сходство] (например, http://en.wikipedia.org/wiki/Cosine_similarity)). В Lucene его избегают. Решение для сравнения оценок между различными запросами - это переосмыслить ваши требования. – femtoRgon