BM25-nlp經典算法

前兩天老師給我們講解了BM25算法,其中包括由來解釋,以及算法推導,這裏我再將其整理,這裏我不講解之前的BIM模型,大家有興趣可以自行了解。
Okapi BM25:一個非二值的模型
bm25 是一種用來評價搜索詞和文檔之間相關性的算法,它是一種基於概率檢索模型提出的算法。
舉個例子:我們查詢關鍵詞red apple ,將其分詞爲red 和apple,我們在我們的1000個文檔中分別索引這兩個詞,但是我們發現red的似乎經常出現,然而apple出現頻率不高,那我們將這一千個文檔進行得分排序,如果某個文檔中red出現的次數很高,而apple出現次數很少,安裝普通的得分排序的話(出現一次算一分)那我們red出現越多,它的分數就會越高,但是這卻違背了我們所需要,因爲我們檢索的是red apple,所以,BM25就是來消除這種相關性不高的問題,即爲我們所查詢的詞有一個權值比重,即爲idf(這裏我們後面會講解)。
1.BM25模型
在這裏插入圖片描述
其實,這個公式不難理解,他只有三個部分
1.計算單詞權重:在這裏插入圖片描述
2.單詞和文檔的相關度:在這裏插入圖片描述
3.單詞和query(關鍵詞)的相關性:在這裏插入圖片描述

2.idf解釋(單詞權重計算)
在上面我們已經看到了公式,但是還不是很理解是什麼意思,所以這裏我們慢慢理解體會:
N:是所有的文檔數目.
dft:是我們的關鍵詞通過倒排算法得出的包含t的文檔數目(即爲上述例子中,red 在1000個文檔中出現的文檔次數)
例如,我們在1000個文檔中出現red的次數爲10,那麼N/dft=100,即可算出他的權重。
3.tf解釋(單詞和文檔相關度)
其實,BM25最主要的方面在於 idftf,就是查詢詞的權重查詢詞和文檔的相關性。
tftd:tftd 是詞項 t 在文檔 d 中的權重。
Ld 和 Lave :分別是文檔 d 的長度及整個文檔集中文檔的平均長度。
k1:是一個取正值的調優參數,用於對文檔中的詞項頻率進行縮放控制。如果 k 1 取 0,則相當於不考慮詞頻,如果 k 1取較大的值,那麼對應於使用原始詞項頻率。
b :是另外一個調節參數 (0≤ b≤ 1),決定文檔長度的縮放程度:b = 1 表示基於文檔長度對詞項權重進行完全的縮放,b = 0 表示歸一化時不考慮文檔長度因素。
4.單詞和query(關鍵詞)的相關性解釋
tftq:是詞項t在查詢q中的權重。
k3: 是另一個取正值的調優參數,用於對查詢中的詞項tq 頻率進行縮放控制。

下面是調用AP90跑出來的數據結果(BM25):
mV0L3FxXzQwNTk0NTU0,size_16,color_FFFFFF,t_70)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章