蔡旭勛 楊進才
(華中師范大學計算機學院 武漢 430070)
文本情感分析用于分析人們對特定實體的觀點、情感、評價、態(tài)度和情感的文本分類計算方法,一直是自然語言處理的一個熱門研究問題[1~2]。
基于深度學習的文本情感分析主要是使用神經(jīng)網(wǎng)絡對文本進行處理。情感詞典在傳統(tǒng)的情感分析任務中是極其重要的語料庫[3],它統(tǒng)計了一些具有強烈情感色彩的詞以及某些詞的正負極性或者情感強度的分數(shù)。目前最常用的表示單詞的方式是word2vec詞向量[4],在Twitter這種非常特殊的語料中,經(jīng)常會有一些情感符號或者表情[5],這些都是非常具有特色的情感標簽,但詞向量并不能對其進行表示,如果能夠針對這些表情符號做相應的處理,就能更好地把握Twitter的情感走向。例如情感詞典能夠應用到情感特征顯著的文本里面。
現(xiàn)有的關于情感分析的工作大多基于深度學習框架,忽視了這些傳統(tǒng)特征對特定問題的作用。
基于深度學習的文本情感分析主要方法有CNN和RNN。Yin等使用多通道多尺度對句子進行建模,此方法能夠有效提取文本內特征[6],但是CNN方法的弊端在于它無法考慮句子內部及句子間的依賴關系。Ke等在LSTM之上額外引入了外部記憶單元,對句子進行建模,提升了模型對歷史信息的處理能力[7]。韓萍等提出了多維自注意力機制對微博情感進行分析,能更高效地提取文本特征[8]。
上述工作利用深度學習進行文本分析,都沒有考慮傳統(tǒng)情感詞典的作用,本文提出了用情感詞典和深度學習結合的方法。本文首先收集常用的情感詞典,包括經(jīng)典的表情符號詞典,然后對出現(xiàn)在Twitter中的具有感情色彩的詞用詞典中的情感值來向量化表示,針對CNN和LSTM模型的不足,本文在模型的選擇上,采用基于注意力機制的雙向長短期記憶網(wǎng)絡(BiLSTM),同時提取句子的正序信息與逆序信息,注意力機制還能夠自適應的選擇句子中情感信息豐富的部分。
文本首先對Twitter文本進行預處理、分詞、構建文本單詞集;根據(jù)現(xiàn)有的詞典對情感詞以及表情符號進行語義增強,根據(jù)這些詞在詞典中的情感值以及情感極性對其進行向量化的表示,將此表示拼接到原有的詞向量中;最后,將詞向量化的文本表示和它對應的情感標簽(連續(xù)或離散)作為訓練樣本輸入到基于注意力機制的BiLSTM模型中。處理過程由文本預處理、訓練模型、預測等幾個模塊組成。整體框架如圖1所示。
圖1 文本情感分析整體框架
本文采用了SemEval 2018語義評測大賽的數(shù)據(jù)[9],三種數(shù)據(jù)集規(guī)模如表1所示。
表1 本文采用所采用數(shù)據(jù)集
三種情感分析任務及其主要區(qū)別是:(情感強度回歸任務(EI-reg)是給的一條Twitter然后判斷它在anger和joy兩種不同情感狀態(tài)下情感得分(一個介于0到1之間的實數(shù)值);情感強度分類任務(EI-oc)是給定一條Twitter然后對它進行分類是屬于anger或者joy中某一種情感,這是一個分類任務;基于Valence維度的情感回歸任務(V-oc)是給定一條Twitter然后判斷它在anger和joy兩種不同情感狀態(tài)下Valence維度的情感得分(一個介于0到1之間的實數(shù)值),這是一個回歸任務。
文本預處理的過程主要分為以下幾個步驟:1)對數(shù)據(jù)進行清洗,去除一些不正常的標點、網(wǎng)頁標記符號和各種其他特殊符號,比如火星文字等;2)對阿拉伯數(shù)字進行處理,統(tǒng)一刪除所有出現(xiàn)的數(shù)字,日期以及數(shù)字與字母的連寫,如“r34”等;3)刪除字母之間多余的空格,由于英文文本的特性,單詞與單詞之間只存在一個空格,因此需要把多余的空格刪除;4)對文本進行分詞處理,本文采用的分詞器為NLTK[10];5)由于所采用的詞向量是Glove[11],因此需要對文本中的大寫字母進行轉換。預處理前與預處理后的文本示例分別如圖2和3所示。
圖2 預處理前的文本
圖3 預處理之后的文本
目前,有多種情感詞典,對情感進行不同類別的 劃 分 與 表 示。NRC Affect Intensity Lexicon[12]:NRC AI詞典提供了每一個單詞的情緒標簽(正或負)和情感強度。在WASSA-2017[13]情緒強度共享任務(Shared Task on Emotion Intensity)中每種情緒都可用這個詞典表示,詞匯表中每一行是單詞及其在四種基本情緒:憤怒、恐懼、悲傷和愉快(anger,fear,joy,sadness)下的不同情感值。NRC Emotion Lexicon & NRC Hashtag Emotion Lexicon[14,17]:NRC EL是一個在十種不同情緒下單個單詞的離散情感強度值詞典。NRC HEL通過與單詞相關的主題標簽的推文自動生成,它用浮點分數(shù)范圍0~2.24的值來表示情感類別的強度。
類似的情感詞典還有NRC Emoticon Lexicon&NRC Hashtag Sentiment Lexicon[15~16,18]這些情感詞典都是針對常見的人可能出現(xiàn)情緒的表示,表示方式主要有離散型和連續(xù)型兩種,都從不同的側面表示出了當前單詞所具有情感傾向和情感強度值。
本文詞義增強的步驟如下所示:1)對Twitter中的單詞用詞向量進行表示,即將每一個單詞表示成一個1*D維的向量(Glove);2)對Twitter中的每個單詞如果能夠在詞典中找到,則詞典中的情感值表示為表示第k個詞典,i表示第i個單詞;3)將情感值用多項式進行表示,多項式表示就是產(chǎn)生一個多項式的集合。例如,輸入一個二維的樣本[m,n],那么這個樣本的二階多項式特征集合為[1,m,n,m2,n2,mn],這樣就可以將詞典中的某個值表示成一個多項式特征的集合,如果在詞典中找不到該詞,那么將此值設置為0;4)將多項式特征向量直接拼接到原有的1*D維的向量之后,但是每個詞典的情感值維度是不一樣的,因此還需要進行矩陣標準化操作,即將矩陣變成標準正太分布N(0,1)。詞義增強之后單詞之間的相似度如表2所示。
表2 詞義增強前后相似度比較
從表2中可以看出通過詞義增強之后,詞向量的維度增加了,單詞之間的余弦相似度也發(fā)生了變化,主要是因為以前的300維詞向量是一個平均意義上的詞向量,比如bad和good,它是基于大量文本訓練出來的,但是這樣平均意義上的詞向量并不能適用于所有的場景。因此,詞義增強之后的詞相似度發(fā)生了變化,主要原因在于good在joy這種語義下它表達的情感要比其他情況更為強烈,bad在fear這種語義下它也有表現(xiàn)更為強烈。
雙向長短期記憶網(wǎng)絡BiLSTM,其中一個重要的概念就是“門”,它控制信息通過的量,實質上就是一個σ函數(shù),σ的表示式為σ(t)=1/(1+e-t),該函數(shù)最重要的一個特征是,它可以把任意實數(shù)值映射到(0,1)區(qū)間上,而且,絕大部分的值都是非常接近0或者1的,這樣函數(shù)能夠決定讓多少信息通過這個門結構。在LSTM中,一共有三種門結構,分別是遺忘門(forget gate)、輸入門(input gate)與輸出門(output gate)。如圖4所示的是一個LSTM的神經(jīng)元及其內部結構,圖中圓框部分是加法和乘法運算,方框部分是激活函數(shù)σ或者tanh,Xt是t時刻的輸入,at-1和Ct-1是上下文信息,ot是t時刻的輸出。BiLSTM的結構是一個前向循環(huán)神網(wǎng)絡和后向循環(huán)神經(jīng)網(wǎng)絡組成。
圖4 LSTM神經(jīng)元內部結構
注意力機制可以理解為從大量信息中有選擇地篩選出權重不同的信息,權重越大則代表對該部分的關注度越高。在情感分析任務中加入注意力機制,可以使神經(jīng)網(wǎng)絡更多地關注文本中包含情感信息較多的部分,從而使得情感分析的效果更好。時序問題中的注意力機制大部分是基于編解碼結構,本文采用的結構也是基于此構建的,假設t時刻BiLSTM隱藏的輸出為ht,那么把ht輸入到注意力機制中去,可以得到etj,etj表示編碼器在時刻t的狀態(tài)對解碼器中j狀態(tài)輸出的影響程度,最后通過softmax函數(shù)對etj進行歸一化處理,從而獲得每一個時刻隱藏狀態(tài)對解碼輸出的影響,即在時間維度上的注意力值。注意力機制計算過程如式(1)(2)所示。
通過注意力機制的使用,在模型中不僅可以將權重進行重新分配給每一個隱藏狀態(tài),還結合了編碼器和解碼器兩部分的狀態(tài),這樣比單一的模型具有更好的效果。
綜上,本文采用的基于注意力機制和雙向長短期記憶網(wǎng)絡(BiLSTM)模型結構如圖5所示,文本序列進行向量化表示之后首先經(jīng)過BiLSTM,接著計算t時刻的注意力向量,然后再輸入到BiLSTM里面,經(jīng)過兩層BiLSTM處理之后,經(jīng)過Flatten層再接上一個Dense層,最后輸出層進行分類或者回歸的處理。
圖5 基于注意力機制的BiLSTM情感分析模型
本文相關實驗超參數(shù)設置如下:兩層BiLSTM神經(jīng)元個數(shù)分別為256,128;兩個全連接層神經(jīng)元個數(shù)為128,64,Dropout大小為0.25;batch size大小為64,訓練epoch大小為10;Glove詞向量維度為
300。
本文用皮爾森相關系數(shù)作為實驗評價指標,該系數(shù)是用來反映兩個變量線性相關程度的統(tǒng)計量。兩個變量之間的皮爾森相關系數(shù)為兩個變量之間協(xié)方差和標準差的商。協(xié)方差的計算公式如下:
皮爾森相關系數(shù)的公式如下:
皮爾森系數(shù)r的取值總是在-1.0~1.0之間,其中n為樣本量,r描述的是兩個變量間線性相關強弱的程度,r的絕對值越大表明相關性越強,實驗的預測值和真實值之間的關聯(lián)度越強,也說明模型越好,實驗效果越好。
在多方面情感強度回歸任務(EI-reg)上,本文進行了多組對比試驗,實驗結果如表3所示。表中結果表示的模型在測試集上預測的值和實際值之間的皮爾森相關系數(shù),其中#表示該模型進行了詞義增強。從表3可以看出,本文提出的模型BiL?STM(att)在anger和joy的強度值上的皮爾森系數(shù)最高,BiLSTM對句子進行訓練,可以更好地捕捉雙向的語義依賴信息,加入注意力機制,使隱藏層的不同權重輸出在最終的句子表達中發(fā)揮不同的作用。對比其他的深度學習模型,本文提出的BiL?STM(att)模型效果是最好的。對比CNN和CNN(#)、LSTM和LSTM(#)的結果可以看出,本文提出的詞義增強模型比沒有進行詞義增強的模型效果更好。
表3 多方面情感強度回歸任務(EI-reg)上的結果
在多方面情感強度分類任務(EI-oc)上,實驗結果如表4所示??梢园l(fā)現(xiàn)本文提出的模型依然具有最好的效果。
表4 多方面情感強度分類任務(EI-oc)上的結果
在基于Valence維度的情感回歸任務(V-reg)上,本文實驗結果如表5所示,MAE表示損失計算是平均絕對誤差,Ensemble表示對多個模型進行融合,最后取所有的10次結果作為最好的Valence值,經(jīng)過多次實驗,發(fā)現(xiàn)效果最好的模型是本文提出的雙層BiLSTM(att)模型。
表5 Valence維度回歸任務(V-reg)上的結果
本文提出了一種基于詞義增強和注意力機制的Twitter文本情感分析方法。提出的詞義增強的方法,不僅能夠增強詞義和語義信息,還克服了其他文本處理方法只利用單一詞向量的缺點。通過對情感詞進行詞義增強,可以提取單詞更多的情感特征,有助于提升情感分類和情感回歸的效果。
利用詞義增強后的詞向量,和對應的情感強度標簽匹配在一起,作為訓練樣本輸入到基于注意力機制的雙向長短期記憶網(wǎng)絡(BiLSTM),不僅能夠提取句子的正序信息,還能夠提取其逆序信息。此外,注意力機制還能夠自適應的選擇句子中情感信息較多的部分。實驗結果表明本文提出的方法相比其他情感分析方法具有更好的效果。