2016-11-07 258 views
-1

我寫了一個程序來做信息檢索和提取。用戶在搜索欄中輸入查詢,程序就可以顯示相關的txt結果,如相應的句子和文章組成的句子。信息檢索評估python精度,召回率,f分數,AP,MAP

我做了一些研究如何評估結果。我可能需要計算精度,召回,AP,MAP ....

但是,我是新來的。如何計算結果。由於我的數據集沒有標記,我沒有做分類。我使用的數據集是BBC新聞的文章。有200篇文章。我把它命名爲001.txt,002.txt ...... 200.txt

這將是很好,如果你有任何想法如何在python中進行評估。謝謝。

回答

0

評估有兩個要領。首先是一個測試資源,其中包含文檔的排名或其相關標籤(相關或不相關)的排名,用於實驗(如用戶點擊等等,主要用於運行IR系統時),或通過衆包進行製作。評估的第二個重要部分是用於評估具有測試集合的IR系統的公式。 因此,根據您所說的話,如果您沒有標註測試集合,則無法評估您的系統。

0

由於您是新手,我正在簡要介紹如何在信息檢索系統中計算精度,召回率,fscore,AP和MAP。

準確率和查

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

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]作爲檢索系統的性能指標。要做實驗,你可以使用衆所周知的AOL Search Query Logs數據集來建立一個基於檢索的系統(你只需要一個檢索功能),然後做實驗。我給出了文檔排序功能的一個例子。

文件排序/檢索功能

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

相關問題