江澤裔 吳志剛
摘 要:文本分類一直是自然語言處理中一個備受關注的問題,在郵件分類、文件檢索、用戶情感識別等領域有著廣闊的應用。同時人工智能飛速發展,卷積神經網絡在圖像識別領域取得了巨大的成功,本文則在傳統方法基礎上,將卷積神經網絡應用在中文短文本分類任務中。與英文文本不同,中文文本文字連貫、搭配豐富,從而存在著文本的特征維度高,特征稀疏等問題。本文將卷積神經網絡和Word2vec的Skip-gram方法結合,應用在短文本分類中。首先利用Skip-gram得到文本的詞向量表示,然后用卷積神經網絡從向量化的文本中提取特征,在用這些提取出來的特征進行文本分類。實驗結果與傳統機器學習方法相比較,獲得了更高的準確性,驗證了卷積神經網絡在短文本分類中的有效性。
關鍵詞:卷積神經網 絡文本分類 機器學習
中圖分類號:TP391.4 文獻標識碼:A 文章編號:1672-3791(2018)05(a)-0013-03
隨著信息技術的普及以及存儲介質的發展,人們所接觸的文本信息正在呈指數級增長,在整理、篩選和處理文本信息耗費的時間和精力也越來越多。智能的文本分類算法在快速整理海量文件庫,提高篩選效率等工作中有著重要意義。
針對文本分類的課題,國內外學者都有廣泛的研究。傳統的文本分類方法有向量空間法、K-最近鄰、決策樹、支持向量機等方法[1]。這些方法在文本分類中取得了不錯的效果,但是在表示短文本時會出現特征向量維度過高和數據稀疏的問題,同時這些特征值不能夠保存詞語的語法信息和相關的語義信息。針對這個問題,H.Saif,et al提出了SentiCircles的方法動態的更新字典中詞匯的權值,從而表達文本的含義[2]。Agarwal,et al提出了通過自然語言的語法形式等手段來進行特征提取[3]。這些方法雖然能夠提取更多的特征信息,但是這些條件同時也限制了特征提取的泛化能力[4]。
同時,深度學習的蓬勃發展,在圖像識別,語音識別等領域的成功應用,使得其很多的理論基礎和先進技術自然的被引用在自然語言處理的領域。
Yoon Kim使用了含有一個卷積層的卷積神經網絡對英文斷句進行分類,對比了隨機初始化、預訓練詞向量、靜態輸入矩陣和動態輸入矩陣等不同的方法,并得出靜態輸入矩陣的模型分類效果較好[5]。Kalchbrenner提出來一種名為動態卷積網絡(DCNN)的模型,該模型采用了動態池化的方法,不需要先驗知識的輸入,也不需要人工提取特征[5]。Baotian Hu,et al則利用卷積神經網絡則關注對英文短句的建模,通過設置一個最大句子長度,對相對較短的句子采用0填充的方式解決解決不同長度句子輸入的問題[6]。
然而,傳統方法通常關注文本的統計信息,忽略了詞匯、句子之間的結構關系,同時,中文文本內容表達多樣,蘊含意蘊深厚,語句結構信息是不可或缺的一部分。本文將采用一種基于卷積神經網絡的方法,不僅僅包含文本詞匯信息,還加入了詞匯結構上的特征,應用于文本分類問題中,并取得了良好的實驗結果。
1 文本分類的過程
文本分類是指將給定文本按其內容特點歸到一個或多個預先定義的文本類別的過程,主要包括文本預處理,文本表示、特征選擇、特征提取、分類器分類。
1.1 文本預處理
與英文不同,中文文本在預處理時,通常要完成兩個步驟:首先對文本進行分詞,將一整段文本分割成獨立的詞匯,另外中文短文本中含有較多維持文本結構的停用詞,往往是“的”“地”“我們”等。這些詞匯不僅不能反映文本的主旨,還會對提取關鍵詞等操作產生較大的影響,因此需將其過濾。為了使得結果有意義,訓練文本和測試文本需使用相同的預處理方法,即相同的分詞方法,相同的刪去停用詞規則,以及相同的特征選擇和文本表示方式[1,7]。
1.2 文本表示
對處理過的文本信息進行合理的建模,使得計算機能夠高效的處理。通常建模方法有向量空間模型,布爾模型和概率模型等。向量空間模型是目前使用最廣泛的一種文本表示方式。該模型通過構造一個多維度的向量空間,每一個維度表示特征集中的一個特征詞,使得文本之間的相似度可以通過向量之間的相似度來計算。
1.3 特征選擇和特征提取
短文本經過預處理之后,特征詞的數量很多,直接利用這些特征詞進行分類容易引起維度災難等問題。同時,還有一部分的特征詞在分類算法中的貢獻較小,甚至會對分類結果產生更差的影響。通常會對預處理之后的特征集進行特選擇或特征提取。
特征選擇是在當前的特征集中,選擇有利于算法分類的子集,而特征提取則將當前的特征集轉化成另一種表現形式,是將原來的特征集變為更高層次更加抽象的集合。
常用的特征選擇方法有信息增益(Information Gain)和互信息(Mutual Information)等。特征提取的方法則有隱性語義索引(LSI)以及潛在狄利克雷分配模型(LDA)等主題模型的方式。近年來卷積神經網絡、Doc2vec模型等方法也有很大的發展,并獲得很不錯的結果。
經過特征選擇或特征提取的后,最終得到短文本的詞向量表示方式,再選擇不同的分類算法對其進行分類處理[1]。
2 實驗過程
為驗證CNN在短文本數據集上的分類效果,本文對比了CNN、SVM和KNN這3種方法,并結合各個算法的特點分析了實驗結果[8,9]。
2.1 數據預處理
本次實驗選用的數據庫是搜狐實驗室中新聞類的文本數據,包括汽車、財經、IT等10個類別,共約10萬篇文檔。并使用jieba中文分詞組件對文本進行分詞,jieba中文分詞組件還擁有詞性標注功能,能夠對語句分詞后的每個詞匯標注詞性,這樣就能根據詞性刪去大部分的停用詞。以文本中財經類的一段文本為例:
原始文本:這家公司2005年年底注冊用戶達到400萬,計劃今年注冊用戶突破1000萬,號稱是國內最大的第三方網絡支付平臺。
分詞結果:這家/公司/2005/年/年底/注冊/用戶/達到/400/萬/,/計劃/今年/注冊/用戶/突破/1000/萬/,/號稱/是/國內/最大/的/第三方/網絡/支付/平臺/。
去除停用詞:這家公司注冊用戶達到計劃注冊用戶突破號稱國內最大網絡支付平臺分詞完成之后,用Word2vec方法將字詞轉為計算機可以理解的稠密向量。Word2vec分為CBOW和Skip-Gram兩種模式,由于本次實驗的訓練文本數量充足,Skip-gram模型的表現更佳,則將每個特征詞通過Skip-gram模型得到一個維度為100的特征向量,使得文本信息能夠被計算機所識別和計算
2.2 實驗過程
本次研究中選擇的卷積神經網絡結構如圖1所示,文本預處理完成生成的詞向量,經由輸入層輸入到卷積層中,卷積層之后是一個池化層,最后通過全連接層輸出結果。
Ye Zhang,et al基于Yoon Kim的研究結果,測試了不同結構,不同參數設置的神經網絡在文本分類實驗中的性能。通過對比實驗,卷積核深度為100~200,同時詞向量的維度在100~200,卷積核的大小為3×3,4×4,5×5時效果較好。本次試驗中。模型在數據集上訓練過程如圖2所示。
從圖2中可以看出,經過迭代訓練,模型收斂情況良好,當迭代次數超過1000次時,模型分類精度在90%以上,超過5000次迭代后,模型精度達到95%。
實驗設計了卷積神經網絡方法與另外兩種常用的分類方法對比,隨機選取了汽車、財經和旅游3個領域的短文本進行測試。
從表1可以看出,不同方法在測試數據集上的表現差異較大,KNN方法在整體上遜色于SVM和CNN方法,同時SVM方法與CNN方法的效果大致相當,但CNN方法的總體表現略好于SVM方法。
3 結果分析
KNN通過測試短文本與訓練庫中的短文本相似度來進行分類的,與其附近K個短文本中相同類別最多的那些文本同類,這種方法存在著較大的弊端,首先不同領域的文本可能存在著較多的相似內容,比如,有關“自駕游”的文本可能存在著較多汽車的內容,但并非屬于汽車類。
SVM的分類效果也很好,但由于CNN中還存在著文章詞匯結構的信息,這些信息在分類過程中也有比較重要的作用,例如,開頭結尾處的詞匯往往是與文章主旨相關,因此卷積神經網絡的性能會略勝一籌。
4 結語
本文實現了卷積神經網絡在中文文本分類中的應用,并在中文短文本分類上取得了較好的效果。較之傳統方法,該方法提高了分類精度,且自動的提取特征,不需要人為的設計,實現過程更加方便快捷。
但是該模型仍有需要改進的地方。神經網絡模型通常存在著訓練周期長,參數調整較難的情況,在保證模型分類精度的同時,引入其他算法以提高神經網絡的訓練效率將是之后研究的重中之重。
參考文獻
[1] 朱磊.基于Word2vec詞向量的文本分類研究[D].西南大學,2017.
[2] Saif H, He Y, Alani H. Semantic sentiment analysis of twitter[A]. International semantic web conference[C]. 2012:508-524.
[3] Agarwal A, Xie B, Vovsha I, et al. Sentiment analysis of twitter data[A]. Proceedings of the workshop on languages in social media[C].2011:30-38.
[4] Kouloumpis E,Wilson T,Moore JD.Twitter sentiment analysis: The good the bad and the omg[A]. International Conference on Weblogs & Social Media[C].2011:164.
[5] Kim Y. Convolutional neural networks for sentence classification[D].Cornell University,2014.
[6] Hu B,Lu Z,Li H,et al.Convolutional neural network architectures for matching natural language sentences[A].Advances in neural information processing systems[C].2014:2042-2050.
[7] 石志偉,劉濤,吳功宜.一種快速高效的文本分類方法[J].計算機工程與應用,2005(29):180-183.
[8] 平源.基于支持向量機的聚類及文本分類研究[D].北京郵電大學,2012.
[9] 殷亞博,楊文忠,楊慧婷,等.基于卷積神經網絡和KNN的短文本分類算法研究[J].計算機工程,2017(5):1-6.