火善棟
(重慶三峽學院計算機科學與工程學院,萬州 404100)
文本分類是自然語言處理領域最活躍的研究方向之一,從新聞分類、商品評論信息情感分類到微博信息打標簽等輔助推薦系統都有著非常廣泛的應用。隨著深度學習的不斷推廣和發展,圖像分類與識別也變得越來越成熟和簡單,有很多人開始嘗試采用深度學習進行文本分類,但是,文本有別于圖像,文本分類的一個首要問題就是如何把文檔轉換成神經網絡可以識別和計算的數字表達形式。對于文檔的數值表示,現在比較流行的有獨熱(One-Hot)編碼模型、基于詞頻統計的詞袋模型以及Word2 Vec[1]模型等。基于詞頻統計的詞袋模型是文檔分類中用的比較多的文檔向量轉換模型,詞袋模型通過統計每個特征詞的TF_IDF[2]值來將文本文檔轉換成對應的文檔向量,再通過比較這些文檔向量的相似度,實現文本分類問題,但這種模型存在維度高、特征稀疏等特點,導致在進行文本分類時存在計算量大、效率低的問題。為了有效解決這些問題,本文基于詞袋模型,通過采用提取一定數量的特征詞構建特征詞典,來大大縮小文檔向量的維度,然后通過CNN 采用兩種不同的方案進行訓練和測試,實驗結果表明,僅采用CNN 中的全連接網絡就可以比較好地實現中文文本分類。
本文采用兩種方案對九類(環境、交通、教育、經濟、軍事、體育、醫藥、藝術、政治)共1995 篇中文文檔采用 PyTorch 構建 CNN[3]進行訓練和測試(其中訓練文檔為1815 篇,測試文檔為180篇)。
其實驗和測試具體步驟如下:
(1)讀取每一類文檔中的所有文檔,過濾掉其中的非中文符號,并進行中文分詞;
(2)過濾掉分詞中的單字詞,統計每類文檔中每個詞出現的次數,按單詞出現的次數從大到小進行排序;
(3)為了減少特征詞的數量,只從每類文檔中選取一定數量的詞(本實驗分別對每類排在前1000、1500、2000個詞進行了提取);
(4)對每類文檔中抽取的特征詞進行合并,去掉重復的詞,構成訓練文檔特征詞典并以npy文檔的形式進行保存。
(1)以特征詞典為基礎,遍歷所有的訓練文檔,統計特征詞典中每一個特征詞包含訓練文檔的數目并計算其IDF,其計算公式為
其中:docNumber為訓練文檔的文件總數,number為包含特征詞的文件數目。
(2)將所有特征詞的IDF 值以npy 文檔的形式進行保存。
(1)以特征詞典為基礎,統計每一個特征詞在每一篇訓練文檔中的詞頻(TF),詞頻等于特征詞在對應文檔中出現的次數除以該文檔的總詞條數。
(2)將每一個特征詞的TF 與IDF 相乘得到特征詞典中每一個特征詞的TF_IDF 值,從而構建所有訓練文檔的文檔向量,為了便于訓練,將每一個訓練文檔的文檔向量以npy文檔的形式進行保存。
為每一個訓練文檔向量添加對應的類別標簽(1~9)并打亂次序,以16 個訓練文檔為一個批次進行訓練,其網絡模型如圖1所示。

圖1 CNN全連接網絡的結構
本文對每類文檔按詞頻進行降序排列,分別選取每類排在前1000、1500 和2000 的詞條構建特征詞典進行訓練(其文檔特征向量構建方式和激活函數如表1 所示)。圖2 為選取每類排在前1500 個詞條構建特征詞典所得到的訓練迭代次數與損失誤差結果圖,從訓練結果圖可以看出,當迭代次數達到2300 次左右時,其損失誤差的最小值基本處于穩定狀態,為了防止過擬合,訓練時采用了dropout 策略,發現訓練損失達到一個穩定值后仍然出現一些細微的波動。

表1 卷積網絡全連接層實驗結果

圖2 全連接(tanh)訓練結果
導入訓練過程中保存的特征詞典文檔和IDF文檔得到訓練集特征詞典和每個特征詞的IDF值,并以特征詞典和IDF 值為基準對180 篇(每類分別為20)測試文檔進行類別判斷,
其測試結果如表1 所示,從測試結果來看,分類的準確性都在96%以上。
方案2 的實驗步驟與方案1的實驗步驟基本相同,不同的是方案1 的文檔特征向量是一維的,而方案2 的文檔特征向量是二維的(模仿單通道圖片),在進行特征輸入時,將一維文檔特征向量轉換成M×M或者(M-1) ×M的二維文檔特征向量,進行轉換時后面位數不夠的地方以0進行填充。其向量轉換效果如圖3所示。

圖3 一維向量轉二維向量示意圖
方案2網絡結構如圖4所示。

圖4 方案2網絡結構實驗
從圖4 可以看出,方案2 其實就在方案1全連接網絡的基礎上添加了兩個卷積層和兩個最大池化層,以每類文檔取前1500 特征詞條為例,其網絡訓練迭代次數與損失誤差結果如圖5所示,從訓練結果來看,當迭代次數達到2500時,其最小損失誤差基本處于穩定狀態,但是損失誤差的波動范圍比較大,其訓練效果沒有單一的全連接網絡好。

圖5 卷積神經網絡訓練結果
與方案1 類似,采用180 篇文檔對卷積網絡的訓練結果進行了測試,其實驗結果見表2,從實驗結果來看,采用卷積對文檔特征向量進行降維和特征提取,雖然能夠取得一定的準確率,但是其分類效果不如全連接網絡。

表2 卷積網絡實驗結果
通過以上實驗結果可以看出,對于中文文本分類問題,當采用TF_IDF 方法來構建文檔特征向量時,為了避免文檔特征向量的維度過大,可以先根據每個詞條在每類文檔中出現的次數,從中提取一定數量的特征詞來構建特征詞典。從表1 的實驗結果來看,當提取的特征詞達到一定數量時,隨著特征詞數量的增多,對文檔分類結果的影響非常小,因此,對于中文文本分類問題,可以通過這種方法來降低特征詞典的長度,從而達到提高訓練和分類速度的目的;另外,從表1的實驗結果可以看出tanh激活函數略優于regu(),TF_IDF 統計方法總體上略優于TF 統計方法;相比于卷積神經網絡,全連接網絡更適合做文本分類,而且準確率比較高,運算量比較小。