TF-IDF(term frequency–inverse document frequency,詞頻-逆向文件頻率)是一種用於信息檢索(information retrieval)與文本挖掘(text mining)的常用加權技術。
TF-IDF是一種統計方法,用以評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨着它在文件中出現的次數成正比增加,但同時會隨着它在語料庫中出現的頻率成反比下降。
計算
TF-IDF的主要思想是:如果某個單詞在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。
(1)TF是詞頻(Term Frequency)
詞頻(TF)表示詞條(關鍵字)在文本中出現的頻率。
這個數字通常會被歸一化(一般是詞頻除以文章總詞數), 以防止它偏向長的文件。
其中 \(n_{i,j}\)是該詞在文件\(d_j\)中出現的次數,分母則是文件\(d_j\)中所有詞匯出現的次數總和;
(2) IDF是逆向文件頻率(Inverse Document Frequency)
逆向文件頻率 (IDF) :某一特定詞語的IDF,可以由總文件數目除以包含該詞語的文件的數目,再將得到的商取對數得到。如果包含詞條t的文檔越少, IDF越大,則說明詞條具有很好的類別區分能力。
其中,$|D| \(是語料庫中的文件總數。\) |{j:t_i∈d_j}| \(表示包含詞語\) t_i$ 的文件數目(即 \(n_{i,j}≠0\) 的文件數目)。如果該詞語不在語料庫中,就會導致分母為零,因此一般情況下使用$ 1+|{j:t_i∈d_j}|$(Laplace修正)
(3)TF-IDF實際上是:TF * IDF
某一特定文件內的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產生出高權重的TF-IDF。因此,TF-IDF傾向於過濾掉常見的詞語,保留重要的詞語。
優缺
TF-IDF算法非常容易理解,並且很容易實現,但是其簡單結構並沒有考慮詞語的語義信息,無法處理一詞多義與一義多詞的情況。
TF-IDF 采用文本逆頻率 IDF 對 TF 值加權取權值大的作為關鍵詞,但 IDF 的簡單結構並不能有效地反映單詞的重要程度和特征詞的分布情況,使其無法很好地完成對權值調整的功能,所以 TF-IDF 算法的精度並不是很高,尤其是當文本集已經分類的情況下。
在本質上 IDF 是一種試圖抑制噪音的加權,並且單純地認為文本頻率小的單詞就越重要,文本頻率大的單詞就越無用。這對於大部分文本信息,並不是完全正確的。IDF 的簡單結構並不能使提取的關鍵詞, 十分有效地反映單詞的重要程度和特征詞的分布情 況,使其無法很好地完成對權值調整的功能。尤其是在同類語料庫中,這一方法有很大弊端,往往一些同類文本的關鍵詞被蓋。
TF-IDF算法實現簡單快速,但是仍有許多不足之處:
(1)沒有考慮特征詞的位置因素對文本的區分度,詞條出現在文檔的不同位置時,對區分度的貢獻大小是不一樣的。
(2)按照傳統TF-IDF,往往一些生僻詞的IDF(反文檔頻率)會比較高、因此這些生僻詞常會被誤認為是文檔關鍵詞。
(3)傳統TF-IDF中的IDF部分只考慮了特征詞與它出現的文本數之間的關系,而忽略了特征項在一個類別中不同的類別間的分布情況。
(4)對於文檔中出現次數較少的重要人名、地名信息提取效果不佳。