tf-idf(英語:term frequency–inverse document frequency)是一種用於資訊檢索文本挖掘的常用加權技術。tf-idf是一種統計方法,用以評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。tf-idf加權的各種形式常被搜索引擎應用,作為文件與用戶查詢之間相關程度的度量或評級。除了tf-idf以外,互聯網上的搜尋引擎還會使用基於連結分析的評級方法,以確定文件在搜尋結果中出現的順序。

原理

編輯

在一份給定的文件裡,詞頻(term frequency,tf)指的是某一個給定的詞語在該文件中出現的頻率。這個數字是對詞數(term count)的標準化,以防止它偏向長的文件。(同一個詞語在長文件裡可能會比短文件有更高的詞數,而不管該詞語重要與否。)對於在某一特定文件裡的詞語 來說,它的重要性可表示為:

 

以上式子中假設文件 中共有k個詞語,  在文件 中出現的次數。因此,分子 就是該詞在文件 中的出現次數,而分母則是在文件 中所有字詞的出現次數之和。


逆向文件頻率(inverse document frequency,idf)是一個詞語普遍重要性的度量。某一特定詞語的idf,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到。通常,這個對數取以10為底(記為lg),如下所示:

 

然而,根據不同的應用場景和領域,也有使用其他類型的對數,例如以2為底的對數(提供信息量的度量,以比特為單位)或自然對數(常用於自然語言處理和其他計算應用中)。選擇哪種對數底數取決於特定情境的需求:

其中

  • |D|:語料庫中的文件總數
  •  :包含詞語 的文件數目(即 的文件數目)如果詞語不在資料中,就導致分母為零,因此一般情況下使用 

然後

 

某一特定文件內的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產生出高權重的tf-idf。因此,tf-idf傾向於過濾掉常見的詞語,保留重要的詞語。

例子

編輯

有很多不同的數學公式可以用來計算tf-idf。這邊的例子以上述的數學公式來計算。詞頻(tf)是一詞語出現的次數除以該文件的總詞語數。假如一篇文件的總詞語數是100個,而詞語「母牛」出現了3次,那麼「母牛」一詞在該文件中的詞頻就是3/100=0.03。而計算文件頻率(IDF)的方法是以文件集的檔案總數,除以出現「母牛」一詞的檔案數。所以,如果「母牛」一詞在1,000份文件出現過,而文件總數是10,000,000份的話,其逆向文件頻率就是lg(10,000,000 / 1,000)=4。最後的tf-idf的分數為0.03 * 4=0.12。

在向量空間模型裡的應用

編輯

tf-idf權重計算方法經常會和餘弦相似性(cosine similarity)一同使用於向量空間模型中,用以判斷兩份文件之間的相似性

tf-idf的理論依據及不足

編輯

tf-idf算法是建立在這樣一個假設之上的:對區別文檔最有意義的詞語應該是那些在文檔中出現頻率高,而在整個文檔集合的其他文檔中出現頻率少的詞語,所以如果特徵空間坐標系取tf詞頻作為測度,就可以體現同類文本的特點。另外考慮到單詞區別不同類別的能力,tf-idf法認為一個單詞出現的文本頻數越小,它區別不同類別文本的能力就越大。因此引入了逆文本頻度idf的概念,以tf和idf的乘積作為特徵空間坐標系的取值測度,並用它完成對權值tf的調整,調整權值的目的在於突出重要單詞,抑制次要單詞。但是在本質上idf是一種試圖抑制雜訊的加權,並且單純地認為文本頻率小的單詞就越重要,文本頻率大的單詞就越無用,顯然這並不是完全正確的。idf的簡單結構並不能有效地反映單詞的重要程度和特徵詞的分布情況,使其無法很好地完成對權值調整的功能,所以tf-idf法的精度並不是很高。

此外,在tf-idf算法中並沒有體現出單詞的位置信息,對於Web文檔而言,權重的計算方法應該體現出HTML的結構特徵。特徵詞在不同的標記符中對文章內容的反映程度不同,其權重的計算方法也應不同。因此應該對於處於網頁不同位置的特徵詞分別賦予不同的係數,然後乘以特徵詞的詞頻,以提高文本表示的效果。

參考資料

編輯
  • Salton, G. and McGill, M. J. 1983 Introduction to modern information retrieval. McGraw-Hill, ISBN 0-07-054484-0.
  • Salton, G., Fox, E. A. and Wu, H. 1983 Extended Boolean information retrieval. Commun. ACM 26, 1022–1036.
  • Salton, G. and Buckley, C. 1988 Term-weighting approaches in automatic text retrieval. Information Processing & Management 24 (5): 513–523.

外部連結

編輯