戴天翔+岑鑫+柳珺文+王帥+歐陽帆
摘 要:該文主要針對中文微博的細粒度情緒識別技術中的關鍵技術展開研究,分析了中文微博的研究難點和微博情感表達特征,提出了一種微博文本情緒顯性特征的多策略集成分析法。最后實驗組以新浪微博中某一主題為實驗數據,對“喬任梁去世”事件這一熱點話題的評論文本數據集進行分析,驗證了該文的微博情感分析能力,同時還將情感分析結果進行了可視化展示。
關鍵詞:微博 情緒 細粒度 分析
中圖分類號:F83 文獻標識碼:A 文章編號:1672-3791(2017)03(a)-0209-04
近幾年隨著網絡通信技術的發(fā)展,微博已經逐漸成為人們喜歡使用的交流工具。人們喜歡在微博上抒發(fā)自己的情緒、表達自己的觀點。正因如此,大量充滿真實感情的微博文本已經悄悄地成為了情緒分析的重要資源??偠灾?,微博是一種高度社會化的傳播平臺:它集中了人們廣為熟悉的3種溝通方式——電子郵件、即時通信工具、媒體的優(yōu)點,又都賦予他們社會化特征[1]。
中文微博是該文的研究對象,在微博的情感極性判斷上是目前國內所集中的研究方向,如分析微博表達是正面還是負面,此類研究已經取得了一定成績并開始廣泛應用,然而若要獲取微博表達的更細致的情感時再采用傳統的粗粒度分析已經無法滿足。該文介紹了一種微博情緒細粒度分析方法,并對使用上述方法,進行了相關實驗,并給出了實驗結果。
1 中文微博細粒度情緒分析研究主要相關技術
在1995年由麻省理工學院的Picard教授在其論文Affective Computing中提出了情感分析的概念,是指對于意見,情緒和情感的計算研究,同時情感分析也被稱為情感探測、情緒分類或意見挖掘等[2]。中文微博細粒度情緒分析研究所要達到的任務目標為:輸入一整條微博,要求系統去判斷出這條微博中是否包含情緒。本文通過研究多策略集成分析,先對中文微博文本進行預處理,再將細粒度情緒分析任務分為兩個部分。首先為微博的有無情緒兩類判別,這一部分中主要采用基于迭代的樸素貝葉斯分類算法,無情緒的微博輸出為NONE,有情緒的微博將進入第二個部分。第二步為對分類為有情緒的微博進行七類細粒度情緒的識別,輸出為害怕、喜歡、生氣、厭惡、傷心、驚喜、幸福著七類情緒中的一種,該步驟中的主要采用方法為KNN算法。
1.1 細粒度情緒特征表示及權值計算
詞是中文微博文本中最為主要的元素,在文本分析研究中一般是將文本表示成詞向量,然而具體到中文微博的情緒分析中,由于情感詞是本研究所要主要關注的對象,所以該研究是將每條微博表示成有關情感詞的向量。但是,因為中文微博具有短文本的特性,所以每條微博一般只包含了很少量的情感詞,而中華漢語言的情感詞庫又極其龐大,情感極其豐富,這樣所表示出來的微博語料向量矩陣將會非常稀疏,這是不愿看到的情況,在這種情況下不單單會讓計算變得異常復雜,帶來巨大的維數災難,更嚴重的是會對分類性能造成十分嚴重的不良影響。
該文介紹的一種解決方法是基于大連理工情緒本體庫中定義的21個小類情感[5],這種方法的大概思路就是將每條微博表示成維度為21維的向量,每一維度對應于21個小類情感中的一類,簡而言之就是選擇大連理工情緒本體庫中固定的21個小類情感作為每條中文微博的特征。21類情感[5]為快樂(PA)、安心(PE)、尊敬(PD)、贊揚(PH)、相信(PG)、喜愛(PB)、祝愿(PK)、失望(NJ)、疚(NH)、恐懼(NC)、羞(NG)、煩悶(NE)、憎惡(ND)、貶責(NN)、憤怒(NA)、悲傷(NB)、妒忌(NK)、思(PF)、慌(NI)、懷疑(NL)、驚奇(PC)。這樣就可以使得微博語料的特征矩陣變得不再稀疏,從而方便了計算,達到了降維的目的。
1.2 基于迭代的樸素貝葉斯有無情緒分類
樸素貝葉斯學習理論是一種基于假設先驗知識的學習方法[3],該算法的思想是對于等待分類的那些文本,去計算出這些文本在該特征項出現的情況下各種情緒類別出現的概率,最后依據情緒類別的概率來進行劃分。在預測一次拋硬幣得到正反哪一面的實驗中,正反兩面出現的概率為均等的先驗知識,由一定的背景知識所得到的初始概率值就被稱為先驗知識。在很多樸素貝葉斯分類的實際應用中,先驗知識通常是由訓練集中的各類樣本所占總樣本的比例得到的[4]。例如,在有無情緒二分類中,先驗概率可由如下公式得到:
(1)
當i=0時,P(h0)等于無情緒微博樣本數n0比上所有的微博樣本數N,表示無情緒微博先驗概率,當i=1時,P(h1)等于有情緒微博樣本數n1比上所有的微博樣本數N,表示有情緒微博先驗概率。
該文介紹的這種基于迭代的樸素貝葉斯分類算法[5],其主要思想是在實驗人員手頭上有大量的待測試集合的情況下,但已標明注釋的訓練集偏少,就可以利用大量的待測試集合的數據來彌補這些不足之處,具體的過程,可先通過上文公式計算,獲得假設先驗概率,然后利用樸素貝葉斯公式對測試集進行第一次分類,接著將本次分類得到的結果再一次作為先驗知識重新計算先驗概率,這就完成了第一次迭代,如此反復迭代直至分類器的分類精度收斂至最大值或者迭代次數超過10次。
2 實驗設計
2.1 微博文本情感強度判斷分析框架
首先介紹實驗組所設計的分析框架如下:
(1)文本預處理:構建情緒詞典、表情符號詞典,對微博文本進行特征提取、停用詞去除、文本特征向量化等工作,將微博文本表示成可以用于機器學習的格式。
(2)情緒特征權重及強度計算:對特征項量化的文本按照一定公式進行情感強度計算。
(3)情感強度判斷:按照所計算出的Intensity值進行微博文本的情感強度判斷并給出可視化結果。
分析框架圖如圖1所示。
2.2 構建情緒強度詞典
根據實驗所抓取微博文本特性,根據某些特征詞匯在人工判定為“有情緒的”實驗文本數據中出現的頻率,人工挑選出30個特征詞,并經研究進行了對于“悲傷”這一情緒的強度判定,分為3個強度,即“有限制的”(Limited)、“中等”(Fair)、“高”(High)。實驗組在統計基礎之上,將詞頻在70%~100%的特征詞劃分為“High”類,將詞頻在60%~70%的特征詞劃分為“Fair”類,將詞頻在60%以下的特征詞劃分為“Limited”類,構建情緒強度詞典如表1所示。
2.3 構建表情符號詞典
表情符號是中文微博情緒分析中非常重要的顯性情緒特征之一,實驗組在進行文本數據的特征詞識別之后,經過人工統計和判斷,將所選取的微博文本中出現頻率較多的表情符號進行了整理和劃分,并分配了不同的情感強度,構建表情符號詞典如表2所示。
2.4 構建停用詞庫
停用詞是做文本分析中需要去掉的對分析無用處的詞。在很多文本分析應用中,停用詞庫中的詞一般盡可能多的覆蓋到無實際含義的詞匯。但在實驗組的情感強度分析中,我們選用最簡單的停用詞庫,諸如“你、我”之類的人稱代詞及與情緒無關的詞一律去除。
2.5 文本預處理(特征項量化)
抓取實驗文本后,實驗組將其存儲為txt格式,并將每條微博文本分配一個獨立的ID,經過特征詞提取、表情符號提取、停用詞去除等文本預處理工作,將其轉化為下列類對象的形式:
class FeatureVector{
int Limited;//情緒詞典中Limited所占值
int Fair;// 情緒詞典中Fair所占值
int High;// 情緒詞典中High所占值
int Elimited;//表情符號詞典中Limited所占值
int Efair;//表情符號詞典中Fair所占值
int Ehigh;//表情符號詞典中High所占值
int Intensity;//權值
};
2.6 情感強度特征向量表示及強度計算
經過文本預處理之后,每一條微博文本都轉換為
(2)
其中,每個特征參數的權重Weight由人工統計進行給定。
3 實驗結果與分析
3.1 實驗環(huán)境
編程語言:C++
實驗軟件:Visual Studio 2013
實驗系統:Windows 8.1
3.2 實驗數據獲取
實驗組從新浪微博中選取了“喬任梁去世”這一主題的評論數據作為實驗數據集,利用手工方式抓取微博文本,共抓取了1500條實驗數據。
3.3 實驗設計與分析
由于實驗抓取的數據經人工判定,共99.6%的評論屬于悲傷一類情緒,因此實驗組主要針對實驗數據進行情感強度分類,參考文本特征選擇算法進行實驗。
3.4 情感強度分類判斷及可視化結果
實驗組將“悲傷”情緒強度分為3種,分別為“Limited、Fair、High”,經過權重計算,將每條微博文本的Intensity值按一定比例進行了分類,實驗數據經過機器學習判斷,結果如圖2所示。
4 結語
(1) 基于中文微博情緒分析國內外發(fā)展現狀,闡述研究背景和研究意義;然后介紹了一些中文微博文本細粒度情緒分析所用的理論知識及技術手段。
(2) 參考現行的理論技術手段,對1 500條同主題的新浪微博進行了情感強度分析研究,根據所抓取微博文本特點,構建了實驗情緒詞字典、表情符號字典以及停用詞字典,對微博文本進行預處理工作,是微博文本特征向量化。根據特征計算權重公式對特征向量化微博文本進行情感強度分析判斷,并給出實驗結果。
參考文獻
[1] 李開復.微博改變一切[M].上海財經大學出版社,2010:26-74.
[2] Picard R W.Affective computing: challenges[J].International Journal of Human Computer Studies,2003,59(1):55-64.
[3] 王國才.樸素貝葉斯分類器的研究與應用[D].重慶:重慶交通大學,2010.
[4] 雷龍艷.中文微博細粒度情緒識別研究[D].湖南:南華大學,2014.
[5] 徐琳宏,林鴻飛,潘宇,等.情感詞匯本體的構造[J].情報學報,2008,27(2):180-185.