NLP傳統基礎(1)---BM25算法---計算文檔和query相關性


一、簡介:TF-IDF 的改進算法

https://blog.csdn.net/weixin_41090915/article/details/79053584

bm25 是一種用來評價搜索詞和文檔之間相關性的算法。通俗地說:主要就是計算一個query里面所有詞q和文檔的相關度,然后再把分數做累加操作。

我們有一個query和一批文檔Ds,現在要計算query和每篇文檔D之間的相關性分數,我們的做法是,先對query進行切分,得到單詞qi,然后單詞的分數由3部分組成:

    • 單詞qi和D之間的相關性
    • 單詞qj和query之間的相關性
    • 每個單詞的權重

最后對於每個單詞的分數我們做一個求和,就得到了query和文檔之間的分數。

二、優缺點

適用於:在文檔包含查詢詞的情況下,或者說查詢詞精確命中文檔的前提下,如何計算相似度,如何對內容進行排序。不適用於:基於傳統檢索模型的方法會存在一個固有缺陷,就是檢索模型只能處理 Query 與 Document 有重合詞的情況,傳統檢索模型無法處理詞語的語義相關性。

白話舉例:提出一個query:當下最火的女網紅是誰?

在Document集合中document1的內容為:[當下最火的男明星為鹿晗];

document2的內容為:[女網紅能火的只是一小部分]。

顯然document1和document2中都包含[火]、[當下]、[網紅]等詞語。

但是document3的內容可能是:[如今最眾所周知的網絡女主播是周二柯]。

很顯然與當前Query能最好匹配的應該是document3,可是document3中卻沒有一個詞是與query中的詞相同的(即上文所說的沒有“精確命中”),此時就無法應用BM25檢索模型。

三、算法核心:

https://blog.csdn.net/weixin_41090915/article/details/79053584

 四、傳統TF-IDF vs. BM25

    傳統的TF-IDF是自然語言搜索的一個基礎理論,它符合信息論中的熵的計算原理,雖然作者在剛提出它時並不知道與信息熵有什么關系,但你觀察IDF公式會發現,它與熵的公式是類似的。實際上IDF就是一個特定條件下關鍵詞概率分布的交叉熵。

    BM25在傳統TF-IDF的基礎上增加了幾個可調節的參數,使得它在應用上更佳靈活和強大,具有較高的實用性。

BM25中的TF

    傳統的TF值理論上是可以無限大的。而BM25與之不同,它在TF計算方法中增加了一個常量k,用來限制TF值的增長極限。下面是兩者的公式:

傳統 TF Score = sqrt(tf) BM25的 TF Score = ((k + 1) * tf) / (k + tf)

下面是兩種計算方法中,詞頻對TF Score影響的走勢圖。從圖中可以看到,當tf增加時,TF Score跟着增加,但是BM25的TF Score會被限制在0~k+1之間。它可以無限逼近k+1,但永遠無法觸達它。這在業務上可以理解為某一個因素的影響強度不能是無限的,而是有個最大值,這也符合我們對文本相關性邏輯的理解。 在Lucence的默認設置里,k=1.2,使用者可以修改它。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM