NLP自然語言處理——文本分類之特徵提取

一、詞向量化與文本向量化

1、獨熱編碼(One-Hot Encoding)

獨熱編碼又稱一位有效編碼,是經典的詞向量化方法。其基本思想是,首先構建包含數據集中所有詞的語料庫,然後使用與語料庫總詞數相同的向量表示每個詞,並且向量中與這個單詞對應位置的值爲1,其餘位置爲0。下文的卷積神經網絡、深度 LSTM 神經網絡,以及基於自注意力機制的深度神經網絡的輸入都是採用的獨熱編碼。

2、詞袋模型(Bag of Words)

詞袋模型(BOW)是一種文本向量化表示方法。其思想是用但個文本中詞彙出現的頻率作爲特徵,語料庫(corpus)中所有詞彙所出現的頻率作爲一個樣本(sample)。
例如:
如下兩個文本
[‘小明’,‘喜歡’,‘打’,‘籃球’]
[‘小明’,‘也’,‘喜歡’,‘唱’,‘歌’]
上述兩個文本所形成的語料庫如下:
[‘小明’,‘喜歡’,‘打’,‘籃球’,‘也’,‘唱’,‘歌’]
根據語料庫我們可以將上述兩個文本轉化爲詞向量,如下所示:
[1,1,1,1,0,0,0]
[1,1,0,0,1,1,1]
但是,在以詞爲最小單位構建語料庫的情況下,每個文本需要上萬維的向量才能表示,這會使訓練模型時效率很低,導致維度災難。下面的TF-IDF算法能夠計算每個詞對文本的重要程度,通過提取最最能夠表示該文本的詞可以達到降維的目的,避免維度災難。

3、詞頻-逆文檔頻次算法(TF-IDF)

很多高頻詞彙是沒有實際意義的,如果我們直接將詞頻數據提供給分類器,那麼很多重要但出現頻次很低的詞會被這些不重要但出現頻次很高的詞給掩蓋住。TF-IDF算法可以有效的避免這樣的情況發生。

TF-IDF的公式

TF-IDF算法在詞袋模型的基礎上對特徵詞作歸一化處理,再乘以特徵詞的逆文檔頻率以調節每個特徵詞的權重。文本中的詞對文本的表達能力和區分能力是不同的,因此我們可以選擇每個文本中TF-IDF權重最大的n個詞來表示這個文本,這麼做有以下兩個好處:
(1)降低文本向量維度,減少計算開銷;
(2)減少干擾信息,去掉了非關鍵性可能帶來的干擾。

注: 逆文檔頻率就是文檔頻率的倒數。

TF是英文Term Frequency的縮寫,中文意思是詞頻。TF是統計詞在文擋中出現的頻次。其基本思想是一個詞在文檔中出現的次數越多,那麼這個詞對它所在的文檔的表達能力越強。TF的計算公式如下:
tfij=nijknkjtf_{ij}=\frac{n_{ij}}{\sum_{k}n_{kj}}
其中nijn_{ij}表示詞ii在文檔jj中出現的頻次,分母部分表示文檔jj中每個詞出現頻次的總和,即文檔jj的中詞數。

注: 除以分母的文檔總詞數是爲了進行歸一化。

IDF是英文Inverse Document Frequency的縮寫,中文意思是逆文檔頻率。IDF是統計一個詞在文檔集中的多少個文檔中出現的次數。IDF的基本思想是
一個詞在越少文檔中出現,那麼這個詞對文檔的區分能力越強。IDF的計算公式如下:
idfi=log(D1+Di)idf_i=log \left(\frac{|D|}{1+|D_i|} \right)
其中D|D|爲文檔集中的文檔總數;Di|D_i|爲文檔集中出現詞ii的文檔數。

TF-IDF算法是TF算法和IDF算法的綜合使用。其計算公式如下:
tf×idf(i,j)=tfij×idfi=nijknkj×log(D1+Di)tf \times idf(i,j)=tf_{ij} \times idf_i =\frac{n_{ij}}{\sum_{k} n_{kj}} \times log \left( \frac{|D|}{1+|D_i|} \right)

4、詞嵌入

詞嵌入又稱分佈式表示,是一種基於神經網絡的文本表示方法,一般步驟是,首先,對詞進行one-hot編碼,每個詞用一個向量表示,向量的維度就是語料庫的大小,然後將詞向量輸入神經網絡,通過神經網絡將每個詞映射爲指定維度的詞向量。

參考文獻

1、sklearn——CountVetorizer詳解
2、sklearn 學習 第四篇:文本特徵提取
數據來源:
3、“達觀杯”文本智能處理挑戰賽
4、NLP自然語言處理——文本分類之數據集彙總
5、LaTeX技巧11:LaTeX上標下標的設置
6、Latex數學公式-求導、分數的表示
7、LaTeX大括號公式和一般括號總結

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