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.

外部連結