李 源,崔玉爽,王 偉
(1.安陽工學院 計算機科學與信息工程學院,河南 安陽 455000;2.信陽師范學院 計算機與信息技術學院,河南 信陽 464000)
近幾年,在“互聯網+”的背景下,各種網絡信息平臺不斷增加,人們的生活習慣也隨之發生了巨大變化,越來越多的用戶開始在網絡大眾平臺上發表自己的觀點和看法。但這一變化導致在互聯網上產生了海量的具有個人情感傾向的文本信息。如何有效地從這些主觀信息中挖掘出人們對某份商品、某項政策和某個事件的態度和意見,這將促使自然語言處理成為當前熱門研究領域的原因[1-2]。目前,在文本分類任務中最為常用的方法有兩類,即基于情感詞典的方法和基于機器學習(Machine Learning,ML)的方法。但隨著網絡信息的噴井式爆發,以往使用的樸素貝葉斯、支持向量機(Support Vector Machine,SVM)等淺層機器學習方法已經無法滿足對海量數據處理的要求,而深度學習的出現剛好彌補了這一缺陷,并在情感分類上獲得了很好的效果,其研究成果十分顯著[3-5]。文獻[6]中提出的英文文本分類模型,利用CNN實現句子級別的分類,有效降低了任務中特征工程的依賴性,其分類效果也得到了質的飛躍。TAI等人利用長短時記憶神經網絡(Long Short-Term Memory,LSTM)模型有效解決了情感分析中時序聯系問題,并實現了較優的分類效果[7]。潘曉英等提出的基于BiLSTM網絡和Attention的情感分類模型,利用Attention減少了文本中的冗余噪音,有效增強了模型的目標特征選擇能力[8]。盡管深度學習在情感分析任務中獲得了不俗的成就,但對于句子含義比較模糊且具有歧義的文本來說,還是無法精準全面的提取文本信息特征,導致其準確率大大降低,從而使其分類效果變差。針對此問題,筆者提出了一種基于字詞雙通道的輸入策略即采用兩個不同的通道有針對性地進行特征提取。其中,詞通道是利用詞性標注技術獲取相應單詞的詞性,并將其與標注詞拼接成“單詞-詞性”(Word-Position)的形式;該方法可有效地區分不同語境下詞的語義信息,相對于原始詞向量能達到消歧的作用。而字通道則是用來捕獲句子的細粒度信息,解決文本切分帶來的未登錄詞(Out Of Vocabulary,OOV)困擾,而且通過細粒度的字向量可有效輔助詞向量挖掘出更深層細致的文本信息。首先,利用CNN的卷積優勢全面捕捉輸入文本的信息特征,然后通過基于Attention的BiLSTM網絡有目標性地提取上下文全局特征,最后將融合的特征信息通過softmax函數進行訓練并獲取文本的類別標簽。通過對比實驗驗證得出,所提出的雙通道模型在文本分類任務中,其準確率、F1值和召回率等指標遠高于其他方法。
為消除輸入文本帶來的一詞多義和OOV等問題,模型采用Word-POS詞向量矩陣和字向量矩陣作為兩個方向上的輸入通道來挖掘出更深層次的語義信息和抽象特征,其網絡模型如圖1所示。最終的實驗結果顯示,該方法的使用在一定程度上充分提高了模型分類的精確率。具體實現過程如下。
對于長度為L的語句W={x1,x2,…,xl},先標注出句子中每個詞的對應詞性P={p1,p2,…,pl},緊接著再與原詞拼接為WP={(x1,p1),(x2,p2),…,(xl,pl)}的序列形式,并利用詞向量模型Word2vec將所有拼接序列映射為n維的wpk表示形式,最終定長例句L被轉化為l×n維的向量矩陣。在此基礎上,為了保持文本的基本特征,還需要將字向量信息引入到文本建模中,因此在模型中引入字詞雙通道策略,即分別采用Word-POS詞向量和字向量作為兩個不同通道的模態信息,輸入序列分別表示為S1={wp1,wp2,…,wpl}和S2={x1,x2,…,xm},其中,S1是詞性拼接向量矩陣,wpk為文本中第k個Word-POS單位詞匯的向量表示。S2是字向量矩陣,xk是樣本中第k個字的字向量表示。
模型通過使用多種尺寸的卷積核對輸入的詞向量通道和字向量通道分別進行卷積操作,盡可能地提取出更全面的信息特征。模型采用了h=3、h=4和h=5這3種不同類型的卷積核,其中,S1和S2分別代表Word-POS詞向量通道和字向量通道,在卷積操作后得到Chi,以其表示所有卷積核計算結果。當卷積核的高度為h時,每次卷積滑動提取的特征值表示為
Chi=f(W1S1,i:(i+h)+W2S2,i:(i+h)+b) ,h=3,4,5,
(1)
其中,W為雙通道上的權重值;b為偏置因子;f(·)是非線性激勵函數,此處采用Relu函數。
使用卷積核對文本進行上下滑動提取信息特征。若指定高度為h,則可提取l-h+1個卷積特征。C表示所有類別的卷積核形成的特征圖集合:
C={Ch,1,Ch,2,…,Ch,l-h+1},h=3,4,5 。
(2)
為了降低卷積操作帶來的過擬合風險,需要加入池化層對文本特征做降維運算,以便提取出具有目標性的情感極性特征。池化運算的公式為
C(2)=max(Ch,i) ,
(3)
其中,C(2)是所有卷積核在max-pooling后得到的特征圖集合。若每種尺寸的卷積核數量有m個,則經過池化后的特征集合C(3)定義為
(4)
融合層:將S1與S2提取的信息特征進行對應合并,獲得最終的特征集合C(4),可表示為
(5)
近年來,循環神經網絡及其變體深受廣大學者的青睞,被廣泛應用在各個領域中并取得了豐碩的成果,一時間掀起了研究熱潮[9-10]。與其他的神經網絡相比,該類網絡在解決文本序列問題上具有更好的適應性,所以一般都被用來解決自然語言處理領域的文本情感分類項目。
文獻[1]提出的長短時記憶網絡(Long-Short Term Memory,LSTM),盡管有效緩解了梯度難題,但卻只能學習當前詞之前的信息,而文本分類任務不但與歷史信息聯系密切,還與未來的信息存在相互關系,因此,采用雙層LSTM分別從文本的兩個方向讀取輸入信息,既克服了梯度問題,又能學習到當前詞的前后文語義信息。基于此,在以上卷積神經網絡的基礎上添加了一種深度雙向長短時記憶神經網絡(Bidirectional Long Short Term Memory,BiLSTM)。如圖2所示,把多個BiLSTM網絡層疊起來,每一層通過連接兩個方向相反的LSTM來完成建模,在任意時刻t,模型能夠同時考慮到過去和將來的上下文聯系。其中,該模型在t時刻輸出層BiLSTM的隱藏狀態Ht包括前向的ht1和后向的ht2,其計算公式為
ht1=H(Wxhxt+Whhht-1+bh) ,
(6)
ht2=H(Wxhxt+Whhht+1+bh) ,
(7)
yt=Wyhht1+Whht2+by,
(8)
其中,ht是t時刻的隱藏層,Wx代表權重矩陣,模型的最終輸出狀態yt代表文本的特征向量。
在提出的雙通道CNN的模型結構上,又結合了基于Attention的深度BiLSTM網絡模型構建一種新的字詞雙通道情感分析模型(Convolutional natural networks-Attention-Bidirectional Long Short-Term Memory,C-A-BiLSTM)。該網絡模型包含四個階段:第1部分根據中文文本的特點設計兩個通道的卷積神經網絡,主要應用于處理不同環境下所產生的不同數據特征。第2部分利用卷積優勢,挖掘語句深層抽象特征,提取出更充分的局部文本信息。第3部分引入多層BiLSTM來獲取融合特征數據的前后文時序信息,以便實現全局性的深層特征信息挖掘。第4部分利用注意力機制準確把握關鍵詞,解決信息冗余等問題。最后,將提取出來的特征通過softmax函數進行訓練,并輸出文本的標簽類別,最終完成情感分類任務。其模型結構如圖3所示。
模型構建的主要步驟為:
步驟1 數據預處理。載入數據語料,利用jieba中文分詞工具對輸入文本進行切片處理,并與下載的公開停用詞庫進行逐一匹配,過濾掉一些亂碼、表情符號等無用信息。
步驟2 訓練Word-POS詞向量和字向量。其中,字向量的訓練采用未標注的數據集,而詞向量的訓練則使用經過詞性標注和拼接后的數據集,并且統一運用Word2Vec工具的Skip Gram方法進行訓練。
步驟3 卷積、池化。采用多尺寸的卷積核對詞通道和字通道分別進行卷積操作,以盡可能地挖掘出更多的文本語義信息。模型中水平設置3個典型CNN,卷積核大小分別是3×100、4×100、5×100,3種過濾器各64個,stride大小設置為1,池化層采用最大池化操作,提取關鍵特征,映射成低維特征向量,進而減弱卷積操作帶來的向量維度過高問題。
步驟4 訓練BiLSTM模型。把步驟3中提取的特征數據輸入深度BiLSTM模型中再次進行訓練并微調。當前輸入與前后序列都相關,經過BiLSTM隱含層能夠同時捕捉到過去和將來的上下文信息,并成為下一層BiLSTM網絡相應神經元的輸入。以此類推,最后將有限個BiLSTM網絡層的輸出部分進行特征融合,并與注意力機制相連接作為全連接層的輸入。
步驟5 注意力機制[12]。將注意力機制引入卷積雙向長短時記憶網絡(Convolutional Bidirectional Long Short-Term Memory,C-BiLSTM)模型中,表示不同特征數據的重要性。注意力機制將會產生注意力權重矩陣α和特征表示v,其計算公式為
ut=tan(Wxyt+bw) ,
(9)
(10)
(11)
其中,ut是隱藏單元,uw是一個單詞級的前后文向量,at是注意力向量,yt是深層BiLSTM輸出的文本特征向量,v是經過Attention計算后輸出的特征向量,并作為下一層的輸入。
步驟6 全連接層。模型中加入了2個全連接層,其主要作用是對數據進行加權運算和得出最終的特征向量,其計算公式為
V′=f(wv+b) ,
(12)
其中,v為上一層得到的特征向量,n代表偏置因子,w代表權重矩陣,f代表激活函數(這里采用的是高級激活函數PReLU)。另外,模型中的CNN網絡和BiLSTM網絡中分別采用了relu和tanh激活函數。
步驟7 嵌入Dropout方法。在第一個全連接層嵌入Dropout技術后會在神經網絡的學習過程中對部分神經元進行隨機失活,以致每次迭代時都會形成新的目標網絡,進而增強模型的泛化能力。
步驟8 輸出層。將第二個全連接層輸出的特征數據V″輸入softmax函數進行訓練,并利用softmax函數獲取待分析句子的所屬情感標簽。
模型使用了softmax函數來接收全連接層的特征數據V″,最終獲取特定方面的情感預測標簽Y,預測結果為
Y=soft max(WV″+B) ,
(13)
其中,W代表權重項,B代表偏置因子。而模型的最終目標函數表示為
(14)
實驗是基于Windows 10(64 bit)的操作系統,CPU為Intel(R)Core(TM)i7-8550U 2.0 GHz,內存為16.0 GB;編程語言使用的是具有強大第三方庫的Python3.5,深度學習框架使用的是靈活性較強的Keras 1.2.2;對于詞向量的訓練采用的是深度學習中最受歡迎的Word 2vec。
為了能直觀全面地對比模型在多種情況下的分類效果,使用精確率(P)、召回率(R)以及F1值作為分類任務的評價指標。計算公式為
P=C/A,
(15)
R=C/B,
(16)
F1=2PR/(P+R) ,
(17)
其中,A為模型正確預測和錯誤預測的所有樣本數據之和,B為模型評估時真正屬于該類的樣本數,C為模型正確判定的樣本數據。另外,為了衡量模型的分類準確度,還采用準確度(Accuracy)指標以評價總體實驗效果。
采用的數據集是從淘寶平臺中利用Scrapy框架爬取的有關電子產品、家電等商品評論語料,經過預處理操作后,選取約 22 056 條評論作為數據集。其中,在爬取的評論數據中存在星級評分制度,從一星標簽到五星標簽不等,該評分顯示了顧客對購買產品的滿意度,在實驗中將三星及以下默認為負面評論,其余的則默認為正面評論,以此進行文本情感分析研究。
為考察所提出方法的各個參數對模型的影響程度,使用最優參數設置、選擇固定其他參數設置以及改變可變參數的大小等3種情況進行對比實驗。
超參數學習速率的大小設置對模型的分類效果具有一定影響,若速率太大,則容易導致目標函數波動幅度較密,從而難以找到最優值。該實驗分析了學習速率在訓練集和測試集下對模型分類效果的變化趨勢。根據圖4顯示,當學習速率增加到0.5時,訓練集和測試集上的準確率直線上升至91%,說明模型的優化已經產生了較好的效果,之后隨著學習速率的增大,準確率開始呈現下降趨勢。因此為保證模型能達到最佳性能,設置學習速率為0.5。
模型訓練的迭代次數對情感分析效果影響很大。若迭代次數過少,則容易產生數據訓練不足的欠擬合問題;反之,若迭代次數過多,則又會出現眾多負面影響,導致模型泛化能力下降。圖5顯示了模型在訓練集中迭代次數為1~20時各相關指標變化情況,其中包含準確度、F1和召回率(recall)的變化趨勢。從圖中可以看出,在迭代了20次以后模型的多項評價指標基本都處于穩定狀態,因此該實驗的迭代次數(Epoch)值被設為20。

圖5 迭代次數對模型效果的影響
隨機失活(Dropout)的作用是根據設定的概率P對于模型中的部分神經元進行隨機失活,這種技術的引入可以增強模型的泛化性,有助于找出目標解,進而提高模型的訓練效率。圖6主要對比了Dropout值在訓練集上模型各指標之間的變化趨勢。從圖中可以看出,當Dropout值在0.5時,模型的各項指標均達到最優,而超過0.5時卻呈現下降趨勢。因此,在實驗中選擇將Dropout值調為0.5。

圖6 Dropout值與模型效果對比圖
模型在訓練過程中的準確度、F1值和損失函數變化趨勢如圖7所示。其中,圖7中的train-acc、train-F1分別表示訓練過程中訓練集的準確率和F1值,而val-acc、val-F1分別表示訓練過程中驗證集的準確率和F1值。圖7顯示,在Epoch值大于20時,各曲線走向逐漸處于平穩狀態,表明模型的訓練已達到預期效果。

圖7 訓練中的準確率和F1值對比圖
為了進一步證明所提方法的高效性和準確性,將文中模型分別與CNN模型、LSTM模型、C-BiLSTM模型以及SVM在相同的數據集上進行分類結果性能對比,具體對比結果如表1所示。
根據表1的實驗結果顯示,在處理文本分析任務中的二分類問題上,文中所提的模型在分類效果上最好,評估指標Accuracy和F1值分別為94.5%和 94.4%。其中,單模型LSTM和CNN的最終分類效果相對較差,但總體上其各項指標還是遠優于傳統機器學習中表現最好的SVM算法,而 C-BiLSTM 模型與單模型相比較而言,其在準確率、召回率和F1值上均得到了顯著提升,這是因為該模型將CNN網絡和BiLSTM網絡進行聯合使用,既能提取局部特征,又能捕捉文本前后文語義信息,大大增強了模型對信息特征的綜合學習能力,因此,CNN網絡和BiLSTM網絡的聯合使用能取得比以往單模型更好的分類效果。而文中模型是在C-BiLSTM模型的基礎上引入了字詞雙通道策略和Attention技術,在進行文本序列的特征提取時,能夠更加全面和準確地挖掘出深層次的文本情感特征,使模型達到更好的分類效果。因此,字詞雙通道C-A-BiLSTM模型的準確率、召回率、F1值等各項指標都超過了C-BiLSTM模型。

表1 5種模型的分類結果性能對比表
由表2可知,5種對比模型的泛化誤差均高于訓練誤差的約3.00%~4.00%,主要原因是出現了數據過擬合;同時,從表中也可以看出,CNN模型的泛化誤差與測試誤差相差約0.74%,LSTM 模型的泛化誤差與測試誤差相差接近0.07%,C-BiLSTM模型的泛化誤差與測試誤差大約相差0.23%,而文中模型的泛化誤差與測試誤差大約相差0.22%;此外,在文本分類效果方面文中模型均優于其他幾種對比模型,其中,比CNN模型的分類錯誤率降低了約5.83%,比SVM模型的分類錯誤率降低了約6.52%,比C-BiLSTM 模型的分類錯誤率降低了約1.81%。綜上所述,通過多項對比充分證明了筆者所提出的模型在文本分類任務中具有較好的性能表現和較小的誤差損失。

表2 5種模型的誤差對比表 %
結合中文評論語料特點,為改善以往情感分析方法存在的準確率低、提取信息不全面等缺陷,筆者提出了一種基于字詞雙通道的文本情感分析方法。該模型引入了雙通道策略即分別在字向量和詞向量兩個不同的通道上實現卷積運算,通過最小單位的字向量來輔助詞向量挖掘出更全面準確的信息特征,并在此基礎上利用與Attention機制結合的A-BiLSTM網絡進一步提取上下文信息,以此得到更優質全面的目標特征,從而增強模型的分類性能和精確程度。依據實驗結果顯示,所提出的C-A-BiLSTM模型在文本情感分類上具有更高的準確率和F1值。
但是,由于該模型涵蓋了兩種深度網絡,參數較多,很大程度上會出現過擬合風險,因此下一步將繼續對深度學習和文本語義分析進行更深層次的研究。