潘 列,曾 誠(chéng),2,3*,張海豐,溫超東,郝儒松,何 鵬,2,3
(1.湖北大學(xué)計(jì)算機(jī)與信息工程學(xué)院,武漢 430062;2.湖北省軟件工程工程技術(shù)研究中心(湖北大學(xué)),武漢 430062;3.智慧政務(wù)與人工智能應(yīng)用湖北省工程研究中心(湖北大學(xué)),武漢 430062)
隨著網(wǎng)民數(shù)量的增長(zhǎng),越來(lái)越多的評(píng)論信息不斷涌現(xiàn)。網(wǎng)民可以在政府網(wǎng)站、微博等公眾平臺(tái)發(fā)表對(duì)各類(lèi)事情的看法,表達(dá)自己的情感態(tài)度。自然語(yǔ)言處理中的情感分析任務(wù)在其中扮演越來(lái)越重要的角色,發(fā)揮重要的作用。從政府的角度來(lái)看,通過(guò)輿論來(lái)分析公眾對(duì)社會(huì)熱點(diǎn)事件的情感,了解公眾輿論,對(duì)政府及管理部門(mén)防范危險(xiǎn)事件的發(fā)生具有一定的意義;從企業(yè)角度來(lái)看,可以利用輿情提高自身的綜合競(jìng)爭(zhēng)力;從公眾角度來(lái)看,可以利用輿情導(dǎo)向?yàn)樽陨砩罟ぷ魈峁┲匾膮⒖家罁?jù)。當(dāng)前,無(wú)論是在政府平臺(tái),還是網(wǎng)絡(luò)電商行業(yè)都有情感分析方面的應(yīng)用,但由于語(yǔ)言的復(fù)雜性、多樣性,以及隨著時(shí)間發(fā)展不斷涌現(xiàn)的網(wǎng)絡(luò)詞匯等因素的綜合影響,中文文本情感分析任務(wù)仍具有挑戰(zhàn)性,且具有較大的研究?jī)r(jià)值。
為了更好地應(yīng)用文本的語(yǔ)義信息、上下文信息以及各通道之間的關(guān)聯(lián)信息,提升模型對(duì)文本情感分析能力,本文將廣義自回歸預(yù)訓(xùn)練語(yǔ)言模型XLNet 與循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(Recurrent Convolutional Neural Network,RCNN)相結(jié)合,提出了一種基于XLNet-RCNN 的文本情感分析方法。在三個(gè)公開(kāi)情感分析數(shù)據(jù)集上與其他現(xiàn)有方法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果驗(yàn)證本文方法在文本情感分析任務(wù)中的有效性。
文本分類(lèi)任務(wù)中的二分類(lèi)問(wèn)題情感分析主要包含兩個(gè)重要步驟,首先是文本特征提取,其次是文本特征分析與分類(lèi)。其中對(duì)文本特征的提取與表示,許多相關(guān)專(zhuān)業(yè)研究者耗費(fèi)大量時(shí)間精力對(duì)其進(jìn)行探索研究。例如傳統(tǒng)機(jī)器學(xué)習(xí)中的分類(lèi)算法有樸素貝葉斯(Naive Bayes)、支持向量機(jī)(Support Vector Machine,SVM)、K 最鄰(K-Nearest Neighbors,KNN)方法等,這些機(jī)器學(xué)習(xí)方法都曾被普遍應(yīng)用于工業(yè)領(lǐng)域,但其缺點(diǎn)是構(gòu)造分類(lèi)器之前,需要構(gòu)建復(fù)雜的特征,工程成本較高,并且采用傳統(tǒng)詞袋(Bag-of-Words,BoW)模型表示文本,導(dǎo)致文本特征數(shù)據(jù)存在維數(shù)高、矩陣稀疏等問(wèn)題,因此導(dǎo)致文本分類(lèi)效果不佳。
在深度學(xué)習(xí)研究中,出現(xiàn)了更為有效的文本表示方法。Mikolov 等在2013 年提出Word2Vec 模型對(duì)提取到的文本特征進(jìn)行表示,Pennington 等在2014年提出全局向量(Global Vectors,GloVe)對(duì)文本特征進(jìn)行表示。上述兩種文本特征表示方法雖能有效解決特征表示維度的問(wèn)題,但是這兩種方法均采用靜態(tài)方式對(duì)文本特征進(jìn)行表示,未考慮文本的位置信息,對(duì)于同一詞在不同上下文關(guān)系卻表示為相同的詞向量,也不能解決一詞多義問(wèn)題。
為了解決文本信息表示不準(zhǔn)確問(wèn)題,Peters 等提出了基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的語(yǔ)言模型嵌入(Embeddings from Language MOdels,ELMO),Radford 等提出了生成式預(yù)訓(xùn)練(Generative Pre-Training,GPT)模型,其中GPT使用了Transformer 的decoder 結(jié)構(gòu),但其在文本encoder 方法存在不足。Devlin 等提出了基于Transformers的雙向編碼預(yù)訓(xùn)練語(yǔ)言模型BERT(Bidirectional Encoder Representations from Transformers)避免了GPT 模型出現(xiàn)的問(wèn)題;Lan 等在2019年提出了輕量化的BERT 模型ALBERT(A Lite BERT);曾誠(chéng)等提出的ALBERT-CRNN 情感分析方法對(duì)情感分類(lèi)效果進(jìn)行了提升,但其未充分考慮文本語(yǔ)序問(wèn)題?;赥ransformer-XL特征提取器的提出,Yang 等提出了XLNet,該模型將Transformer-XL 的分割循環(huán)機(jī)制和相對(duì)編碼范式(relative encoding)整合到訓(xùn)練中,并對(duì)Transformer-XL的網(wǎng)絡(luò)參數(shù)進(jìn)行修改,移除其模糊性,相較于其他模型提升了效果。
情感分析任務(wù)中文本特征分析分類(lèi)方法可分為三種:詞典和規(guī)則方法、傳統(tǒng)機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法。其中前兩種分析分類(lèi)方法實(shí)現(xiàn)簡(jiǎn)單,原理容易理解,但對(duì)于不同領(lǐng)域的泛化能力和遷移能力較差,分類(lèi)的準(zhǔn)確度也不高,因此基于深度學(xué)習(xí)的情感分析分類(lèi)方法越來(lái)越受到關(guān)注。Socher 等將循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)結(jié)合上下文信息應(yīng)用到自然語(yǔ)言處理任務(wù)中。Kim為解決傳統(tǒng)算法不足,提出文本卷積神經(jīng)網(wǎng)絡(luò)(Text Convolutional Neural Network,TextCNN)對(duì)輸入文本進(jìn)行卷積、池化計(jì)算,獲取文本的多維信息。Cho 等提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)。在此基礎(chǔ)上,Dey 等改進(jìn)出LSTM 的另一個(gè)變體門(mén)控循環(huán)單元(Gated Recurrent Unit,GRU)網(wǎng)絡(luò),該模型將長(zhǎng)短期記憶網(wǎng)絡(luò)的輸入、遺忘門(mén)合并修改為更新門(mén),同時(shí)也融合細(xì)胞、隱含兩種狀態(tài),使得新模型更加簡(jiǎn)單實(shí)用。由于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)不能獲得輸入文本中的長(zhǎng)期依賴關(guān)系,循環(huán)神經(jīng)網(wǎng)絡(luò)在提取評(píng)論文本特征時(shí)可能出現(xiàn)訓(xùn)練不穩(wěn)定無(wú)法提取深層語(yǔ)義信息的情況,并且對(duì)整個(gè)評(píng)論文本進(jìn)行單向建模有可能會(huì)忽略一些對(duì)文本分類(lèi)重要的局部上下文信息,導(dǎo)致其在一些文本分類(lèi)任務(wù)上出現(xiàn)性能不佳等問(wèn)題。針對(duì)以上所述問(wèn)題,Lai 等提出了一種結(jié)合CNN 與BiGRU 的RCNN 模型,該模型使用BiGRU雙向抽取深層語(yǔ)序信息,并使用CNN獲取文本的重要成分,充分利用了CNN和BiGRU各自的優(yōu)勢(shì),顯著提升了模型的效果。
現(xiàn)有的預(yù)訓(xùn)練語(yǔ)言模型可分為自回歸(AutoRegression,AR)語(yǔ)言模型和自編碼(AutoEncoder,AE)語(yǔ)言模型。AR 僅能學(xué)習(xí)到依賴關(guān)系,AE 僅能學(xué)習(xí)到深層雙向語(yǔ)義信息,兩種模型單獨(dú)使用都存在一定的不足。
XLNet結(jié)合了AR 和AE 的優(yōu)勢(shì),彌補(bǔ)了單獨(dú)使用AR和AE 語(yǔ)言模型的不足,在AR 上實(shí)現(xiàn)雙向預(yù)測(cè)。XLNet 的核心思想是使用排列語(yǔ)言模型(Permutation Language Model,PLM)方法,將句子中的token 隨機(jī)排列組合,然后用AR 來(lái)預(yù)測(cè)末尾的token,這樣既可以利用當(dāng)前token
的雙向位置信息,也可以學(xué)習(xí)到各token 之間的依賴關(guān)系。具體PLM 實(shí)例如圖1 所示。假設(shè)原始輸入文本為{1,2,3,4,5},使用PLM 隨機(jī)打亂序列順序,然后依次使用AR 預(yù)測(cè)token,每個(gè)token 都可以利用前token 信息。圖1 排列語(yǔ)言模型實(shí)例Fig.1 Permutation language model instance
XLNet 是一種可以獲得雙向上下文信息的自回歸語(yǔ)言模型,該模型是在大規(guī)模無(wú)監(jiān)督語(yǔ)料上訓(xùn)練所得,可以通過(guò)上下文動(dòng)態(tài)計(jì)算向量,用來(lái)表示字的多義性。該模型的核心是以排列組合的方式重構(gòu)輸入文本。由于重構(gòu)方式打亂了句子的順序,而在預(yù)測(cè)時(shí)token 的初始位置信息也非常重要,并且在預(yù)測(cè)時(shí)需要將token 的內(nèi)容信息遮蔽,如果將待預(yù)測(cè)的信息輸入,模型就無(wú)法學(xué)到知識(shí)。因此XLNet 采用雙流自注意力(Two-Stream Self-Attention)方法計(jì)算:Query Stream 計(jì)算每個(gè)token,其中包含token 在原始句子中的位置信息,而Content Stream 用于計(jì)算每個(gè)token 的內(nèi)容信息。具體計(jì)算方法如圖2 所示。
圖2 雙流自注意力計(jì)算Fig.2 Two-stream self-attention calculation
Query Stream 用g
表示,Content Stream 用h
表示,使用其對(duì)位置進(jìn)行預(yù)測(cè)時(shí),Q
(Query)向量是用g
計(jì)算得到的,包含token 的位置信息,而K
(key)和V
(value)是通過(guò)h
計(jì)算得到,其中包含其他token 的內(nèi)容信息。其中Memory
表示前一個(gè)XLNet 中的內(nèi)容信息。對(duì)于XLNet 中的Transformer-XL 在繼承了Transformer 結(jié)構(gòu)的基礎(chǔ)上引入循環(huán)機(jī)制和相對(duì)位置編碼的概念。為了更加快捷地處理數(shù)據(jù),首先在評(píng)論文本數(shù)據(jù)輸入階段把文本序列劃分為固定長(zhǎng)度的文本片段,其次使用Transformer 提取評(píng)論文本片段信息,但是這樣就會(huì)遺失相鄰文本序列的語(yǔ)序相關(guān)信息,長(zhǎng)期以來(lái)甚至比不上機(jī)器學(xué)習(xí)模型RNN。因此,引入RNN 來(lái)提取隱藏狀態(tài)信息,作為文本長(zhǎng)期依賴的基礎(chǔ),Transformer-XL 將隱藏的狀態(tài)信息插入片段中,并存儲(chǔ)前一階段提取的文本片段信息,最后將其提供給下一個(gè)片段進(jìn)行預(yù)測(cè)。這樣不僅可以防止序列信息的丟失,而且可以更充分地挖掘和保留長(zhǎng)距離文本信息。圖3 所示為評(píng)論文本序列間引入循環(huán)機(jī)制,從而實(shí)現(xiàn)隱性狀態(tài)信息循環(huán)傳遞,其中灰線表示儲(chǔ)存的狀態(tài)信息。因?yàn)锽ERT 模型提取語(yǔ)義信息時(shí)沒(méi)有儲(chǔ)存前一序列的信息,所以在預(yù)測(cè)X
時(shí)沒(méi)有可以利用的信息,從而導(dǎo)致預(yù)測(cè)過(guò)程存在不足。而XLNet 模型則可以利用前一序列中儲(chǔ)存的X
、X
、X
信息,幫助下一序列進(jìn)行預(yù)測(cè),實(shí)現(xiàn)了信息的循環(huán)傳遞。圖3 XLNet循環(huán)機(jī)制信息傳遞Fig.3 XLNet cycle mechanism for information transmission
基線Transformer 未充分考慮不同片段中出現(xiàn)同一詞的可能性,而在對(duì)評(píng)論文本位置編碼過(guò)程中這種情況是存在的,如果仍然使用絕對(duì)位置編碼,那么同一字在不同語(yǔ)境的表示完全一樣,則不能體現(xiàn)同一個(gè)字在不同語(yǔ)境中的區(qū)別。絕對(duì)編碼公式如下所示:
V
表示當(dāng)前序列向量編碼;V
表示上一序列向量編碼;TV
表示當(dāng)前片段文本向量編碼;PV
表示當(dāng)前序列位置編碼。可以發(fā)現(xiàn)不同序列中PV
是不變的,即若文本序列中存在相同的字,則字的編碼表示是一樣的。因此,為了更直觀地體現(xiàn)絕對(duì)位置編碼與相對(duì)位置編碼之間的區(qū)別,列出了基線Transformer 中各文本序列的自注意力機(jī)制公式:E
、E
分別表示i
,j
的文本序列向量;U
、U
分別表示字i
,j
的位置向量,因?yàn)槭褂玫氖墙^對(duì)位置向量,所以U
=U
;W
表示權(quán)重矩陣。引入相對(duì)位置編碼后,基線Transformer 的自注意力機(jī)制公式變?yōu)椋?p>R
表示第i
字與第j
字之間的相對(duì)位置距離。XLNet 以Transformer-XL 框架為核心,通過(guò)引入循環(huán)傳遞機(jī)制和相對(duì)位置信息編碼,可以充分利用文本語(yǔ)境信息,并且結(jié)合每個(gè)字上下文的信息,更好地表征字的多義性,體現(xiàn)了自回歸模型的優(yōu)越性。
圖4 GRU結(jié)構(gòu)Fig.4 GRU structure
RCNN 由循環(huán)神經(jīng)網(wǎng)絡(luò)與CNN 結(jié)合而來(lái),網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。RCNN 主要由雙向門(mén)控循環(huán)網(wǎng)絡(luò)BiGRU 層和池化層組成。式(5)、(6)將文本預(yù)處理得到的特征X
,X
,…,X
輸入到雙向循環(huán)神經(jīng)網(wǎng)絡(luò)BiGRU 中學(xué)習(xí)輸入文本的上下文語(yǔ)境信息得到F
、F
;式(7)將BiGRU 層輸出的上下文特征與預(yù)訓(xùn)練輸入的特征相拼接,并通過(guò)tanh 激活函數(shù)計(jì)算歸一化后文本特征F
;式(8)將計(jì)算輸出的文本特征F
進(jìn)行池化MaxPool 操作得到文本特征F
,池化操作可以使神經(jīng)網(wǎng)絡(luò)將有利于分類(lèi)的特征放大,提高分類(lèi)的準(zhǔn)確性,最后使用Softmax 進(jìn)行分類(lèi),從而得出文本的情感極性。圖5 RCNN結(jié)構(gòu)Fig.5 RCNN structure
本文提出的XLNet-RCNN 文本情感分析方法主要包括以下步驟:1)對(duì)數(shù)據(jù)集進(jìn)行清洗,剔除不規(guī)范或會(huì)對(duì)分析結(jié)果產(chǎn)生影響的噪聲數(shù)據(jù);2)在自回歸語(yǔ)言模型XLNet 上使用截取文本平均長(zhǎng)度的方法進(jìn)行微調(diào)(fine-tuning)訓(xùn)練,得到最優(yōu)效果,并保存文本的動(dòng)態(tài)特征;3)使用結(jié)合BiGRU 與MaxPool 的神經(jīng)網(wǎng)絡(luò)模型RCNN 對(duì)文本的動(dòng)態(tài)特征進(jìn)行訓(xùn)練,從而獲得每條文本數(shù)據(jù)的深層語(yǔ)義特征;4)利用Softmax函數(shù)對(duì)文本的深層語(yǔ)義特征進(jìn)行分類(lèi),最終計(jì)算出每條輸入文本數(shù)據(jù)的情感極性。
XLNet-RCNN 方法的結(jié)構(gòu)如圖6 所示,主要由以下6 個(gè)部分組成:輸入層、XLNet 層、RCNN 層(包括BiGRU 層和池化層)、池化層、Softmax 層和輸出層。
圖6 XLNet-RCNN方法結(jié)構(gòu)Fig.6 XLNet-RCNN method structure
具體實(shí)驗(yàn)流程如下:
步驟1 數(shù)據(jù)預(yù)處理。將數(shù)據(jù)文本進(jìn)行正則化處理,刪去影響情感分析的文本片段,例如微博數(shù)據(jù)集中評(píng)論的用戶名會(huì)對(duì)分類(lèi)結(jié)果產(chǎn)生影響,剔除不必要的用戶名片段,提高數(shù)據(jù)的規(guī)范性。
步驟2 數(shù)據(jù)輸入。在輸入層將清洗后的文本數(shù)據(jù)輸入到模型XLNet,輸入的文本數(shù)據(jù)X=
(X
,X
,…,X
),其中X
表示該文本的第i
個(gè)字。步驟3 提取文本特征。將XLNet 層輸入的文本數(shù)據(jù)序列化處理,并將文本數(shù)據(jù)X
中的每個(gè)字轉(zhuǎn)化為其所在字典中所對(duì)應(yīng)的編號(hào),以獲得序列化的文本數(shù)據(jù)E=
(E
,E
,…,E
),其中E
表示文本中第i
個(gè)字的序列化表示。利用Transformer-XL 自回歸編碼器對(duì)序列化后的文本進(jìn)行訓(xùn)練,獲取文本數(shù)據(jù)的動(dòng)態(tài)特征表示。文本數(shù)據(jù)的特征表示為T
=(T
,T
,…,T
),其中T
表示第i
個(gè)字的特征向量。在使用Transformer-XL 自回歸編碼器提取文本特征時(shí),首先計(jì)算當(dāng)前文本中每個(gè)字與其他字之間的相對(duì)位置關(guān)系,然后利用這些相對(duì)位置信息去調(diào)整每個(gè)字的權(quán)重,從而獲得句子中每個(gè)字新的表征。通過(guò)這種方法訓(xùn)練出的文本特征表示T
充分利用了句子中字的相對(duì)位置關(guān)系,使得一個(gè)字在不同上下文語(yǔ)境中有更好的表達(dá),較好地區(qū)分了一個(gè)字在不同上下文語(yǔ)境中的不同含義。步驟4 提取深層語(yǔ)義特征。將文本特征T
分別傳給BiGRU 層的前向GRU 層和后向GRU 層。前向GRU 順序提取文本T
的深層語(yǔ)義特征,后向GRU 逆序提取文本深層語(yǔ)義特征,通過(guò)多個(gè)GRU 隱藏單元的訓(xùn)練,最終得到兩個(gè)文本向量的上下文語(yǔ)義特征,分別記作F
和F
。步驟5 文本特征拼接及分類(lèi)。將正向深層語(yǔ)義特征F
、文本數(shù)據(jù)特征T
和反向深層語(yǔ)義特征F
拼接,得到完整的語(yǔ)義特征,最后通過(guò)激活函數(shù)和全連接層輸出分類(lèi)。步驟3 中的XLNet 對(duì)文本進(jìn)行排列組合是在Transformer-XL 內(nèi)部通過(guò)Attention Mask 矩陣來(lái)實(shí)現(xiàn)的,通過(guò)Attention Mask 矩陣可以得到不同的輸入文本排列組合,使模型能夠充分提取并融合輸入文本的上下文信息,避免有效信息丟失,彌補(bǔ)了BERT 模型的不足。圖7 所示為XLNet 中Mask 機(jī)制實(shí)現(xiàn)方式的實(shí)例,假設(shè)原始輸入文本為{1,2,3,4,5},隨機(jī)生成文本序列為{3,2,1,5,4},而在輸入階段輸入的文本仍然是{1,2,3,4,5},那么XLNet 中的掩蓋機(jī)制如下所示。對(duì)于“1”,它只能利用“2”和“3”兩個(gè)的信息,所以在第一行中只保留第二、三位置的信息(圖中用實(shí)心表示),而其他位置的信息被掩蓋(圖中用空心表示)。再比如“3”位于第一個(gè)位置,沒(méi)有可以利用的信息,因此在第三行全部以空心表示。
圖7 XLNet模型Mask機(jī)制實(shí)例Fig.7 Mask mechanism instance of XLNet model
這種特征提取方式在最大限度上利用了XLNet 模型語(yǔ)義提取的優(yōu)勢(shì),因此得到了更優(yōu)的分類(lèi)效果。
通過(guò)對(duì)比實(shí)驗(yàn)來(lái)驗(yàn)證所提方法的效果,實(shí)驗(yàn)開(kāi)發(fā)工具使用Pycharm-2021.1,開(kāi)發(fā)語(yǔ)言Python-3.6.8,采用深度學(xué)習(xí)框架Pytorch-1.2.0,操作系統(tǒng)為Windows,硬件設(shè)備為Intel Xeon Gold 5218處理器和NVIDIA GeForce GTX5000-16G顯卡。
本文實(shí)驗(yàn)采用文本情感分類(lèi)任務(wù)中的三個(gè)公開(kāi)中文情感分析數(shù)據(jù)集weibo_sentiment(簡(jiǎn)稱wb)、waimai_10k(簡(jiǎn)稱wm10)和ChnSentiCorp(簡(jiǎn)稱Chn)測(cè)試方法處理情感分析任務(wù)的性能。wm10 數(shù)據(jù)集來(lái)源于百度外賣(mài)平臺(tái)收集的用戶評(píng)價(jià),其中包含4 001 條正向情感數(shù)據(jù)和7 987 條負(fù)向情感數(shù)據(jù)。Chn 數(shù)據(jù)集來(lái)源于哈爾濱工業(yè)大學(xué)譚松波老師收集整理的酒店、筆記本與書(shū)籍三個(gè)領(lǐng)域的評(píng)論語(yǔ)料,其中包含5 322 條正向情感數(shù)據(jù)和2 444 條負(fù)向情感數(shù)據(jù)。wb 數(shù)據(jù)集來(lái)源于新浪微博評(píng)論,其中包含59 994 條正向情感數(shù)據(jù)和59 996 條負(fù)向情感數(shù)據(jù)。由于本文使用三個(gè)不同的數(shù)據(jù)集進(jìn)行模型訓(xùn)練,因此在訓(xùn)練時(shí)需要對(duì)每個(gè)數(shù)據(jù)集的文本長(zhǎng)度進(jìn)行分析,取數(shù)據(jù)文本平均長(zhǎng)度作為最大序列長(zhǎng)度,通過(guò)數(shù)據(jù)集文本長(zhǎng)度統(tǒng)計(jì)將Chn 數(shù)據(jù)集最大序列長(zhǎng)度設(shè)置為140、wm10 數(shù)據(jù)集最大序列長(zhǎng)度設(shè)置為40、wb 數(shù)據(jù)集最大序列長(zhǎng)度設(shè)置為80,并且對(duì)超過(guò)平均序列長(zhǎng)度部分的進(jìn)行截取剔除,對(duì)文本序列長(zhǎng)度低于平均序列長(zhǎng)度的文本進(jìn)行空白填充,具體數(shù)據(jù)集統(tǒng)計(jì)情況如表1 所示。
表1 數(shù)據(jù)集統(tǒng)計(jì)信息Tab 1 Dataset statistical information
由于這些數(shù)據(jù)集正負(fù)情感傾向分布極為不均,因此本文對(duì)以上數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,其中包括剔除影響用戶名信息、將繁體字轉(zhuǎn)化為漢字、將所有字母轉(zhuǎn)化為小寫(xiě)字母等處理。數(shù)據(jù)清洗清洗過(guò)程及結(jié)果如表2 所示。最后按照8∶1∶1的比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集。
表2 數(shù)據(jù)清洗結(jié)果Tab 2 Data cleaning result
Acc
)、精確率(P
)、召回率(R
),F
1 值對(duì)分類(lèi)結(jié)果進(jìn)行分析。計(jì)算公式為:TP
表示正樣本被預(yù)測(cè)為正,FP
表示負(fù)樣本被預(yù)測(cè)為正,TN
表示負(fù)樣本被預(yù)測(cè)為負(fù),FN
表示正樣本被預(yù)測(cè)為負(fù)。實(shí)驗(yàn)中參數(shù)的選取直接影響最優(yōu)的實(shí)驗(yàn)結(jié)果。如表3 所示,本文XLNet 模型實(shí)驗(yàn)參數(shù)主要包括XLNet 和RCNN 模型的參數(shù)。其中XLNet 采用科大訊飛AI 研究院與哈爾濱工業(yè)大學(xué)社會(huì)計(jì)算與信息檢索研究中心聯(lián)合發(fā)布的XLNet中文自回歸語(yǔ)言模型XLNet-base-Chinese,可根據(jù)具體訓(xùn)練來(lái)調(diào)整超參數(shù)值,從而達(dá)到最優(yōu)實(shí)驗(yàn)效果。通過(guò)訓(xùn)練調(diào)整參數(shù)值,XLNet、RCNN、XLNet-RCNN 方法的訓(xùn)練參數(shù)如表3 所示。
表3 模型的訓(xùn)練參數(shù)Tab 3 Model training parameters
為驗(yàn)證本文方法的有效性,將本文方法與TextCNN、TextRCNN、BERT、XLNet、XLNet-CNN 和XLNet-RCNN 在wb、wm10、Chn 三個(gè)數(shù)據(jù)集上分別進(jìn)行對(duì)比實(shí)驗(yàn),其中:TextCNN、TextRCNN 均基于Word2Vec 構(gòu)建詞向量;BERT 采用Google 發(fā)布的中文預(yù)訓(xùn)練模型;XLNet 采用科大訊飛AI 研究院與哈爾濱工業(yè)大學(xué)社會(huì)計(jì)算與信息檢索研究中心聯(lián)合發(fā)布的XLNet-base-Chinese 來(lái)進(jìn)行文本特征表示,并在此模型上進(jìn)行fine-tuning,微調(diào)至結(jié)果最優(yōu)。
P
、召回率R
、和F
1 值結(jié)果如表4 所示。由實(shí)驗(yàn)結(jié)果可以看出,相較于TextCNN、TextRCNN、BERT、XLNet 和XLNet-CNN,XLNet-RCNN 方法在wb 數(shù)據(jù)集上的F
1 值分別提高了9.0、8.0、1.4、0.5 和0.3 個(gè)百分點(diǎn);在wm10 數(shù)據(jù)集上的F
1 值分別提高了6.3、7.6、3.9、0.9 和-0.1 個(gè)百分點(diǎn);在Chn 數(shù)據(jù)集上的F
1 值分別提高了11.2、10.2、6.0、0.8 和0.7 個(gè)百分點(diǎn)。從表4 可以看出,對(duì)于wm10 數(shù)據(jù)集,本文方法相較于XLNet-CNN 效果欠佳,原因是該數(shù)據(jù)集平均文本長(zhǎng)度較短約為40;TextRCNN相較于TextCNN效果較差,原因是TextRCNN 針對(duì)短文本數(shù)據(jù)時(shí)無(wú)法發(fā)揮其優(yōu)勢(shì)導(dǎo)致結(jié)果較差。這說(shuō)明了RCNN 在文本分類(lèi)任務(wù)中較擅長(zhǎng)處理中長(zhǎng)文本,而對(duì)于短文本本文模型提升有限,因此出現(xiàn)以上結(jié)果。
表4 各模型在三個(gè)數(shù)據(jù)集上的評(píng)價(jià)結(jié)果 單位:%Tab 4 Evaluation results of models on three datasets unit:%
由實(shí)驗(yàn)結(jié)果可以得出,相較于其他Word2Vec 構(gòu)建詞向量的模型,XLNet 和XLNet-RCNN 在文本情感分析領(lǐng)域分析有明顯的優(yōu)勢(shì),證明自回歸語(yǔ)言模型提取的文本特征能夠利用句子中字的上下文信息,較好地區(qū)分了一個(gè)字在不同上下文的不同含義,從而提升了模型在情感分析任務(wù)中的效果??傮w上來(lái)看,XLNet-RCNN 相較于XLNet 及其他模型在文本情感分析任務(wù)中有更優(yōu)的表現(xiàn),證明融合RCNN 模型能夠充分獲取文本深層語(yǔ)義信息,使本文方法在情感分類(lèi)任務(wù)的效果得到了提升。
由表4 可以發(fā)現(xiàn),相較于TextCNN、TextRCNN、BERT、XLNet,XLNet-RCNN 在文本情感分析中有更優(yōu)的效果,在三個(gè)公開(kāi)數(shù)據(jù)集上的準(zhǔn)確率分別達(dá)到了96.4%、91.8%、92.9%,本文方法在文本情感分析任務(wù)中有更好的效果。
使用實(shí)驗(yàn)保存的最優(yōu)模型,預(yù)測(cè)單個(gè)評(píng)論文本數(shù)據(jù)的情感極性,以驗(yàn)證本文方法在真實(shí)場(chǎng)景下的情感分類(lèi)準(zhǔn)確性。文本樣例測(cè)試結(jié)果如表5 所示。
表5 文本樣例測(cè)試結(jié)果Tab 5 Text sample test results
為驗(yàn)證輸出結(jié)果情感極性的正確性,將預(yù)測(cè)值大于0.5視為正向情感,將預(yù)測(cè)值小于0.5 視為負(fù)向情感。從表5 中的預(yù)測(cè)結(jié)果可以看出,XLNet-RCNN 對(duì)文本情感分析結(jié)果都是正確的,能夠應(yīng)用于真實(shí)場(chǎng)景中的情感分析任務(wù)。
為了更好地將自回歸語(yǔ)言模型XLNet 應(yīng)用于文本情感分析任務(wù)中,本文提出一種結(jié)合XLNet 和RCNN 的文本情感分析方法XLNet-RCNN。使用XLNet 解決了傳統(tǒng)情感分析方法在不同語(yǔ)境下無(wú)法區(qū)分同一個(gè)詞的不同語(yǔ)義問(wèn)題,根據(jù)每個(gè)字的相對(duì)位置來(lái)表征字向量;使用RCNN 模型進(jìn)行特征訓(xùn)練能夠充分關(guān)聯(lián)文本的上下文關(guān)系,能較好地提取文本的深層文本語(yǔ)義特征。在wb、wm10、Chn 三個(gè)公開(kāi)數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證了XLNet-RCNN 方法在文本情感分析任務(wù)中的優(yōu)越性。但針對(duì)短文本數(shù)據(jù),本文方法仍存在改進(jìn)空間。在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),由于模型參數(shù)量較大,對(duì)于數(shù)據(jù)量較大的數(shù)據(jù)集,短文本分類(lèi)任務(wù)效果提升不明顯,出現(xiàn)實(shí)驗(yàn)花費(fèi)時(shí)間較長(zhǎng)、對(duì)硬件設(shè)施要求高等問(wèn)題。在下一階段的研究中,考慮將本文方法應(yīng)用到多情感分析任務(wù)中,探究該方法在多情感任務(wù)的中的適用性;對(duì)XLNet 進(jìn)行改進(jìn),探究影響方法結(jié)果的因素,使用知識(shí)蒸餾的方法壓縮模型,在不降低較多準(zhǔn)確率的情況下,提升模型訓(xùn)練的速率。將本文技術(shù)應(yīng)用于實(shí)際生活,為分析網(wǎng)絡(luò)言語(yǔ)情感提供技術(shù)支持。