1. 程式人生 > >大資料學習-Hadoop生態章---TF-IDF及其演算法

大資料學習-Hadoop生態章---TF-IDF及其演算法

TF-IDF及其演算法

概念:

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

原理:

在一份給定的檔案裡,詞頻 (term frequency, TF) 指的是某一個給定的詞語在該檔案中出現的次數。這個數字通常會被歸一化(分子一般小於分母 區別於IDF),以防止它偏向長的檔案。(同一個詞語在長檔案裡可能會比短檔案有更高的詞頻,而不管該詞語重要與否。)

逆向檔案頻率 (inverse document frequency, IDF) 是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總檔案數目除以包含該詞語之檔案的數目,再將得到的商取對數得到。

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

TFIDF的主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。TFIDF實際上是:TF * IDF,TF詞頻(Term Frequency),IDF反文件頻率(Inverse Document Frequency)TF表示詞條在文件d中出現的頻率(另一說:**TF詞頻(Term Frequency)**指的是某一個給定的詞語在該檔案中出現的次數)。IDF的主要思想是:如果包含詞條t的文件越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區分能力。如果某一類文件C中包含詞條t的文件數為m

,而其它類包含t的文件總數為k,顯然所有包含t的文件數n=m+k,當m大的時候,n也大,按照IDF公式得到的IDF的值會小,就說明該詞條t類別區分能力不強。(另一說:**IDF反文件頻率(Inverse Document Frequency)**是指包含詞條的文件越少IDF越大,則說明詞條具有很好的類別區分能力。)但是實際上,如果一個詞條在一個類的文件中頻繁出現,則說明該詞條能夠很好代表這個類的文字的特徵,這樣的詞條應該給它們賦予較高的權重,並選來作為該類文字的特徵詞以區別與其它類文件。這就是IDF的不足之處.

在一份給定的檔案裡,**詞頻(term frequency,TF)**指的是某一個給定的詞語在該檔案中出現的頻率。這個數字是對詞數(term count)的歸一化,以防止它偏向長的檔案。(同一個詞語在長檔案裡可能會比短檔案有更高的詞數,而不管該詞語重要與否。)對於在某一特定檔案裡的詞語 t_{i} 來說,它的重要性可表示為:
在這裡插入圖片描述
以上式子中 n_{i,j} 是該詞在檔案d_{j}中的出現次數,而分母則是在檔案d_{j}中所有字詞的出現次數之和。

逆向檔案頻率(inverse document frequency,IDF)是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總檔案數目除以包含該詞語之檔案的數目,再將得到的商取對數得到:
在這裡插入圖片描述
其中
|D|:語料庫中的檔案總數
|{ j: t_{i} \in d_{j}}| :包含詞語 t_{i} 的檔案數目(即 n_{i,j} \neq 0的檔案數目)如果該詞語不在語料庫中,就會導致被除數為零,因此一般情況下使用1 + |{j : t_{i} \in d_{j}}|
然後
在這裡插入圖片描述

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

參考 :參考資料