杜雪嫣 王秋實(shí) 王斌君
國內(nèi)外的諸多研究學(xué)者在文本分類方面已經(jīng)取得了一些研究成果,Kim將單詞轉(zhuǎn)變?yōu)樵~向量,并將其嵌入卷積神經(jīng)網(wǎng)絡(luò),在情感分類中取得了良好效果①Y. Kim, “Convolutional Neural Networks for Sentence Classification”, Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Doha, Qatar, 2014, pp.1746-1751.;Santos等人以英文字符序列為基礎(chǔ),將待分類的文本劃分為不同的處理單元,分別提取單詞級和句子級的特征向量,提高了英文文本分類的準(zhǔn)確性②Santos C. N, Gatti M. A, “Deep convolutional neural networks for sentiment analysis of short texts”, Proc of International Conference on Computational Linguisttics, 2014, pp. 69-78.;劉龍飛等人提取字級別的特征來對微博文本進(jìn)行分類,進(jìn)一步提高了微博文本分類的準(zhǔn)確率③劉龍飛等:《基于卷積神經(jīng)網(wǎng)絡(luò)的微博情感傾向性分析》,《中文信息學(xué)報(bào)》2015年第6期。。本文針對中文及短文本的特點(diǎn),研究了LSTM、CNN以及其參數(shù)調(diào)優(yōu)問題,并通過大量實(shí)驗(yàn),構(gòu)建了一個(gè)適用于中文短文本分類的基于 LSTM-CNN的文本分類模型。與現(xiàn)有方法進(jìn)行的對比實(shí)驗(yàn)表明,該方法非常適合中文短文本分類,有較高的準(zhǔn)確率。
本文所構(gòu)建的基于LSTM-CNN的中文短文本分類模型包括LSTM層、輸入層、卷積層、池化層以及全連接層,其結(jié)構(gòu)圖如下圖所示。
中文短文本分類模型結(jié)構(gòu)圖
下面分別闡述LSTM層、輸入層、卷積層、池化層以及全連接層的設(shè)計(jì)思路。
一是LSTM層。LSTM層的作用主要是接收輸入的詞向量,并從中提取到有用的語義特征。由于句子中的每個(gè)詞所表達(dá)的含義并不僅取決于這個(gè)詞的含義,而且取決于這個(gè)詞上下文的含義,因此直接將詞向量輸入到卷積神經(jīng)網(wǎng)絡(luò)提取局部特征可能會導(dǎo)致語義信息的丟失。通過LSTM層的處理,在輸入到卷積層的信息中,不僅包含了詞向量的原始信息,還包括了輸入文本的語義信息,這樣卷積層就能提取到更加豐富的局部信息,提高模型分類的準(zhǔn)確率。
二是輸入層。針對圖像處理任務(wù)而設(shè)計(jì)的CNN是以像素矩陣作為輸入。在自然語言處理任務(wù)中,必須將特征向量作為一個(gè)矩陣來輸入給卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)。矩陣中的每一行都是一個(gè)多維向量,這就需要在輸入層對特征向量進(jìn)行處理。在接收到LSTM層提取出的向量后,在輸入層將其縱向堆積成二維矩陣輸入到卷積層進(jìn)行特征的提取。
三是卷積層。文本中的局部特征能夠通過卷積層來提取。卷積核表示某一個(gè)局部特征,通過卷積核的滑動計(jì)算,在輸入矩陣中發(fā)現(xiàn)是否存在相關(guān)的特征。卷積核與所在矩陣相應(yīng)位置內(nèi)積的加權(quán)平均函數(shù)稱為卷積核函數(shù)。在自然語言處理任務(wù)中,輸入矩陣的寬度就是卷積核的寬度,改變卷積核的尺寸可以調(diào)整提取特征的窗口大小,這個(gè)尺寸要認(rèn)真選擇。如果尺寸過小,則無法提取相關(guān)的特征;但如果尺寸過大,則會提取出來許多干擾特征。通常情況下,在卷積神經(jīng)網(wǎng)絡(luò)中,每個(gè)卷積層只包含有一種尺寸的卷積核。盡管這種識別方法在圖像識別任務(wù)中有較好的效果,但是并不一定適用于自然語言處理任務(wù)??紤]到自然語言的特點(diǎn),為了盡可能充分地保留文本上下文的信息,從而提取出不同顆粒度大小的局部特征信息,本文采用了在卷積層中使用多種不同尺寸卷積核組合的方案設(shè)計(jì)。
四是池化層。在卷積層提取出文本的局部特征之后,就需要池化層對局部特征進(jìn)行二次提取。筆者選擇了最大池化的方法,只取其中最大值作為池化層的保留值,而拋棄其它所有特征值。換句話說,在一張?zhí)卣鲌D中,不管最強(qiáng)的特征向量是出現(xiàn)在什么位置,都只保留這個(gè)最強(qiáng)的特征向量。在自然語言處理任務(wù)中,執(zhí)行最大池化操作的好處在于:(1)能夠減少模型參數(shù)的數(shù)量;(2)可以減少輸出矩陣的維度,但同時(shí)也將最顯著的特征保留下來。
五是全連接層。全連接層的目的是將前面提取到的局部特征進(jìn)行整合,進(jìn)行歸一化處理,并通過softmax邏輯回歸得到最終分類結(jié)果。
為了驗(yàn)證本文提出分類方法的適用性,本文選用了四個(gè)語料庫。具體介紹如下:
1.THUCNews語料庫。內(nèi)容來自新浪新聞,通過篩選過濾生成了約74萬篇新聞文檔。本文從中選取了符合短文本分類需求的時(shí)政、房產(chǎn)、家居、教育、科技、時(shí)尚、游戲、體育、財(cái)經(jīng)、娛樂等十個(gè)類別,每個(gè)分類都有6500條語料,共計(jì)6.5萬條語料。
2.搜狐新聞?wù)Z料庫。該語料庫是搜狗搜索引擎實(shí)驗(yàn)室從信息檢索領(lǐng)域愛好者和研究者提供的FTP上獲取的互聯(lián)網(wǎng)網(wǎng)頁語料庫。本文選擇了汽車、健康、財(cái)經(jīng)、旅游、教育、軍事、文化、娛樂、IT、時(shí)尚、體育等十一個(gè)類別,截取每條新聞的前300個(gè)字符作為一條語料,共計(jì)2.2萬條語料。
3.酒店評論語料庫。該語料庫由譚松波教授收集整理,是一個(gè)二分類語料庫。由于語料庫分布的不平均,本文抽取了積極評論7000條,消極評論3000條,共計(jì)1萬條語料。
4.復(fù)旦大學(xué)中文文本分類語料庫。這是一個(gè)不均勻的語料庫,本文從中選出電腦、歷史、農(nóng)業(yè)、體育、航空、環(huán)境、經(jīng)濟(jì)和政治共8個(gè)大類,在去除部分重復(fù)和損壞的語料后,共有1.9萬條語料。
1.?dāng)?shù)據(jù)預(yù)處理。眾所周知,英文是以單詞為單位的,單詞和單詞以空格分隔;而中文則是以字為單位,對字的意思理解依賴于上下文的語境。為了盡可能的保留句子的原意,在進(jìn)行文本分類任務(wù)之前,需要對中文文本進(jìn)行分詞處理。①馮俐:《中文分詞技術(shù)綜述》,《現(xiàn)代計(jì)算機(jī)(專業(yè)版)》2018年第34期。本文使用的分詞工具是Python中文分詞組件jieba分詞。除此之外,在進(jìn)行英文等拼音文本分類時(shí),為了將不定長的單詞統(tǒng)一長度,需要將這類語言中的單詞進(jìn)行統(tǒng)一編碼,如one-hot編碼。然而,對于短文本來說,由于長度的限制,每一條文本中包含的詞并不多,采用one-hot方法構(gòu)建詞向量會非常稀疏,給文本分類帶來極大的不便。對于中文這種象形文字語言,計(jì)算機(jī)內(nèi)部本身就有一個(gè)能夠識別的編碼,無需統(tǒng)一編碼。但是,漢字的內(nèi)部編碼缺乏字與字之間的語義聯(lián)系,影響了后續(xù)卷積核對文本特征的提取。因此,本文使用了word2vec模型對待分類的中文文本進(jìn)行預(yù)處理。這種方法不但可以將文本轉(zhuǎn)變?yōu)樵~向量的形式,還可以表示上下文之間的關(guān)系,便于接下來的分類。本文選用Skip-gram模型將數(shù)據(jù)預(yù)處理為200維的詞向量。
2.模型調(diào)參。神經(jīng)網(wǎng)絡(luò)含有多種超參數(shù),超參數(shù)的設(shè)置會嚴(yán)重影響實(shí)驗(yàn)結(jié)果;而合適的模型參數(shù)選擇往往需要大量的實(shí)驗(yàn)驗(yàn)證,因此,為了構(gòu)建適用于中文短文本的分類模型,本文參考了相關(guān)文獻(xiàn)②王盛玉等:《基于卷積神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化的中文情感分析》,《計(jì)算機(jī)工程》2017年第8期。的實(shí)驗(yàn)結(jié)果,選擇學(xué)習(xí)率為1e-3,每種卷積核數(shù)量均為256,dropout為0.5,全連接層神經(jīng)元個(gè)數(shù)為256作為基本超參數(shù)。在此基礎(chǔ)上,實(shí)驗(yàn)驗(yàn)證了卷積核尺寸為2、3、4、5、7、10和20的效果。實(shí)驗(yàn)采用搜狐新聞?wù)Z料庫,通過10折交叉驗(yàn)證得到表1的結(jié)果。
通過實(shí)驗(yàn)結(jié)果可以看出,卷積核尺寸為5的時(shí)候文本分類的準(zhǔn)確率最高。為了解決單一尺寸卷積核提取的局部特征單一的問題,筆者考慮了一個(gè)卷積層上設(shè)置多個(gè)不同尺寸卷積核對文本分類準(zhǔn)確率的影響。因?yàn)椴磺‘?dāng)?shù)木矸e核組合可能會提取出多余的特征,干擾模型的分類結(jié)果。因此,卷積核的組合超參數(shù)需要實(shí)驗(yàn)調(diào)優(yōu)。選擇卷積核尺寸組合的標(biāo)準(zhǔn)與之前相同,實(shí)驗(yàn)以單一卷積核尺寸最優(yōu)的 5為參考,通過10折交叉驗(yàn)證得到表2結(jié)果。
從實(shí)驗(yàn)結(jié)果可知,當(dāng)卷積核組合為2、3、5的時(shí)候,模型的文本分類準(zhǔn)確率優(yōu)于卷積核尺寸為5和其他卷積核組合。因此模型的卷積層采取卷積核尺寸為2、3、5的組合。
表1 單一卷積核的實(shí)驗(yàn)結(jié)果
表2 卷積核組合的實(shí)驗(yàn)結(jié)果
3.對比實(shí)驗(yàn)結(jié)果。通過以上實(shí)驗(yàn),筆者針對中文短文本構(gòu)建出了合適的基于LSTM-CNN的分類模型(在表3中稱為LSTM-CNN模型)。為了驗(yàn)證這一分類模型在中文短文本分類中的優(yōu)越性,筆者使用復(fù)旦大學(xué)語料庫、搜狐新聞?wù)Z料庫以及酒店評論語料庫,將構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)模型與李文波提出的Labeled-LDA模型①李文波等:《基于Labeled-LDA模型的文本分類新算法》,《計(jì)算機(jī)學(xué)報(bào)》2008年年第4期。、陳慧構(gòu)建的SVM模型②陳慧等:《多種算法對不同中文文本分類效果比較研究》,《軟件導(dǎo)刊》2019年第5期。、遲麟提出的KNN模型③遲麟:《中文文本分類中特征選擇算法及分類算法的研究》,燕山大學(xué)2010年碩士學(xué)位論文。、馮國明提出的CapsNet模型④馮國明等:《基于CapsNet的中文文本分類研究》,《數(shù)據(jù)分析與知識發(fā)現(xiàn)》2018年第12期。進(jìn)行對比實(shí)驗(yàn),得到的實(shí)驗(yàn)結(jié)果如表3所示。
從實(shí)驗(yàn)結(jié)果可以看出,與現(xiàn)有的 SVM、KNN、CapsNet和Labeled- LDA模型的實(shí)驗(yàn)結(jié)果相比,筆者構(gòu)建的LSTM-CNN模型在中文短文本分類方面有更高的準(zhǔn)確率和優(yōu)勢。
表3 對比實(shí)驗(yàn)結(jié)果
基于LSTM-CNN的中文短文本分類模型從基于語義的中文短文本預(yù)處理、通過LSTM提取語義信息以及通過卷積核組合提取不同粒度短文本特征等三個(gè)方面入手,有效地解決了傳統(tǒng)文本分類方法難以解決的文本特征稀疏性、短文本文本分類結(jié)果準(zhǔn)確率低等問題。限于篇幅,本文沒有對設(shè)計(jì)的結(jié)構(gòu)中參數(shù)背后的深層含義和理論問題進(jìn)行闡述,這些問題我們將另文研究和探討。