1

我對如何評估信息的問題召回了一些思路和方向檢索結果是好還是不好,如計算如何衡量排名,AP,MAP,對IR評價

相關文件級別,召回,精度,AP,MAP .....

當前,一旦用戶輸入查詢,系統能夠從數據庫中檢索文檔。問題是我不知道如何做評估。

我得到了一些公共數據集,如「克蘭菲爾德集」 dataset link 它包含

1.document 2.query 3.relevance assesments

   DOCS QRYS SIZE* 
Cranfield 1,400 225 1.6 

我想知道如何使用做評價通過使用「克蘭菲爾德集合」來計算 相關文件等級,召回率,精度,AP,MAP .....

我可能需要一些想法和方向。不要求如何編寫程序。

回答

3

文檔排名

霍加皮BM25(BM代表最佳匹配)是一種用於搜索引擎根據相關性,以給定的搜索查詢的排名匹配文檔排名函數。它基於概率檢索框架。 BM25是檢索功能,其基於出現在每個文檔中的查詢術語排列一組文檔,而不管文檔內查詢術語之間的相互關係(例如,它們的相對鄰近度)如何。有關更多詳細信息,請參閱Wikipedia頁面。

準確率和查

精密措施「的所有文件,我們檢索爲相關的多少實際上是相關的?」。

Precision = No. of relevant documents retrieved/No. of total documents retrieved 

召回措施「在所有實際相關文件中,我們檢索了多少相關的文件?」。

Recall = No. of relevant documents retrieved/No. of total relevant documents 

假設,當查詢「Q」被提交到信息檢索系統(例如,搜索引擎),具有100個相關文件w.r.t.在查詢「q」時,系統從總共600個文件中檢索68個文件。在68份檢索到的文件中,有40份文件是相關的。所以,在這種情況下:

Precision = 40/68 = 58.8%Recall = 40/100 = 40%

F-得分/ F-措施的準確率和召回加權調和平均數。傳統的F-措施或平衡F-比分是:

F-Score = 2 * Precision * Recall/Precision + Recall 

平均準確

你可以認爲它是這樣的:你在Google鍵入的東西,它會顯示10個結果。如果所有這些都是相關的,這可能是最好的。如果只有一些是相關的,比如說其中的五個,那麼如果首先顯示相關的那個會更好。如果前五個是不相關的,好的只從第六個開始,那會不好呢? AP分數反映了這一點。

給予下面的例子:

enter image description here

AvgPrec兩個排名:

排名#1:(1.0 + 0.67 + 0.75 + 0.8 + 0.83 + 0.6)/6 = 0.78

排名#2:(0.5 + 0.4 + 0.5 + 0.57 + 0.56 + 0.6)/6 = 0.52

平均精確度(MAP)

MAP是多個查詢/排名的平均精度的平均值。舉例說明。

enter image description here

平均數平均精度爲兩個查詢:

對於查詢1,AvgPrec: (1.0+0.67+0.5+0.44+0.5)/5 = 0.62

對於查詢2,AvgPrec: (0.5+0.4+0.43)/3 = 0.44

所以,MAP = (0.62 + 0.44)/2 = 0.53

有時,人們使用[email protected],[email protected]作爲檢索系統的性能指標。你應該爲這樣的測試建立一個檢索系統。如果你想用Java寫你的程序,你應該考慮Apache Lucene建立你的索引。

+0

我可以問你一個關於如何排列BM25分數的問題。通過使用TF-IDF方法,我們計算文檔和查詢的IT-IDF,並比較餘弦距離來排序文檔。但如何做BM25的排名?例如,我得到了一個文件的BM25得分(得分爲:[0,-0.00993319335279988,0.11712756703100223,-0.10833186147108911,-0.08897894166003212,0.113457374095787467,1.642922484773619,0.15791141726235663,1.0831388761516576])如何使用BM25得分來做排名? ? – dd90p

+0

排名是按照通常的方式完成的,這意味着分數越高的文檔排名越高,反之亦然。 tf-idf對於相似性很有用,但是BM25對查詢和文檔之間基於文檔的相關性進行評分很有用。請參閱BM25的維基百科頁面以瞭解有關該功能的更多信息。 BM25在計算相似性時會考慮很多事情。 –

+0

好的,非常感謝。我明白了。在排序過程之後如何識別哪個文檔是相關的以及哪個與查詢無關。我們是否需要假設排名表中的前3名是相關的,其他是無關緊要的?爲了計算召回率和精度。我們需要知道相關文件的數量和不相關的文件。那麼如何識別? – dd90p

1

計算精度和召回很簡單; 精度是檢索到的所有文檔的相關檢索文檔的分數。回憶是檢索到所有相關文件的相關文件的一小部分。

例如,如果一個查詢有20個相關文檔,並且您檢索了25個文檔,其中只有14個與查詢有關,那麼: Precision = 14/25和 Recall = 14/20。

但是精確度和召回率應該以某種方式結合起來,這種方式稱爲F-Measure,它是精確度和召回率的調和平均值: F-Score = 2 * Precision *召回/精確度+召回率。

AP告訴您相關文檔在特定數量的檢索文檔中與不相關文檔的比例。假設您檢索了25個文檔,並在前10個文檔中檢索了8個相關文檔。所以AP(10)= 8/10;

如果您計算並將1到N的AP添加到N,然後將其除以N,您只需計算MAP。其中N是yoyr數據集中相關文件的總數。

+0

就我而言,我不知道與查詢有多少文檔相關。程序返回的文檔,我使用的數據集沒有標記哪個文檔與哪個查詢相關。那麼,如何衡量查詢和文檔之間的相關性? – dd90p

+0

當然它們被標記爲查詢 - 文檔相關性標籤。 只需再次查看您的數據集並閱讀自述文件。這是它的一個重要部分: qrels分爲三列: 第一個是查詢號,第二個是相關的 文件號,第三個是相關性碼。 代碼在自述文件中定義。 – Alikbar

+0

正如您所提到的,「cranqrel」具有qrels,文檔編號,相關性。但是,並非所有文檔都標註在「cranqrel」中。例如,在cran數據集中總共有1000個文檔和100個qrel。對於qrel id = 74,只有文檔576,656,575,317,574,578,541標有相關性。在我的搜索系統檢索到文檔222,333,444的情況下,但「cranqrel」沒有相關性。如何做評估? – dd90p