文檔排名
霍加皮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分數反映了這一點。
給予下面的例子:
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是多個查詢/排名的平均精度的平均值。舉例說明。
平均數平均精度爲兩個查詢:
對於查詢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建立你的索引。
我可以問你一個關於如何排列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
排名是按照通常的方式完成的,這意味着分數越高的文檔排名越高,反之亦然。 tf-idf對於相似性很有用,但是BM25對查詢和文檔之間基於文檔的相關性進行評分很有用。請參閱BM25的維基百科頁面以瞭解有關該功能的更多信息。 BM25在計算相似性時會考慮很多事情。 –
好的,非常感謝。我明白了。在排序過程之後如何識別哪個文檔是相關的以及哪個與查詢無關。我們是否需要假設排名表中的前3名是相關的,其他是無關緊要的?爲了計算召回率和精度。我們需要知道相關文件的數量和不相關的文件。那麼如何識別? – dd90p