2017-03-06 70 views
0

給定查詢列表並給出一個文檔,我想根據它們與給定文檔的相關程度對查詢進行排名。根據相關性對一個文檔排列多個查詢

對於每個查詢,我計算了查詢中每個單詞的詞頻。 (術語頻率定義爲單詞在文檔中出現的次數除以文檔中的單詞總數)

現在,我總結了查詢中每個術語的術語頻率。

例如:

search query: "Hello World" 
document: "It is a beautiful world" 

tf for 'Hello': 0 
tf for 'World': 1/5 = 0.2 

total tf for query 'Hello World' = 0 + 0.2 = 0.2 

我的問題是,什麼是我的正常化詞頻每個查詢的最佳方式?所以長查詢不會導致較大的相關性分數。

而且,有沒有更好的方法讓我評分查詢,而不僅僅是使用tf分數?

我不能在我的場景中使用tf-idf,因爲我只對一個文檔進行排名。

回答

1

在回答你的問題之前,我想糾正你對術語頻率的定義。您定義術語頻率的方式實際上稱爲maximum likelihood

所以,我正在解釋你的第一個問題如下。

爲每個查詢規範最終分數(最大似然總和)的最佳方法是什麼?

一個簡單的方法是按查詢長度劃分得分,以便較長的查詢不會收到較高的得分。先進的技術也用於計算搜索引擎環境下的相關性分數。

有沒有比僅使用tf分數更好的方式來評分查詢?

是的,當然!衆所周知的廣泛使用的排名方法之一Okapi BM25可以在這裏用很少的修改。您可以將您的目標任務視爲排名問題。

因此,給定一個文檔,根據它們與文檔的相關性對一組查詢進行排序。

這是搜索引擎環境中衆所周知的問題。我鼓勵你參加任何大學的任何信息檢索課的講座。例如,這個lecture slide談論與您的需要一致的概率排名原則。

1

關於無法使用idf的說法,'我不能在我的場景中使用tf-idf,因爲我僅將它們排序爲僅針對一個文檔。',你可以這樣做:

請記住,您的排名(可檢索)單位是查詢。因此,請考慮參考標準術語在文檔和查詢之間的角色逆轉。 換句話說,將您的查詢視爲僞文檔並將您的文檔視爲僞查詢。

然後,您可以應用整個範圍的排名模型,這些排名模型利用收集統計信息(通過查詢集計算),例如,語言模型,BM25,DFR等。

相關問題