《數學之美》第11章—如何確定網頁和查詢的相關性(TF-IDF演算法)
文章目錄
如何查詢關於“原子能的應用”的網頁?
大致思路
- 第一步,在索引中找到包含這三個詞的網頁(這大約能返回千萬以上個結果)
- 第二步,給這些網頁排序:
- 1)把網頁本身質量好的排在前面 (Page Rank 演算法)
- 2)與查詢關鍵詞“原子能應用”相關性高的網頁排在前面(TF-IDF 演算法)
問題描述
如何度量查詢(query)與網頁的相關性?
解決過程
一、使用“總詞頻”
“原子能的應用”可以分為三個關鍵詞“原子能、的、應用”。
1、直覺上,關鍵詞出現次數較多的網頁應該比出現較少的網頁相關性高;
2、 存在問題:那就是篇幅長的網頁比篇幅短的網頁佔便宜,長的網頁其包含地關鍵詞更多一些;
3、 所以,需要根據網頁的長度,對關鍵詞的次數進行歸一化: **
- 用關鍵詞的次數除以網頁的總詞數——即關鍵詞的頻率【Term Frequency】**
所以,當一個查詢包含N個關鍵詞
,他們在一個特定網頁中的詞頻分別為:
,那麼這個查詢和該網頁的相關性(相似度)就是各個關鍵詞在網頁中的總詞頻:
二、加入IDF權重
4、 存在問題:
1) “停止詞 Stop Word”(的,是,地,和…),在總詞頻中佔比會非常高,並且其對確定網頁主題幾乎沒有什麼用,所以在度量相關性的時候不應該考慮他們的詞頻;
2)“通用詞”與“專用詞”(應用與原子能),在相關性排序中各自的重要程度又不相同;
5、所以,需要對每一個詞賦予一個權重,其滿足以下條件
1)一個詞預測主題的能力越強,權重越大,反之權重越小;
2)停止詞的權重為 0 ;
6、資訊檢索中,“逆文字頻率指數”(Inverse Document Frequency):
表示關鍵詞
出現在不同網頁的次數,
表示全部網頁數目。如果一個關鍵詞大量出現在網頁中,就是看到它仍然不會清楚要找什麼內容,其對應的權重越小;如果出現在很少的網頁,通過它就很容易鎖定目標,權重也就應該很大。
例如,假設中文網頁數 ,停止詞“的”在的網頁 ,那麼它的 ,加入“原子能”出現在200萬個網頁中,則它的權重 。
7、所以,利用IDF,相關性的計算公式就由詞頻簡單的求和變成了加權求和:
三、IDF概念的理論支撐——資訊理論
8、 IDF的概念,來自於特定條件下關鍵詞的概率分佈的交叉熵(即,資訊理論):
1)一個查詢(query)中的每一個關鍵詞(key word)
的權重應該反映這個詞對查詢來講提供了多少資訊:
> 可以使用每個詞的資訊量作為他的權重
是關鍵詞
在語料庫中的詞頻(概率);N是整個語料庫的大小,是個可以省略的常數。則上面公式可以簡化成:
2)上式,有一個缺陷:兩個出現頻率TF相同的詞,當一個集中出現在特定文章中,而另一個分散在多篇文獻中,顯然第一個詞有更高的解析度,它的權重應該更大。顯然,更好的權重公式應該反映出關鍵詞的解析度。
3)基本假設:
- 每個文獻大小基本相同,均為 個詞,即:
為全部網頁數
- 一個關鍵詞在文獻中一旦出現,不論次數多少,貢獻都等同。即,一個詞要麼在一個文獻中出現,且次數為 ,要麼是 0 。( )
為 出現的網頁數
4)根據假設,可以得到關鍵詞的資訊量: