趙曉芳,金志剛
(天津大學 電氣自動化與信息工程學院,天津 300072)
表情符號的使用可以揭示隱藏在文本之下的情感,例如,“體測一千米,都沒有喘不過氣來ヾ(≧≦*)ヾ”表示快樂和興奮;“我不知道把鋼筆放在了哪里QAQ”為不安的情緒;“連續(xù)42小時的工作,已經(jīng)忘記了時間的存在”表示興奮和收獲的滿足.在這些句子中,雖然文字并沒有明確地傳達出情緒,但結尾處的表情符號可以有效識別個體的情感狀態(tài).
2019年3月,新浪微博數(shù)據(jù)中心發(fā)布最新《2018微博用戶發(fā)展報告》[2],報告顯示2018年第4季度微博月活躍用戶4.62億,其中95后用戶高達41%.由于微博有著迅捷性、蔓延性、平等性與自組織性等4大特點,其熱點話題隨時都會引發(fā)萬級的轉發(fā)和評論,例如從“長生生物等疫苗造假事件”到“翟天臨被指論文抄襲事件”再到最近的“996工作制”事件,無一不是在微博上迅速發(fā)酵,并最終對現(xiàn)實社會產(chǎn)生影響,而且這種線上影響線下的趨勢越來越明顯.為了更好地利用微博,產(chǎn)生有益社會價值,消除潛在危害,本文提出微博多維度情感分析,這有利于分析群體情感傾向,提高輿情分析、引導的準確率,在網(wǎng)絡言論尚未形成輿論前,及早預測可能導致用戶負面情緒的輿論或報道,實現(xiàn)對輿情的早期介入和有效引導.
目前,針對中文媒體中情感符號進行分析的方法多針對Emoji,對于顏文字情感傾向并沒有相關分析.本文在文本基礎上,結合了Emoji、顏文字情感特征,提出了一種融合表情符號與短文本的多維情感分類方法(EmotT):收集95后在微博發(fā)表的評論,通過現(xiàn)有的日式顏文字資源,構建中文顏文字詞典,提取顏文字中的結構特征、類別特征以及運動學特征,并利用多層感知機(Multi-Layer Perception,MLP)對顏文字進行情感檢測,得到顏文字的7種情感強度值;采用基于注意力機制的CNN和LSTM對文本和Emoji進行編碼,將得到的融合特征作為MLP的輸入,進一步挖掘文本和Emoji組合部分與情感標簽的深層次關聯(lián),計算文本和Emoji組合部分的7種情感強度值;結合以上兩種情感傾向設計計算模型,通過相關實驗,驗證了構建的融合表情符號與短文本的多維情感分類方法可以進一步提高情感分析性能,補充了中文媒體評論中顏文字情感研究的空白,且該方法獲取的語句7種情感強度,為群體情感走向提供了更細粒度分析.
微博語句的情感分析,不僅需要對微博文本進行分析,還需要考慮用戶使用的表情符號,有相關研究將表情符號作為特征進行情感分析,這些方法改善了社交媒體的情感分析結果,例如Jonathon[3]提出使用樸素貝葉斯和支持向量機分類器代替話題敏感詞進行情感分析時,可以使用表情符號來減少話題依賴性.Yang[4]等提出將Emoji這種表情符號作為自動注釋工具,使用支持向量機和條件隨機場等算法將句子標記為4種情感類別,可以減少手動注釋節(jié)省時間和人力.
以上研究證實了表情符號對情感分析的積極影響.然而,對中文社交媒體的分析僅僅局限于Emoji,并沒有分析Emoji和顏文字兩種表情符號對情感表達的影響.例如Song等[5]提出利用情感種子詞和情感符號來構建情感詞典,以便更準確地捕捉候選情感詞的細粒度情感傾向;Jiang等[6]利用表情符號的詞向量構建表情符號向量空間模型,并將文本中所有的詞映射到向量空間中,采用支持向量模型實現(xiàn)對文本的情感分類;何等[7]為常見的表情符號構建情感空間的特征表示矩陣,通過將文本詞向量矩陣與表情符號的特征表示矩陣進行乘積運算,實現(xiàn)詞義到情感空間的映射,從而構建文本的情感表示矩陣;張等[8]提出基于雙重注意力模型的情感分析方法,分別對文本和情感符號進行編碼.此外,相關學者對日式顏文字進行了情感分類,如Utsu等[9]通過對日式顏文字中包含的眼睛、嘴巴等符號的出現(xiàn)概率進而對顏文字進行情感極性判別;Yu等[10]通過構建顏文字詞典對日語旅游網(wǎng)站評論進行情感分類;Yu等[11]提出了AZEmo系統(tǒng),實現(xiàn)了對社交媒體和電子商務網(wǎng)站中顏文字的提取和分類.
本文針對包含Emoji和顏文字的語句,將其分為兩部分進行多維情感分類.第一部分是對文本和Emoji組合部分進行情感傾向分析,為了提高特征表達能力,進一步挖掘文本和Emoji組合部分與情感的深層次關聯(lián),采用基于注意力結構的CNN、LSTM分別提取組合部分的語義特征,將得到的兩種語義特征進行融合后,通過MLP進一步提取高級語義表示,最后使用softmax分類層得到文本與Emoji組合部分的多維情感強度值;第二部分通過構建的中文顏文字詞典,提取顏文字結構、情感類別、運動學特征,采用MLP對顏文字的情感傾向進行分析,得到顏文字的7種情感強度值.最后基于上述兩部分的情感傾向分析,設計情感計算模型得到語句的多維情感強度值.
新浪微博等社交媒體中的Emoji和顏文字是目前常用的兩種表情符號,人們借助情感符號表達更加微妙的情感變化,如加強、澄清或強調、幽默等.Emoji、顏文字是微博文本情感傾向的重要特征,相比于文字,表情符號對情感的語義區(qū)分能力更高.本文在對文本、Emoji組合部分情感分析的基礎上,結合了顏文字的情感傾向,為包含顏文字、Emoji的社交媒體評論的情感分析提供了模型基礎,如圖1所示為情感分類模型框架.
圖1 情感分類模型(EmotT)
顏文字的情感計算主要包括3部分:中文顏文字詞典構建、顏文字提取以及顏文字情感傾向值計算.
2.1.1 顏文字詞典構建
目前,并沒有大規(guī)模的中文顏文字詞典,因此本文在Ptaszynski等[12]構建日語顏文字詞典基礎上構建中文顏文字詞典.在詞典中,每種情感標簽均包含一系列顏文字,且每個顏文字只屬于一種情感標簽.中文顏文字詞典構建規(guī)則分以下兩步:
明確顏文字情感標簽:在構建中文顏文字詞典時忽略無法推斷出是否具有明顯情感傾向的顏文字,只收集帶有明確情感含義標簽的顏文字.
截斷處理:由于日式顏文字包含的不僅有眼睛、嘴巴等符號,還有一些日語來幫助解釋顏文字的含義,如顏文字“ヾ(@⌒ー⌒@)ノおはよう”中“おはよう”是早上好的意思,用來幫助解釋顏文字的含義,在構建中文顏文字詞典時,對其中的日語進行了截斷處理,例如:日式顏文字“ヾ(@⌒ー⌒@)ノおはよう”在構建的中文顏文字詞典時最終變?yōu)椤癌d(@⌒ー⌒@)ノ”.
2.1.2 顏文字提取
Birdwhistell[13]最先提出了人體運動學理論,該理論確定了顏文字中的字符所對應的身體或面部表情.本文采用Michal等[10]構建的人體運動學模型,將每個顏文字表示為9個部分:{S1}{B1}{S2}{EL}{M}{ER}{S3}{B2}{S4},各個部分與顏文字的對應關系如表1.
表1 顏文字組成
{B1}{B2}分別為顏文字的左右邊界;{EL}{M}{ER}與人體運動學中的左眼睛、嘴巴、右眼睛對應,是顏文字的核心部分并記為{S5};{S1}{S2}{S3}{S4}為顏文字中與人體運動學理論對應的其他部分,如胳膊、汗水等,稱為補充分量.并不是每個顏文字都嚴格地遵循這9個部分,沒有的部分用“空”表示.中文文本中提取顏文字步驟如圖2.
2.1.3 顏文字情感傾向值計算
本文采用Xu等[14]提出的7大情感類別,將顏文字的情感分為樂、好、哀、惡、怒、懼和驚.此外,分別將顏文字的核心部分{S5}和4個補充分量{S1}{S2}{S3}{S4}映射到7種情感類別中,每個分量出現(xiàn)在7種情感類別中概率計算為
(1)
在文本挖掘和情感分析研究中,提取結構、句法和語義特征被廣泛采用.然而,由于顏文字的性質不同于語言句子,一些特征(如句法特征)不適用于顏文字.因此,采用Yu等[11]提出的顏文字特征表示方法,從顏文字中提取4種結構特征、7種分類特征和35種人體動力學特征.提取的特征以及解釋如表2.
圖2 中文文本中提取顏文字框架
表2 顏文字特征
結構特征考慮了顏文字的結構信息.該類型包括顏文字的總長度、ASCII字符的比例、不同類型字符的數(shù)量以及顏文字中出現(xiàn)頻率最高的字符的數(shù)量.
情感特征借助Yamada等[15]提出的方法,通過提取顏文字中每個字符在特定情感類別中的出現(xiàn)次數(shù)除以該字符在所有顏文字中的出現(xiàn)總次數(shù),得出該字符表達特定情感的概率.
通過從表情中提取人體運動學特征,計算核心和其他成分的情感類別概率.顏文字的情感是由人體運動學成分構成的,這意味著運動學成分的情感概率在顏文字的情感類別中占很大比例.如果兩個人體運動學成分在兩個情感類別中具有相似的類別頻率,則認為它們在構建表情符號方面具有相似的功能.若顏文字中不包含某些人體運動學成分時,其對應的情感概率為0.通過上述分析,特征向量中共有35個人體運動學特征值(有些為空).
情感預測質量的評價與具體的預測模型有關,本文采用不含隱藏層的MLP分析顏文字的情感傾向.對MLP的輸出向量采用Rectifier函數(shù)進行非線性變換后,得到情感標簽的得分向量為
Sscore(K)=g(WKx+bK).
(2)
式中:Sscore(K)∈R|C|為顏文字K的情感得分向量,C為7種情感標簽集合,g取RELU函數(shù),WK、bK分別為MLP的參數(shù)矩陣和偏置,情感得分向量作為softmax的輸入,得出顏文字的多情感分類概率為
(3)
得到多維情感強度為:QK=PK(c/K).
本文采用Jiang[6]提出的利用表情符號構建表情符號向量空間模型,并將文本中的所有詞映射到向量空間中.文本詞語及Emoji詞向量的獲取可以看作是一個查詞典的過程.詞典Rd×N通過大規(guī)模語料采用詞向量訓練模型學習得到.對于一個文本序列T={t1,t2…tn},將詞語的詞向量拼接起來,就得到整個文本序列的詞向量表示,拼接方式如式(4)所示:
RT=r1⊕r2⊕…r|N|.
(4)
式中:ri∈Rd×N為ti對應于詞典中的元素,⊕為行向量拼接操作,d為詞向量的維數(shù),|N|為詞典中詞語的個數(shù).對Emoji集合中的詞向量同樣采用上式的方式進行拼接,RT和RE的維數(shù)分別為詞語的數(shù)目和Emoji的數(shù)目.
文本的詞向量矩陣RT以及Emoji的詞向量矩陣RE作為深度學習模型的輸入.為了進一步提高對文本和Emoji建模能力,首先采用基于注意力機制的CNN和RNN分別提取局部以及上下文相關特征,然后對提取的特征進行融合,增強模型表達能力的同時獲得更多相關的語義特征.如圖3為基于注意力的文本和Emoji建??蚣?
基于CNN與RNN模型的語義獲取與融合
RT和RE作為CNN模型的輸入,卷積層用大小為h×d的濾波器對文本矩陣執(zhí)行卷積操作,提取局部特征:
ct=f(F·R+b).
(5)
式中:F代表寬度為h的濾波器,b為偏置量;f為通過RELU進行非線性操作的函數(shù);ct為通過卷積操作得到的局部特征.隨著濾波器依靠為1的步長從上往下進行滑動,采用VALID方式進行padding操作,獲得與原輸入相同長度的特征向量Ct.
圖3 基于注意力的文本和Emoji建??蚣?/p>
對于輸入序列x=(x1,x2,…xt),一個標準的RNN模型計算隱藏和輸出序列分別為
ht=σ(Wxhxt+Whhht-1+bh),
(6)
yt=Whyht+by.
(7)
式中:W項為權重,b為偏置,σ取sigmoid函數(shù).然而,由于RNN梯度容易消失、爆炸等缺點,RNN的變體長短時記憶(LSTM)被越來越廣泛的應用.LSTM模型可看作一種權值共享的深度神經(jīng)網(wǎng)絡,利用門信號的線性循環(huán)連接來解決時間層面的梯度彌散問題,進而學習長期的依賴關系.本文使用LSTM模型提取語句的語義信息表示為Ht.為捕獲更直接的語義依賴關系,采用Bahdanau[16]提出的注意力模型,將兩種模型的輸出分別作為注意力模型的輸入,得到的文本表示向量為
(8)
式中ft為Ct或Ht;輸入狀態(tài)的權重為
(9)
為了得出文本與Emoji融合特征的多分類情感概率,與處理顏文字的過程類似,將融合特征作為MLP的輸入,并對MLP的輸出向量采用Rectifier函數(shù)進行非線性變換,得到情感標簽的得分向量:
Sscore(S)=g(WTEv+bTE).
(10)
式中:Sscore(S)∈R|C|為文本與Emoji融合部分的情感分類向量,C為7種情感標簽集合,g取RELU函數(shù),WTE、bTE分別為MLP的參數(shù)矩陣和偏置,情感得分向量作為softmax的輸入,得出文本與Emoji的多情感分類概率為
(11)
選擇softmax層輸出的概率作為多維情感強度值QTE=PTE(c/S).
對于情感傾向要綜合考慮表情符號和文本兩部分,通過對上述兩部分的情感傾向值加權處理后即可得到微博的多維情感概率:Q=(1-λ)QTE+λQK.QTE為微博文本與Emoji的多維情感概率,QK為顏文字的多維情感概率,λ為正的可變參數(shù),表示情感傾向所占的比重,且λ∈(0,1).
本文針對95后在社交網(wǎng)絡中發(fā)表的評論進行情感傾向性分析,考慮到95后在社交媒體的評論中喜歡使用顏文字的特點,提出的情感分類模型考慮了文本中包含的Emoji及顏文字,由于目前并未發(fā)現(xiàn)合適的公開數(shù)據(jù)集,因此自行爬取2017年—2018年約40 000 000條微博評論構建實驗數(shù)據(jù)集,并將其分為帶有顏文字的與不帶有顏文字的兩類.由于Emoji和顏文字數(shù)量較多,通過對表情符號進行情感標注和降序排列,最終各選擇前100的表情符號進行實驗.實驗進行了兩部分的對比,第一組是濾除顏文字,采用提出的基于注意力機制的方法與選取的模型進行對比,驗證提出模型對文本和Emoji組合部分建模的有效性;第二組是對含有Emoji、顏文字的語句進行多情感分類,驗證顏文字對情感分類性能的影響.
實驗數(shù)據(jù)采用NLPCC的2014年中文微博評測任務的公共數(shù)據(jù)集NLPCC2014.數(shù)據(jù)集分為測試集和訓練集兩部分,標注的情感標簽主要分為7類,如表3所示:
為了學習文本詞語和Emoji的詞向量,本文將爬取的不含有顏文字的語句經(jīng)過NLPIR分詞、去噪、繁簡轉換、url替換以及刪除長度較短的無意義的微博之后,構建了Word2Vec詞向量訓練語料庫,包含微博31 394 583條,詞語數(shù)1 034 869 204個,選擇skip-gram模型進行訓練,得到詞向量空間包含649 302個詞,詞向量維數(shù)為200維.實驗中CNN、LSTM的參數(shù)如表4所示.
表3 NLPCC2014標注數(shù)據(jù)集
表4 模型參數(shù)
實驗選取的對比模型如下:
MNB模型(multinomial naive bayes, MNB):作為機器學習的代表,在很多情感分類任務中都取得了優(yōu)秀的效果.
ESM模型:Jiang等[6]針對Emoji提出的表情符號空間模型,完成了詞語到情感空間的映射,本文選擇對映射后的詞語求最大、最小和求和的方法作為對比模型.
EMCNN模型:何等[7]提出的為Emoji構建語義特征表示矩陣,通過矩陣乘積運算增強微博文本語義,采用多通道卷積神經(jīng)網(wǎng)絡對特征學習實現(xiàn)情感分類.
DAM模型:張等[8]提出的基于雙重注意力機制,分別對文本和情感符號進行編碼,在構建語義表示后進行情感分類.
通過實驗,對NLPCC2014評測結果如表5所示:
表5 NLPCC2014評測結果
從上表看出,本文方法得到的MicroF1和MacroF1兩個評價指標較其他模型分別平均提高7.6%和6.6%,明顯優(yōu)于其他模型,這主要是因為采用基于注意力機制的CNN和RNN分別提取局部以及上下文相關特征,并對提取的特征進行融合,進一步提高了對文本和Emoji建模能力.其次,為了進一步驗證該模型可以在增強模型表達能力的同時獲得更多相關的語義特征,選擇了兩個實例來可視化注意力結果.可視化結果如圖4和圖5所示.其中顏色由淺到深意味著注意力權重由高到低.
如圖4所示,“這是一部令人興奮的關于運動的動作電影,還有一個我喜歡的故事”,看出本文提出的模型為每個特征提取層分配了不同的注意力權重.在基于LSTM的特征提取層中,興奮、[樂]和喜歡的權重更高,在基于CNN的特征提取層中,故事、興奮和[樂]的權重更高,而且在兩種特征提取中,Emoji都具有較高的注意力權重,CNN和LSTM模型都可以很好地捕捉語句中的表情符號,最后該模型將它們結合起來確定情感極性.此外,句子中的一些噪音如“的”、“令人”等對語句情感極性判斷沒有貢獻,因此其注意力值很小.
圖4 注意力可視化結果(“這是一部令人興奮的關于運動的動作電影,還有一個我喜歡的故事[樂]”.)
Fig.4 Visualization of attention (“This is an exciting action movie about sports, and there is a story I like[laugh].”)
圖5 注意力可視化結果(“幾乎在每個關鍵時刻影片都破壞了劇本的亮點[怒]”)
Fig.5 Visualization of attention (“The highlights of the script are destroyed by the movie at almost every important moment[anger].”)
上述兩個可視化結果都反映了提出模型對語義表達能力的增強,即本文提出的基于注意力機制的深度學習模型,通過特征提取和特征組合兩步將局部信息和上下文信息組合在一起,很好地捕捉文本詞語、Emoji和句子結構的搭配,以識別情感傾向.
為驗證提出的融合表情符號和短文本的多維情感分類效果,選取爬取的帶有顏文字的微博語句8 000條和不帶有顏文字的微博語句2 000條,分別驗證不同的λ取值對情感分類準確率的影響,以及加入顏文字對最終情感分類準確率的影響.
3.2.1λ取值
對于微博的情感傾向,要綜合考慮文本、Emoji組合部分以及顏文字的情感,通過對這兩部分的情感傾向值加權處理后即得到微博情感傾向值.為了判斷λ的取值,設計了正負情感二分類實驗,將選擇的8 000條微博所標注的7種標簽中的樂、好作為正向標簽,哀、懼、怒、惡和驚作為負向標簽,其中正、負向微博各4 000條.綜合正負情感傾向值,得到的準確率見圖6.
通過圖6得出,隨著λ的增大,正負情感分類準確率提高,當λ=0.4時準確率達到最高,當λ>0.4時,正負情感分類準確率有下降的趨勢,因此為了使顏文字在情感分類中更好地發(fā)揮作用,最終確定文本和Emoji組合、顏文字占比分別為0.6和0.4.
3.2.2 顏文字對最終情感分類準確率的影響
為了驗證加入顏文字對情感分類準確度的影響,實驗選取微博數(shù)據(jù)集10 000條,其中包含顏文字的微博8 000條,不包含顏文字的微博2 000條,為了驗證顏文字對微博情感分類準確率的影響,實驗對比了MNB模型、ESM模型、EMCNN模型、DAM模型以及本文提出的EmotT模型在3組數(shù)據(jù)集設置下的分類準確率:第1組全部微博共10 000條;第2組包含顏文字微博共8 000條;第3組在第2組數(shù)據(jù)集基礎上去掉所有顏文字的微博8 000條.
從圖7、8得出,含顏文字的情感分類性能指標始終高于不含顏文字的分類性能,表明分析顏文字的情感表達能力有助于提高情感分類準確率.此外,提出模型在3種數(shù)據(jù)集上的表現(xiàn)均優(yōu)于其他模型,表明提出的針對短文本和Emoji組合部分情感分類模型可以更好地挖掘語句與情感標簽之間的關聯(lián),加入的顏文字也進一步提高了情感分類性能.
圖6 λ對情感判斷準確率影響
圖7 情感分類結果MacroF1
圖8 情感分類結果MicroF1
本文提出了一種融合表情符號與短文本的多維情感分類方法,實現(xiàn)了對含有Emoji和顏文字的微博的情感分類,為群體情感細粒度分析提供了模型基礎.主要貢獻有:通過對日語顏文字的處理,構建中文顏文字詞典;通過對NLPCC2014標準數(shù)據(jù)集的分析,本文模型得出的MicroF1和MacroF1值較其他模型分別平均提高7.6%和6.6%,即該方法可以有效提高對文本和Emoji的多情感分類性能,驗證了所提出的基于注意力機制的CNN和LSTM組合模型對微博文本和Emoji進行語義建模的有效性;對自行爬取的含有顏文字、Emoji的微博語句進行多維情感分類,通過實驗分析當文本、Emoji組合部分與顏文字所占比例分別為0.6和0.4時所得到的多維情感分類準確率最高,且實驗得出含顏文字的微博語句的MicroF1和MacroF1指標始終高于不含顏文字的微博語句,表明分析顏文字的情感表達能力有助于提高微博的情感分類準確率.通過以上結論,進一步說明本文提出的加入顏文字特征進行多維情感分類,提升了微博情感分類的性能,為中文社交媒體情感分析提供了新方法.