張鑫玉,才智杰
(1. 青海師范大學計算機學院,青海 西寧 810016;2. 成都信息工程大學軟件工程學院,四川 成都 610041;3. 藏文信息處理教育部重點實驗室,青海 西寧 810008;4. 青海省藏文信息處理與機器翻譯重點實驗室,青海 西寧 810008;5. 藏語智能信息處理及應(yīng)用國家重點實驗室,青海 西寧 810008)
情感分析指用數(shù)據(jù)挖掘算法對帶有情感態(tài)度的文本自動進行情感傾向性分析及判定[1]。近年來隨著信息技術(shù)的快速發(fā)展,用戶通過網(wǎng)絡(luò)平臺表達和傳遞情緒,互聯(lián)網(wǎng)上產(chǎn)生了大量用戶參與的對于諸如人物、事件、產(chǎn)品等有價值的評論信息,且隨著科技的發(fā)展和時間的推移呈指數(shù)增長。這些評論信息表達了人們的喜、怒、哀、樂等情感色彩和批評、贊揚等情感傾向,用戶通過瀏覽這些帶有主觀色彩的評論了解大眾輿論對某一事件或產(chǎn)品的看法。單純依靠人工分析這些海量信息費時費力,借助計算機可以幫助人們分析并挖掘信息中潛在的價值,做出更科學的決策。
本文在情感分析現(xiàn)有研究成果的基礎(chǔ)上,提出了一種Bert-BiGRU-CNN文本情感分析模型。該模型首先用Bert對文本進行向量化,然后通過BiGRU從整體提取序列特征,再利用CNN局部連接的特點學習局部特征,從而提高文本情感分析性能。
自2000年初以來,文本情感分析逐漸成為自然語言處理中重要研究領(lǐng)域之一,其研究方法主要包括情感詞典、傳統(tǒng)機器學習和深度學習三種?;谇楦性~典的方法是通過計算情感詞典中詞語之間的相關(guān)程度來判斷文本情感傾向。Kennedy A[2]等人使用關(guān)聯(lián)分數(shù)計算語義方法,提高了文本情感分類的準確性。Md. Sharif Hossen[3]等人提出一種改進Lexicon的分析模型,提高了情感分類效果。為有效提高情感詞典詞語覆蓋率,郝苗[4]等人將大規(guī)模語料庫進行融合,朱顥東[5]等人在此基礎(chǔ)上加入了表情符號和網(wǎng)絡(luò)新詞,高祥[6]提出STSA算法融合擴展詞典,構(gòu)造了適合微博文本的情感詞典,情感分類的準確率均有所提升。但是基于情感詞典的方法依賴于詞典的構(gòu)建,隨著信息量的增加,該方法無法滿足文本情感分析的需求。為了擺脫人工構(gòu)建詞典的約束,學者們采用基于傳統(tǒng)機器學習的方法進行文本情感分析,該方法能從大量語料中自動獲取信息以構(gòu)建情感計算模型?;趥鹘y(tǒng)機器學習的方法是通過數(shù)據(jù)訓練模型,再由訓練好的模型來預(yù)測情感。Abbasi A[7]等人提出了一種基于規(guī)則的多元文本特征選擇方法,該方法考慮了語義信息和特征之間的句法關(guān)系,以增強情感分類。Mustofa RL[8]等人利用情感詞典和樸素貝葉斯進行文本情感分析,結(jié)果顯示準確率達到79.72%。王磊[9]等人采用最大熵模型的文本情感分析方法,結(jié)合上下文環(huán)境緩解了詞語情感傾向的不確定性。張俊飛[10]通過PMI特征值TF-IDF加權(quán)樸素貝葉斯算法實現(xiàn)了情感分析,實驗證明該方法優(yōu)于傳統(tǒng)算法分類方法。基于傳統(tǒng)機器學習的方法取得了不錯的成果,但該方法在文本情感分析時無法充分利用上下文信息,學者把目光聚集在基于深度學習的方法上,該方法自動學習特征,保留上下文語義信息,在文本情感分析方面取得較好的效果,成為了近年來文本情感分析的主流方法。J. Shobana[11]等人提出了APSO-LSTM模型,利用自適應(yīng)粒子群算法得到了比傳統(tǒng)模型更高的精度。曹宇[12]等人提出了基于BGRU的文本情感分析方法,實驗對比發(fā)現(xiàn)該方法的分類效果優(yōu)于其它模型,并且訓練速度快。張瑜[13]等人采用多重卷積循環(huán)網(wǎng)絡(luò)(CRNN)增強了模型的擬合能力和對長文本序列的分析能力。楊奎河[14]利用基于Bert和BiLSTM相結(jié)合的模型,得到了比傳統(tǒng)詞向量模型更精準的分類結(jié)果。
從近年來的研究現(xiàn)狀可見,神經(jīng)網(wǎng)絡(luò)模型間的有機結(jié)合可以提高文本情感分析的性能。基于深度學習的方法進行文本情感分析的核心在于文本的向量表示和特征提取。本文采用深度學習方法,以文本向量表示和特征提取為研究點,發(fā)揮Bert、BiGRU和CNN各自的優(yōu)點,提出了Bert-BiGRU-CNN文本情感分析模型。該模型采用Bert生成動態(tài)詞向量,減輕一詞多義現(xiàn)象帶來的影響,同時利用BiGRU提取全局序列特征和CNN提取局部重點特征。從而使該模型既具有強大的詞向量表示能力,又有文本特征的全面提取能力,經(jīng)驗證該模型取得了較好的文本情感分類效果。
文本情感分析包括文本預(yù)處理、特征提取以及情感分析等模塊,其基本流程如圖1所示。
圖1 文本情感分析流程圖
文本預(yù)處理包括分詞、去停用詞和詞性標注等步驟。分詞是將連續(xù)的字分為單個獨立的字或詞,去停用詞的過程是過濾掉分詞過程中產(chǎn)生的噪聲及對文本情感分析有負作用的字或詞,詞性標注是聯(lián)系上下文對文本中的詞進行詞性標記。特征提取是從原始文本中提取對文本情感分析有效的特征。情感分析是將提取的特征與種子詞進行比對,從而分析文本情感。
Bert-BiGRU-CNN文本情感分析模型包括輸入層、特征提取層和輸出層,模型結(jié)構(gòu)圖如圖2所示。
圖2 模型結(jié)構(gòu)圖
1)輸入層
為提高文本語義表示,Bert-BiGRU-CNN模型在文本表示方面使用具有強大語義表示能力的Bert模型。Bert的輸入表示是通過相應(yīng)的Token Embedding、Segment Embedding和Position Embedding的單位和來構(gòu)造。Token Embedding表示單詞本身的嵌入信息,將詞語轉(zhuǎn)換為固定維數(shù)的向量表示形式,開始([CLS])和結(jié)束([S EP])處添加額外的tokens共同作為輸入表示。Segment Embedding表示句對信息,其作用是對輸入的兩個語義相似的文本進行區(qū)分。Position Embedding表示每個詞語在句中的位置信息。
2)特征提取層
特征提取是文本情感分析的核心,Bert-Bi GRU-CNN模型分別利用BiGRU雙向結(jié)構(gòu)從整體捕獲特征和CNN自動獲取局部特征。GRU由重置門和更新門組成,重置門決定前一時刻的隱藏狀態(tài)信息ht-1和當前時刻的隱藏狀態(tài)輸出信息ht傳遞到未來的數(shù)據(jù)量,更新門決定過去信息傳遞。為提取更完整的文本特征,利用由兩個方向相反的單向GRU構(gòu)成的BiGRU獲取長文本序列特征。為了進一步提升文本局部重點特征提取性能,在BiGRU之后連接CNN卷積層和池化層。
3)輸出層
為節(jié)省權(quán)重空間參數(shù),模型輸出層的分類器采用Sigmoid函數(shù)。為解決輸出層神經(jīng)元學習緩慢的問題,模型的損失函數(shù)使用交叉熵。
Bert-BiGRU-CNN模型文本情感分析過程如下:
1)文本向量化
Bert-BiGRU-CNN模型采用24層Transfor mer構(gòu)成的Bert-Large預(yù)訓練模型,通過Mask language model和Next Sentence Prediction預(yù)訓練和微調(diào)得到適合于文本情感分析的Bert模型,利用Bert中的Bert-as-service庫對輸入的句子進行向量化;
2)全局特征提取
(1)
(2)
(3)
其中GRU(,)表示向量的非線性變換函數(shù),yt表示正向權(quán)重矩陣,vt表示反向權(quán)重矩陣,bt表示偏置向量。單向GRU在接收詞向量序列后經(jīng)重置門“重置”之后得到數(shù)據(jù)ht-1′,經(jīng)過激活函數(shù)映射,使用更新門進行更新得到特征ht,表達式為
ht-1′=ht-1⊙r
(4)
h′=tanh(w[xt,ht-1′])
(5)
ht=(1-z)⊙ht-1+z⊙h′
(6)
其中r為重置門門控,z為更新門門控;
3)局部特征提取
對于從BiGRU傳過來的句子向量利用卷積核進行級聯(lián)操作生成特征向量。為同時獲取不同特征,本模型采用窗口大小分別為2、3、4的過濾器提取特征,圖3為一個33的過濾器工作示意圖。采用最大池化法縮小特征參數(shù)矩陣的尺寸,保留卷積的重要特征;
圖3 過濾器工作示意圖
4)輸出層
全連接層將池化后的特征進行拼接,輸送到Sigmoid函數(shù)得到情感標簽。
1)實驗數(shù)據(jù)集
為了評估Bert-BiGRU-CNN文本情感分類模型的效果,用酒店評論[15]和網(wǎng)絡(luò)購物[16]兩個公開數(shù)據(jù)集對模型進行訓練和測試。酒店評論數(shù)據(jù)集為譚松波老師整理的4000條酒店管理評論數(shù)據(jù),其中積極和消極評論各2000條,數(shù)據(jù)集按4:1分為訓練集和測試集。網(wǎng)絡(luò)購物(Onlin e_shopping_10_cats)數(shù)據(jù)集共60000多條評論數(shù)據(jù),包含書籍、衣服、酒店等10個類別,其中正、負評論各約三萬條,數(shù)據(jù)集按4:1分為訓練集和測試集。
2)實驗評價指標
本實驗通過準確率、精確率、召回率和 F1值等四個指標來評判模型的優(yōu)劣。準確率(Accur acy)表示所有樣本預(yù)測的準確度,其表達式為
(7)
精確率(Precision)表示所有預(yù)測結(jié)果為正的樣本中實際為正的概率,其表達式為
(8)
召回率(Recall)表示樣本中為正且被預(yù)測正確的概率,其表達式為
(9)
F1值表示精確率和召回率的加權(quán)調(diào)和平均值,其表達式為
(10)
其中TP表示預(yù)測為正且實際為正的個數(shù),FP表示預(yù)測為正但實際為負的個數(shù),FN表示預(yù)測為負但實際為正的個數(shù),TN表示預(yù)測為負且實際為負的個數(shù)。
1)實驗參數(shù)
為驗證Bert-BiGRU-CNN文本情感分析模型的有效性,本文在相同實驗平臺、環(huán)境和參數(shù)的條件下做了對比實驗。實驗平臺為Linux,系統(tǒng)環(huán)境為Ubuntu18.04,開發(fā)語言為Python 3.6,開發(fā)IDE為Pycharm,深度學習框架為Tensorflow-gpu 2.2.0,詞向量特征提取框架為Keras-Bert,模型超參數(shù)設(shè)置見表1。
表1 超參數(shù)設(shè)置表
Rate為學習率,L2Reg表示L2正則化參數(shù),Max-length為數(shù)據(jù)集的最大句子長度,Dim表示BiGRU隱藏層維度。
2)實驗結(jié)果及分析
為驗證Bert-BiGRU-CNN文本情感分析模型的分類性能,以Multi-GRU[17]模型、BiGRU-CNN[18]模型、Bert-CLS[19]模型為基線進行了對比實驗。Multi-GRU模型由多層GRU堆疊而成,利用窗口方法進行數(shù)據(jù)預(yù)處理,使用單輸入、雙輸入和多輸入通道將特征輸入到GRU預(yù)測模型中,通過Sigmoid函數(shù)得到情感分類標簽。BiGRU-CNN模型是由雙向門控循環(huán)單元和卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的復(fù)合模型,BiGRU雙向提取上下文特征信息,然后Text-CNN準確的提取關(guān)鍵特征,最后經(jīng)過Sigmoid函數(shù)得到二分類情感標簽。Bert-CLS模型在Transformer中加入了適配器,在融合層的運算過程中融入了句向量CLS,生成結(jié)合語義的特征向量,經(jīng)由全連接層和Sigmoid函數(shù)預(yù)測文本情感傾向。實驗結(jié)果見表2。
表2 對比實驗結(jié)果
由表2的結(jié)果可以看出,Bert-BiGRU-CNN文本情感分析模型在酒店評論測試集上的最高準確率、精準率、召回率和F1值分別達到了98.4%、97.4%、97.6%和97.5%,在線購物測試集的準確率、精準率、召回率和F1值分別達到了98.8%、97.9%、98.9%和98.4%。從實驗數(shù)據(jù)可以看出,Bert-BiGRU-CNN文本情感分析模型在兩個數(shù)據(jù)集上的分類效果都明顯高于基線模型。該模型利用Bert得到高質(zhì)量的文本向量語義表示,BiGRU對長文本序列特征的有效提取和CNN對局部重點特征的高效獲取,提升了模型的特征提取能力,從而取得了較好的分類效果。
針對文本情感分析任務(wù)中靜態(tài)詞向量和特征信息提取效果不佳的問題,本文提出了一種Bert-BiGRU-CNN文本情感分析模型。模型首先采用Bert一次性讀取要分析的整個文本序列,從詞語的兩側(cè)學習詞之間的上下文關(guān)系,使得同一詞在不同語境下具有不同詞向量,解決了一詞多義現(xiàn)象對文本情感分類的影響;其次結(jié)合BiGRU和CNN各自的特點,分別從整體和局部提取特征,提升了文本情感分類的特征質(zhì)量。經(jīng)在酒店評論和在線購物數(shù)據(jù)集上的測試,其準確率分別達到98.4%和98.8%,體現(xiàn)了模型具有良好的文本情感分類效果。今后在此模型的基礎(chǔ)上,進一步研究多模型整合的文本情感分類方法,以提高情感分類的準確率。