宋琳璇
首先介紹一下TF-IDF算法的官方概念:TF-IDF是一種統計方法,用來評算估測一個詞字對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。TF-IDF加權的各種形式常常被用來搜索應用,作為文件與用戶的查詢之間的相關程度的度量或評級。
接下來看一下TF-IDF算法的核心使用概念:如果某個詞或短語在一篇文章中出現的頻率TF高,并且在其他文章中很少出現,則認為這個詞或者這個短語具有很好的類別區分能力,適合用來進行分類。同時,如果一篇文章中出現了我們要查的詞,我們就會認為該文章與我們要查的詞有比較大的相關性。延續這種思路,如果一篇文檔中出現要查詢的詞的次數越多,該文章與要查詢的詞之間的相關性應該越大。
具體我們應該如何使用TF-IDF算法,可以采用如下思路:在TF-IDF算法中,先定義一個TF(t,d)表示詞語t在文章d中的出現次數。我們可以通過關鍵詞密度查詢工具來查詢該詞的TF值,但僅僅考慮詞出現的次數是不行的,因為我們通常查詢的都是兩個以上的詞,比如“AA BB”或者“XX YY ZZ”等形式。如果是這種形式的查詢,到底哪個詞出現的次數應該作為重要性的依據呢?這就引出了IDF來測量詞的稀缺度,在這里我們定義IDF為IDF(t)= log(N / DF(t))(具體含義下段會解釋)。
其中DF(t):該詞(以t為代表)在多少篇文章中出現過。查詢辦法是通過google搜索某一個詞t,得到的搜索結果我們可以理解為DF(t)。
另外,我們定義一個大寫字母N來表示總文章數。這個數值雖然在我們工作中沒有什么實際的用處,因為我們不可能知道搜索引擎索引了多少文章。但是對于搜索引擎來說,N卻是一個判定詞權重的數據。
接下來是log:這個也不是我們工作中需要考慮的數值。一般來說,log的底數可以隨便設定,我們采用+1的方式來抑制多倍夸張情況的出現。
接下來我們看一段實例,如何真正的去操作TF-IDF算法:
TF-IDF值 = TF×IDF(TF乘以IDF)=(1+log tf(t,d))× log(N / DF(t))。以《網站權重 SEO》和《SEO學習:什么是網站權重》這篇文章為例:“網站權重”TF值為:w=1+log 31(次出現)=2.49。“網站權重”IDF值為:log(1萬億(假設值,08年數據)/ 23,200,000篇)=4.63。“網站權重”TF-IDF值為:2.49*4.63=11.53。“SEO”TF值為:w=1+log 34(次出現)=2.53,“SEO”IDF值為:(1萬億(假設值,08年數據)/ 1,220,000,000篇)=2.91。“SEO”TF-IDF值為:2.53*2.91=7.36。我們得到了“網站權重”TF-IDF值11.53和“SEO”TF-IDF值7.36。
TF-IDF值越大,文章與索引詞越相關;只有當“網站權重”這個詞權重高的頁面,才有可能在“網站權重 SEO”這個搜索結果的排名上有比較好的效果。