于 游 付 鈺 吳曉平
(海軍工程大學(xué)信息安全系 湖北 武漢 430033)
隨著大數(shù)據(jù)、云計算等現(xiàn)代信息技術(shù)的發(fā)展,傳統(tǒng)的紙質(zhì)文檔快速向電子化、數(shù)字化文檔進行轉(zhuǎn)變,文檔管理的分類、檢索等基本方法也隨之產(chǎn)生了變化,如何有效地管理這些信息并從中獲取有價值的內(nèi)容是文本處理中的一大挑戰(zhàn)。文本自動分類[1]是解決這一挑戰(zhàn)的基礎(chǔ)性工作,是后續(xù)文本自動化操作和處理的重要基礎(chǔ)。許多學(xué)者針對文本分類方法展開了研究,文本分類算法被不斷提出,如樸素貝葉斯[2]、支持向量機(SVM)[3]、決策樹[4]和神經(jīng)網(wǎng)絡(luò)[5]學(xué)習(xí)等方法。如何實現(xiàn)文本準(zhǔn)確高效地分類已是目前研究的一個熱點問題。
隨著神經(jīng)網(wǎng)絡(luò)算法不斷發(fā)展,其在自然語言領(lǐng)域處理的優(yōu)越性也日漸凸顯。周樸雄[7]分別使用神經(jīng)網(wǎng)絡(luò)算法、KNN算法及SVM算法對Web文本進行分類,結(jié)果顯示神經(jīng)網(wǎng)絡(luò)算法的準(zhǔn)確度要優(yōu)于其他算法。相比于傳統(tǒng)的分類主要采用有監(jiān)督的方法,依賴于現(xiàn)有的自然語言處理工具容易導(dǎo)致處理過程中誤差累積的問題。文獻[8]提出一種結(jié)合Word2Vec、改進型TF-IDF和卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)文本分類方法,提高了單個詞對文本分類的影響,但是忽略了文本的語義關(guān)系,沒有考慮上下文結(jié)構(gòu),有待進一步改善。文獻[9]提出了一種基于LDA算法CNN短文本分類方法,該方法將文本主題加入到CNN網(wǎng)絡(luò)中學(xué)習(xí),但是得到的主題是單個詞對文本的主題分布,不能深刻地反映文本語義信息。目前,在文本分類任務(wù)中,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法在訓(xùn)練過程中參數(shù)多且易出現(xiàn)過擬合現(xiàn)象,越來越多的深度學(xué)習(xí)方法開始走進大眾視野。上述幾種方法中特征表層信息提取應(yīng)用成熟,但特征表示過于單一,僅用詞對文本進行描述不能夠全面地對文本表示,從而難以提高文本分類效果。
為能夠更全面地應(yīng)用文本的語義信息,解決傳統(tǒng)文本分類中特征稀疏的問題,本文提出一種基于詞和事件主題的CNN文本分類方法,并給出了基于BTM的事件主題模型對事件主題進行提取,通過事件主題特征對文本的語義進行表述,豐富特征語義信息,以CNN作為分類器學(xué)習(xí),將傳統(tǒng)基于詞的特征表示方法與事件主題特征表示方法進行拼接作為CNN的輸入,提高文本分類的準(zhǔn)確性。
主題模型[10]是自然語言處理的一種重要手法,在文本信息挖掘和信息檢索領(lǐng)域有著非常重要的作用,通常是通過詞或短語的方式對主題進行描述,但此類方法獲得的文本主題缺乏深層次語義。事件[11]比詞具有更加豐富的語義信息,可以更好地表達文本的主題,更有利于文本中心語義的掌握,且能夠有效解決基于詞的主題表示方法的稀疏性問題,如詞組合{a,b}同屬一個事件,利用基于詞的主題模型對其進行表示時,可能詞a與詞b并不屬于同一主題,而利用基于事件的主題模型,可以很好地解決這一問題。
在NPL處理領(lǐng)域,事件通常被定義為“謂詞+論元結(jié)構(gòu)”,可以表示為“主+謂+賓”結(jié)構(gòu)。對于沒有事先定義事件的事件抽取操作,可以使用由斯坦福大學(xué)自然語言處理小組開發(fā)的開源句法分析器Stanford Parser工具獲取每條語句的依存結(jié)構(gòu),“nsubj”和“dobj”,即名詞主語和直接賓語的方法,若其擁有相同的謂語,則可將其看成一個事件,即直接表示為“主+謂+賓”結(jié)構(gòu),可利用向量表示為:
(1)
式中:·表示點乘運算;?表示克羅內(nèi)克積運算。若是二元事件,則直接采用謂詞向量和論元向量點乘的方法表示。
鑒于事件提取的原子是詞對,所以在計算事件主題時,應(yīng)該使用對詞對進行主題計算的方法。BTM(Biterm Topic Model)[12]是針對共現(xiàn)對進行建模的一種主題模型,所以本文方法以BTM為基礎(chǔ)對事件主題進行建模,模型如圖1所示。
圖1 以BTM為基礎(chǔ)的事件主題模型
圖1中符號含義如表1所示。
表1 基本符號及含義
因此,基于BTM模型的事件主題生成過程可描述如下:
(1) 生成詞對主題多項式分布參數(shù)βk~Dirichlet(η);
(2) 生成文檔主題多項式分布參數(shù)θd~Dirichlet(α);
(3) 從主題分布多項式θd中取樣生成主題Zb,Zb~multi(θd),采樣生成詞對(ei,ej),ei~multi(θd),ej~multi(θd);
(4) 對于文檔的詞對進行采樣,從主題分布多項式θd中取樣生成主題eM,采樣生成詞對(Wp,Wq),Wp~multi(βem),Wq~multi(βem)。
此時,其聯(lián)合概率計算方法如下:
(2)
(3)
在CNN[13]學(xué)習(xí)訓(xùn)練過程中,通常采用詞作為網(wǎng)絡(luò)的輸入,往往忽略了文本中的語義信息,當(dāng)文本中的句子信息較少時,則需要全局信息對其進行補充。主題模型恰好能夠有效地對文本的語義信息進行描述并在一定程度上表示句子的全局信息,傳統(tǒng)的主題模型得到的僅僅是文本中詞對應(yīng)的主題分布,在很大程度上忽略了詞之間、上下文之間的語義關(guān)聯(lián),不能夠深層次地表示文本的語義信息。對此,本文提出一種基于詞和事件主題的模型CNN(Word Event-Topic CNN)對文本進行分類,下簡稱為W-E CNN。
W-E CNN模型主要包括兩個部分:基于事件的詞-主題向量生成和CNN運算過程,如圖2所示。
圖2 W-E CNN結(jié)構(gòu)圖
W-E CNN的基本過程可以描述為:(1) 對文本進行預(yù)處理,得到分詞結(jié)果和BTM詞對;(2) 利用Stanford工具獲取每條語句的依存結(jié)構(gòu),進而得到事件;(3) 基于事件,利用融入事件知識的BTM方法得到其對應(yīng)的主題;(4) 對事件進行分解得到對應(yīng)的詞與主題;(5) 將得到的詞與主題進行拼接,對詞和主題進行向量化表示,得到對應(yīng)的詞-主題向量;(6) 輸入至CNN進行學(xué)習(xí)訓(xùn)練。
W-E CNN網(wǎng)絡(luò)中的輸入層的功能與原CNN層的功能基本一致,只是在原有詞向量的基礎(chǔ)上,再拼接上主題向量,則其輸入可以表示為:
(4)
式中:n為詞的個數(shù);wi和ti分別為第i個詞的詞向量和主題向量;m為維度,詞向量與主題向量采用相同的維度,方便后續(xù)計算;[witi]表示詞向量與主題向量的拼接。
該過程如算法1所示。
算法1基于詞和事件主題的文本分類
輸入:數(shù)據(jù)集D,主題集K。
輸出:文本類別category。
1. processed text←text preprocessing ofD
//文本預(yù)處理
2. word←word segmentation of processed text
//分詞
3.B←dependency analysis of word
//依存關(guān)系分析
4. fori
5. forj
6. ifei(verb)=ej(verb)
//等同于判斷nsubj(verb)=dobj(verb)
7. ifnsubj(sub)∪dobj(obj)≠null
8.B(ei,ej)←(sub,verb,obj)
9. end if
10. end if
11. end for
12. end for
13.Zb←BTM(B(ei,ej))
//BTM主題計算
14. [word,topic]←vectorization ofZband (B(ei,ej))
//得到輸入向量
15. category←[word,topic]
//CNN學(xué)習(xí)訓(xùn)練
16. return category
該方法可以在不增加CNN算法參數(shù)運算復(fù)雜度的基礎(chǔ)上,增加文本的主題特征,將詞向量與主題向量作為一個整體輸入到CNN網(wǎng)絡(luò)中進行訓(xùn)練。主題特征可以豐富文本特征,充分利用文本的語義信息,減少了傳統(tǒng)基于詞的主題模型中因錯分主題而導(dǎo)致精度下降的問題,有效提高文本主題的可解釋性;而詞特征可以彌補事件依存分析中不準(zhǔn)確的地方。
本文使用的實驗數(shù)據(jù)來自于搜狗語料庫——搜狐新聞數(shù)據(jù)(SogouCS)[14],該數(shù)據(jù)收集來自搜狐新聞2012年6月至7月期間國內(nèi)、國際、體育、社會和娛樂等18個頻道的新聞數(shù)據(jù),包含的數(shù)據(jù)有URL、標(biāo)題、正文內(nèi)容等,可從搜狗實驗室下載得到格式為.dat的數(shù)據(jù)包,大小為1.43 GB。依據(jù).dat格式對其進行切分得到單篇新聞數(shù)據(jù),其基本格式如圖3所示。
圖3 新聞數(shù)據(jù)
CNN網(wǎng)絡(luò)處理的是二維數(shù)據(jù),所以在對數(shù)據(jù)進行處理時,首先要將文本數(shù)據(jù)轉(zhuǎn)換為特征向量矩陣形式,本文采用Word2vec。Word2vec是一個用于計算詞特征向量的工具,它一般有兩種方法獲取特征向量:一種是使用現(xiàn)有詞庫中的全局詞向量庫,這種方法使用的庫規(guī)模一般十分龐大,如由北京師范大學(xué)中文信息處理研究所與中國人民大學(xué)DBIIR實驗室開發(fā)的《中文詞向量語料庫》[15],該庫中包括了知乎、人民日報、百度百科、古漢語等數(shù)十種常用語料的訓(xùn)練詞向量;另一種方法通過使用者自己對文本語料進行訓(xùn)練得到的詞向量庫。為方便計算,本文采用后者,通過訓(xùn)練文本語料庫,得到一個局部的特征向量庫,并通過CBOW方法[16]對原輸入其進行轉(zhuǎn)換。
在對數(shù)據(jù)集數(shù)據(jù)讀取后,會發(fā)現(xiàn)其中夾雜著少部分往年新聞數(shù)據(jù),對其進行過濾。首先對文本的事件主題提取,因為處理的數(shù)據(jù)是新聞,文本長度較短,所以參數(shù)設(shè)置為:迭代次數(shù)為500,主題數(shù)目為10,每個主題中顯示概率最大的3個事件。部分結(jié)果如表2所示。
表2 主題提取結(jié)果
對NPL處理的分析指標(biāo)主要有準(zhǔn)確率、召回率和F1值。其中:準(zhǔn)確率是檢驗方法的查準(zhǔn)率,召回率是檢驗方法的查全率,F(xiàn)1值是查準(zhǔn)率與查全率的綜合值。
隨機從Sogou CS中選取財經(jīng)、軍事、體育、娛樂四個類別的新聞各1 000篇作為實驗數(shù)據(jù),其中80%作為訓(xùn)練數(shù)據(jù),20%作為驗證數(shù)據(jù)。在結(jié)合事件的主題模型中,狄利克雷函數(shù)的參數(shù)設(shè)置均設(shè)置為:α=0.05,η=0.1。在W-E CNN算法中,由于新聞文本長度都較短,所以詞向量維度設(shè)置為200。文獻[17]的實驗結(jié)果表明當(dāng)卷積核的個數(shù)設(shè)置為100~200時,提取出的特征比較全面,所以卷積核個數(shù)設(shè)置為128,卷積核大小為3、4、5,全連接層神經(jīng)元個數(shù)為128個,批尺寸為64,迭代訓(xùn)練次數(shù)50次,丟棄率為0.4,學(xué)習(xí)率為0.001。在對文本進行處理時,可見,由于新聞文本長度普遍較短,所以其長度一般都在50左右,K=50,即CNN的輸入向量大小為50×400。
對事件主題和詞之間的相輔相成關(guān)系進行驗證,分別以詞為輸入的CNN方法(Word CNN)、以事件主題為輸入的CNN方法(Event CNN)和本文提出的W-E CNN方法做文本分類實驗。實驗結(jié)果如表3所示。
表3 實驗結(jié)果
可以看出,W-E CNN文本分類方法的效果要優(yōu)于Word CNN和Event CNN方法,且Event CNN方法的分類結(jié)果要劣于Word CNN方法,這說明在對文本依存關(guān)系進行分析時存在不準(zhǔn)確的地方,而將其與詞特征進行連接可以彌補這些不足,而事件主題又可以彌補Word CNN中缺乏語義信息的缺點。
為驗證W-E CNN方法較其他方法的優(yōu)越性,本文進行對比實驗,分別為以主題向量為輸入的樸素貝葉斯(NB)、K-最鄰近(KNN)、支持向量機(SVM)算法和基于詞和主題的CNN(W-T CNN)文本分類方法。其中,W-T CNN方法中的主題是指用詞對主題進行描述的方法。具體實驗結(jié)果如表4所示。
表4 對比實驗F1值
通過測試,W-E CNN分類方法的平均準(zhǔn)確度、召回率、F1值分別達到了0.972、0.971、0.971。在本實驗中,W-E CNN方法要明顯優(yōu)于機器學(xué)習(xí)中的NB、KNN、SVM方法。通過對比W-E CNN方法與W-T CNN文本分類方法可以發(fā)現(xiàn),無論是準(zhǔn)確率還是召回率,W-E CNN分類方法都要高于W-T CNN分類方法,這說明事件主題能夠更加地對文本的特征進行提取,更有利于文本語義信息的表示。通過圖4所示的運算時間對比可以看出,W-E CNN分類方法在運算時間上要長于基于詞和主題的分類方法,這是因為W-E CNN分類方法需要首先對詞進行依存分析得到事件,進而決定該詞對所屬的主題。
圖4 W-E CNN分類方法和W-T CNN分詞方法的運算時間
為進一步對W-E CNN的學(xué)習(xí)能力進行更深入的研究,以學(xué)習(xí)文本數(shù)量為自變量進行實驗,四類文本從每類文本100篇開始逐漸增加,每增加50篇記錄一次結(jié)果,其中80%作為訓(xùn)練數(shù)據(jù),20%作為測試文本,結(jié)果如圖5所示。
圖5 不同規(guī)模文本數(shù)量分類方法對比效果
根據(jù)實驗結(jié)果可以發(fā)現(xiàn),當(dāng)訓(xùn)練文本數(shù)量較少時,傳統(tǒng)的基于機器學(xué)習(xí)的分類效能要明顯優(yōu)于W-E CNN方法,而隨著訓(xùn)練文本數(shù)量不斷增加,W-E CNN的分類效果要明顯優(yōu)于其他幾種機器學(xué)習(xí)方法。通過圖5可以發(fā)現(xiàn),樸素貝葉斯、K-最鄰近、支持向量機方法的學(xué)習(xí)能力達到一定值后開始趨于平穩(wěn),而W-E CNN方法的學(xué)習(xí)能力則不斷增加,這也是深度學(xué)習(xí)算法相比于機器學(xué)習(xí)算法的一個優(yōu)點。
本文針對傳統(tǒng)詞表示特征時不夠全面、可解釋性差的問題,結(jié)合基于事件的主題模型提出了一種基于詞和事件主題的CNN文本分類方法,并給出了基于BTM的事件主題提取方法,能夠有效解決詞特征稀疏的缺點。將該方法應(yīng)用于新聞文本分類中,通過實驗證明了W-E CNN方法在分類上的優(yōu)越性,但實驗也發(fā)現(xiàn),W-E CNN方法所用的時間要高于基于詞和主題的分詞方法,這是因為W-E CNN在運算過程中需要組建事件對,再對其進行主題確定所造成的。所以,尋找高效的事件主題表示方式和計算方法及如何提高本文方法在深度學(xué)習(xí)計算框架上的運算效率是下一步研究的方向。