1. 程式人生 > >文本分類學習(三) 特征權重(TF/IDF)和特征提取

文本分類學習(三) 特征權重(TF/IDF)和特征提取

才會 有用 卡方檢驗 改變 其中 關於 思想 意義 bsp

上一篇中,主要說的就是詞袋模型。回顧一下,在進行文本分類之前,我們需要把待分類文本先用詞袋模型進行文本表示。首先是將訓練集中的所有單詞經過去停用詞之後組合成一個詞袋,或者叫做字典,實際上一個維度很大的向量。這樣每個文本在分詞之後,就可以根據我們之前得到的詞袋,構造成一個向量,詞袋中有多少個詞,那這個向量就是多少維度的了。然後就把這些向量交給計算機去計算,而不再需要文本啦。而向量中的數字表示的是每個詞所代表的權重。代表這個詞對文本類型的影響程度。

在這個過程中我們需要解決兩個問題:1.如何計算出適當的權重。2.如何把詞袋給縮小,後面會說到的其實就是降維的思想

先來解決第一個問題:如何計算權重?

上篇說過,使用詞頻來計算權重是個沒什麽人去用的方法。而我們大都會使用地球人都知道的算法:TF/IDF

TF/IDF 用來評估一個詞在訓練集中對某個文本的重要程度。其中TF表示的是某個詞在文本中出現的頻率也就是詞頻啦,用公式表示就是:

                    技術分享圖片

那IDF是什麽呢?IDF叫做逆向文件頻率: 計算公式是:

技術分享圖片

|D| 表示訓練集的總文檔數|{j:t?Εdj}|表示包含詞ti的所有文檔

一般由於|{j:t?Εdj}|可能會為0,所以分母+1,這麽表示:

                    技術分享圖片

意思就是文檔總數除以包含該詞的文檔數再取對數。具體意思是啥呢,就是說如果包含某個詞的文檔很少很少,那麽這個詞就非常具有區分度。這個道理很好理解,大多數文章都會包含"的" ,而大部分關於搜索引擎的文章才會包含"索引",那麽"索引"這個詞就比"的"更具有區分度。

而TF/IDF的方法是將TF/IDF結合起來也就是TF*IDF 的值越大,代表這個詞的權重就越大,這個詞對於文檔來說就越重要。所以一個詞在某個文檔中的出現次數越大,而在別的文檔中出現的次數又很少,這個時候就會得出一個很高的權重了。

而在搜索引擎中對文檔的排序也有用到TF/IDF方法。

這樣的話我們就可以得到一個TF/IDF權重的表示的向量。但是詞袋(字典)向量的維度是在太高了,有幾萬維,很浪費計算機的資源。 高緯度的特征向量中每一維都可以看做是特征(特征也可以用詞來表示,其實就是組成文章的一個一個詞)。接下來就要介紹特征提取

這個概念。我們從高維度特征向量中選取最具代表性的一些特征,從而達到把維度降低的同時也可以很好預測文章的類型。所以特征提取就可以叫做降維。一個維度不高,又能很好預測文章的詞袋我們何樂而不為呢?

那麽特征提取總體上來說有兩類方法:

第一類可以稱作特征抽取,它的思想是通過特征之間的關系,組合不同的特征得到新的特征,這樣就改變了原始的特征空間,構成了新的特征。而新的特征更具有代表性,並消耗更少的計算機資源。主要方法有:

1.主成成分分析(PCA)

2.奇異值分解

3.Sammon映射


第二類叫做特征選擇,它的思想是在原有的特征集合中選出一個更具代表性的子集,主要方法有三類:

1. 卡方檢驗,信息增益 通過給每一維的特征進行打分,然後進行排序,選擇那些排名靠前的特征

2. 遞歸特征消除算法 將子集的選擇看做是一個搜索優化的問題,通過啟發式的搜索優化算法來解決

3. 嶺回歸 確定模型的過程中,挑選出那些對模型的訓練有重要意義的屬性

後面會對卡方檢驗和信息增益以及主成成分進行學習和討論。再見咯。

文本分類學習(三) 特征權重(TF/IDF)和特征提取