TF-IDF原理詳解以及python實踐

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/gzmfxy/article/details/78891139

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

 

文本向量化存在的不足

將文本分詞並向量化後,就可以得到詞彙表中每個詞在文本中形成的詞向量,我們將下面5個短文本做了詞頻統計:

不考慮停用詞,處理之後得到的詞向量如下:

如果直接將統計詞頻後的13維特徵做爲文本分類的輸入,會發現有一些問題。比如第五個個文本,我們發現"come","China"和“Travel”各出現1次,而“to“出現了兩次。似乎看起來這個文本與”to“這個特徵更關係緊密。但是實際上”to“是一個非常普遍的詞,幾乎所有的文本都會用到,因此雖然它的詞頻爲2,但是重要性卻比詞頻爲1的"China"和“Travel”要低的多。如果向量化特徵僅僅用詞頻表示就無法反應這一點,TF-IDF可以反映這一點。

 

TF-IDF原理概述

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


逆向文件頻率 (inverse document frequency, IDF) 是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到。某一特定文件內的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產生出高權重的TF-IDF。因此,TF-IDF傾向於過濾掉常見的詞語,保留重要的詞語。


TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認爲此詞或者短語具有很好的類別區分能力,適合用來分類。TFIDF實際上是:TF * IDF,TF詞頻(Term Frequency),IDF反文檔頻率。TF表示詞條在文檔d中出現的頻率。


上面是從定性上說明的IDF的作用,那麼如何對一個詞的IDF進行定量分析呢?這裏直接給出一個詞x的IDF的基本公式如下:


其中,N代表語料庫中文本的總數,而N(x)代表語料庫中包含詞x的文本總數。

 

在一些特殊的情況下上面的公式會有一些小的問題,比如某一個生僻詞在語料庫中沒有,則分母變爲0,IDF就沒有意義了,所以常用的IDF需要做一些平滑,使得語料庫中沒有出現的詞也可以得到一個合適的IDF值,平滑的方法有很多種,小修之前爲大家介紹過,最常見的IDF平滑公式之一維:


進而可以計算某一個詞的TF-IDF值:


其中TF(x)是指詞x在當前文本的詞頻。這個數字是對詞數的歸一化,以防止它偏向長的文件,(同一個詞語在長文件裏可能會比短文件有更高的詞數,而不管該詞語重要與否)。對於某一特定文件裏的詞語x來說,它的重要性可表示爲:


以上式子種分子爲x詞在第j個文件中出現的次數,而分母是在第j個文件中所有字詞的出現詞數之和。

 

TF-IDF實戰

有很多方法可以計算TF-IDF的預處理,比如genism和scikit-learn包中,這裏使用scikit-leart中的兩種方法進行TF-IDF的預處理

第一種方法爲CountVectorizer+TfidfTransformer的組合方式進行,代碼如下所示:


輸出的各個詞的TF-IDF值如下:


在(index1,index2)中:index1表示爲第幾個句子或者文檔,index2爲所有語料庫中的單詞組成的詞典的序號,之後的數字爲該詞所計算得到的TF-idf的結果值

第二種方法爲:直接調用TfidfVectorizer,代碼如下:


輸出來的結果是一樣的。

 

可以說TF-IDF是非常常用的文本挖掘的預處理幾本步驟,使用TF-IDF並進行標準化後,就可以使用各個文本的詞特徵向量作文文本的特徵,進行分類或者聚類分析。


該文來源於微信公衆號:自然語言處理技術,歡迎關注: 
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章