TF IDF及其演算法

2021-08-18 21:57:47 字數 2774 閱讀 9868

概念

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)的歸一化,以防止它偏向長的檔案。(同乙個詞語在長檔案裡可能會比短檔案有更高的詞數,而不管該詞語重要與否。)對於在某一特定檔案裡的詞語ti來說,它的重要性可表示為:

以上式子中 nij 是該詞ti 在檔案dj中的出現次數,而分母則是在檔案dj中所有字詞的出現次數之和。

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

其中

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

示例

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

二:根據關鍵字k1,k2,k3進行搜尋結果的相關性就變成tf1*idf1 + tf2*idf2 + tf3*idf3。比如document1的term總量為1000,k1,k2,k3在document1出現的次數是100,200,50。包含了 k1, k2, k3的docuement總量分別是 1000, 10000,5000。document set的總量為10000。 tf1 = 100/1000 = 0.1 tf2 = 200/1000 = 0.2 tf3 = 50/1000 = 0.05 idf1 = log(10000/1000) = log(10) = 2.3 idf2 = log(10000/100000) = log(1) = 0; idf3 = log(10000/5000) = log(2) = 0.69 這樣關鍵字k1,k2,k3與docuement1的相關性= 0.1*2.3 + 0.2*0 + 0.05*0.69 = 0.2645 其中k1比k3的比重在document1要大,k2的比重是0.

TF IDF及其演算法

概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會...

TF IDF及其演算法

概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會...

TF IDF及其演算法

tf idf及其演算法 概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的...