Определение качества результатов поиска в Lucene - PullRequest
2 голосов
/ 14 ноября 2011

Я искал нормализацию оценки в течение нескольких дней (, теперь я знаю, что этого нельзя сделать ) в Lucene, используя список рассылки, вики, посты блога и т. Д. Я собираюсь раскрыть мою проблемупотому что я не уверен, что нормализация баллов - это то, что нужно нашему проекту.

Справочная информация : В нашем проекте мы используем Solr поверх Lucene с пользовательскими RequestHandlers и SearchComponents.Для данного запроса нам нужно определить, когда запрос получил плохие результаты для запуска различных действий.

Допущения : неизменный индекс (после индексации он не обновляется) и та же типология запроса (dismax qparser с тем же повышением поля, без функций повышения или запросов на повышение).

Проблема : Мы знаем, что нормализация оценки не осуществима.Но есть ли какой-нибудь способ определить (используя TF / IDF и допущения повышения поля), когда результаты поиска соответствуют низкому качеству результатов?

Пример: у нас есть индекс с научными работами и другой с информацией медцентра.Когда пользователь запрашивает первый индекс и получает плохие результаты (выводя его из оценки?), Мы хотим запросить второй индекс и объединить результаты, используя некоторый порог (порог оценки?)

Заранее спасибо

1 Ответ

1 голос
/ 15 ноября 2011

Вы правы в том, что нормализация оценок по различным запросам не имеет смысла, поскольку почти все показатели сходства основаны на частоте терминов, которая, конечно, является локальной для запроса.

Однако я думаю, что было бы целесообразно сравнить оценки в этом особом случае, который вы описываете, если только вы переопределите сходство по умолчанию для использования IDF, рассчитанного совместно для обоих индексов.Например, вы могли бы легко добиться этого, сохранив все документы в одном индексе и добавив дополнительное (и скрытое для пользователей) поле типа.Затем вы можете сравнить абсолютные значения, возвращаемые этими запросами.

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

...