Оценка результатов поискового запроса в python: ранжированный список против одного правильного документа, помеченного вручную

Учитывая следующий прогнозируемый ранжированный список документов:

query1_predicted = [1381, 1637, 646, 1623, 774, 1764, 92, 12, 642, 463, 613, ...]

и этот отмеченный вручную лучший выбор:

query1_manual = 646

Есть ли какая-либо подходящая метрика из поиска информации, уже реализованная в python, для ранжирования этого результата?

Я не думаю, что NDCG работает для меня, потому что мне не хватает истинного и полностью ранжированного список документов. Я предполагаю, что отзыв, точность, F-оценка и MAP также не будут работать, пока у меня нет полного списка ранжированных вручную результатов для каждого запроса, указывающих на релевантность документа.

Кстати: длина прогнозируемого списка равна общему количеству документов в моей коллекции:

len(query1_predicted) = len(documents)

Спасибо за помощь в продвижении!


person Peete    schedule 03.04.2019    source источник


Ответы (1)


Идея состоит в том, чтобы объединить метрики точности и полноты. Например, если ваш запрос возвращает список, в котором правильный документ находится первым, вы можете сказать, что ваша точность и полнота составляют 100%. Если он на втором месте, у вас снова 100% точность, но ваш отзыв падает до 50% и так далее. Я знаю, что этот подход не идеален, но он дает хорошее представление о ваших результатах с хорошо известными показателями.

person Anoroah    schedule 03.04.2019
comment
Спасибо за ваш ответ! Если я вас правильно понимаю, мой отзыв падает на 1/2 с каждым документом, расположенным дальше по прогнозируемому списку, где находится выбранный вручную документ. Таким образом, я могу получить очень низкий отзыв со 100% точностью. Я предполагаю, что мне нужно нелинейное решение для объединения обеих мер. Разве F-score не решает эту проблему? Не могли бы вы помочь мне с какой-нибудь формулой с точностью (P) и полнотой (R) для вычисления значения оценки? - person Peete; 03.04.2019
comment
Пересчет упадет до 1/3, если правильный документ будет третьим, до 1/4 для четвертого и так далее. Вы можете попробовать счет f1, который использует точность и отзыв. Кроме того, кривые ROC и Precision-Recall дают хорошее представление о производительности вашего метода. - person Anoroah; 03.04.2019