【摘要】目前主觀信息情感分類常用的方法主要有基于知識工程和基于統(tǒng)計兩類,其中基于統(tǒng)計的機器學(xué)習(xí)方法在效率上優(yōu)于基于知識的方法,但單一的機器學(xué)習(xí)算法有各自的優(yōu)缺點,難以勝任復(fù)雜的分類任務(wù)。本文將微博情感判別任務(wù)分層,在不同層次選擇合適的機器學(xué)習(xí)算法,提出了一種多算法集成的微博細粒度情感分類方法。首先采用樸素貝葉斯(NB)分類器對微博進行有無情緒分類,然后采用AdaBoost集成算法對KNN進行集成訓(xùn)練出多個分類器,對有情緒微博基于訓(xùn)練出的多個分類器通過線性組合模型進行情感判別。實驗結(jié)果表明,在文本分類任務(wù)中合理集成不同機器學(xué)習(xí)算法,較單一機器學(xué)習(xí)算法和基于情感詞典的方法能夠提高分類性能。
【關(guān)鍵詞】微博情感判別;算法集成;機器學(xué)習(xí)算法;樸素貝葉斯;AdaBoost
1.引言
隨著互聯(lián)網(wǎng)的高速發(fā)展,“以用戶為中心,用戶參與”的開放式構(gòu)架理念已深入人心,互聯(lián)網(wǎng)用戶逐漸由被動地接收網(wǎng)絡(luò)信息向主動創(chuàng)造互聯(lián)網(wǎng)信息邁進。門戶網(wǎng)站、論壇、微博等網(wǎng)絡(luò)媒介已經(jīng)成為人們發(fā)布、傳播和獲取評論信息的重要平臺。目前針對微博新興社會媒體的情感分析已經(jīng)成為研究熱點,國內(nèi)外學(xué)者對其開展了一系列的研究。國外一些學(xué)者采用基于語義的關(guān)聯(lián)分析,基于情感詞典和基于KNN、SVM等機器學(xué)習(xí)算法對twitter進行了大量情感分類的相關(guān)研究[2-5]。但由于中英文語言的差異,中文微博較英文微博具有更豐富的語義信息,上述方法直接應(yīng)用到中文領(lǐng)域還存在一定局限性[6]。目前國內(nèi)學(xué)者正積極針對中文微博的特點致力于中文微博情感分析方面的研究。文獻[7]和[8]對不同的情感分類方法特征特征選擇算法對微博情感褒貶分類進行了對比研究。文獻[9]和[10]采用樸素貝葉斯算法分別對微博情感的正負分類問題進行了研究。上述研究基本上都局限在粗粒度的情感分類,粗粒度情感分類是指只對文本進行主客觀分類或進一步將主觀文本的情感區(qū)分成褒義和貶義兩類,而在實際應(yīng)用中,微博的細粒度情感(如“喜歡”、“高興”、“悲傷”、“厭惡”等)更能體現(xiàn)用戶對所關(guān)注事物的態(tài)度與更準(zhǔn)確地反映用戶對不同評價對象的情感。
機器學(xué)習(xí)算法對粗粒度情感分類具有較好的效果,而對細粒度情感分類采用單一的機器學(xué)習(xí)算法很難達到較高的性能。針對上述問題,本文將微博細粒度情感分類任務(wù)分解成有無情緒微博的粗粒度分類和對有情緒微博進行細粒度再分類兩個子問題。首先提取文本詞特征和詞性特征,采用樸素貝葉斯算法對微博進行有無情感的初步劃分,然后采用AdaBoost集成算法對NB簡單分類器進行訓(xùn)練得到多個分類器,最后通過各分類器加權(quán)求和對微博進行7類細粒度情感分類。在NLP&CC2013公布微博數(shù)據(jù)集上,將本文方法與單一分類算法以及傳統(tǒng)的基于情感詞典的分類方法分別進行比較,實驗結(jié)果表明本文提出的融合策略的效果較優(yōu)。
2.微博情感本體庫的構(gòu)建
文本情感主要由情感詞進行表征,但由于微博語具有達自由,存在大量變形詞、新詞和潛在情感詞等特點,僅依靠現(xiàn)有情感詞典對微博中情感表達詞匯的覆蓋率不高。本文以大連理工情感詞典作為基礎(chǔ)情感詞典,其中共收錄27476個詞,每個詞標(biāo)注情感類別、情感強度等屬性,并采用人工收集和程序自動獲取兩種方式對其擴展,構(gòu)建了相對完善的情感本體庫。
2.1 人工擴展
人工對情感本體庫的擴展主要來源有兩個方向,一是收集網(wǎng)絡(luò)新詞、熱詞;二是微博中常用的表情符號。新增詞收集好后按基本情感詞典的標(biāo)注方法設(shè)置新增情感詞的情感類別和強度,手工添加了如NND、MLGB、[哈哈]等情感詞匯。
2.2 開方檢驗擴展
人工擴展雖然比較有針對性,但與數(shù)據(jù)樣本的相關(guān)性不強,我們針對訓(xùn)練集,采用開放驗證方法從中獲取未收錄的情感詞。開方檢驗是一種通過比較實際值與理論值的偏差來確定理論正確與否的數(shù)理統(tǒng)計方法,將訓(xùn)練集中的詞t看作是一個隨機變量,將每個情感類別c看作另一個隨機變量,如果t和類別c獨立說明詞t對類別c沒有表征作用,即無法根據(jù)t出現(xiàn)與否來判斷一篇文檔是否屬于c這個分類。通過假設(shè)詞t與類別c不相關(guān),計算詞t與類別c的開方值,則開方值越大假設(shè)越不成立,即詞t越能表征類別c。如表1所示:
表1 開方檢驗擴展情感詞示例
特征選擇 1.屬于
“悲傷” 2.不屬于
“悲傷” 總計
1.包含“大哭” A B A+B
2.不包含“大哭” C D C+D
總數(shù) A+C B+D
微博中包含“大哭”的概率是(A+B)/N,屬于“悲傷”類的微博數(shù)為A+C,所以在這些微博中,應(yīng)該有E11=(A+C)(A+B)/N篇包含“大哭”這個詞(數(shù)量乘以概率)。但實際屬于“悲傷”又包含“大哭”的微博數(shù)是A,其方差為D11=(A-E11)2/E11 ,同樣方法計算出D12、D21、D22的值,則可以公式(1)計算詞t與類別c的開方值。
(1)
在每類情感c中按得分挑選表征作用較強的詞加入基礎(chǔ)詞典,即可實現(xiàn)情感詞典自動擴展。
3.微博情感判別
不同于新聞、產(chǎn)品評論,微博屬于短文本,長度有最大字數(shù)限定,結(jié)構(gòu)差異性大;交互性強、用語不規(guī)范偏口語化,特征關(guān)鍵詞少、存在大量變形詞和網(wǎng)絡(luò)新詞。除了分類算法以外,為分類文本作處理的特征提取算法也對最終效果有巨大影響[11],本文在分類之前先從詞和詞性兩個方面進行特征提取構(gòu)建樸素貝葉斯的特征集合。
3.1 詞特征和詞性特征選擇
將數(shù)據(jù)樣本經(jīng)過分詞標(biāo)注、去停用詞等預(yù)處理后,作為輸入?yún)?shù)輸送給特征選擇算法。用特征選擇評價標(biāo)準(zhǔn)去除那些不相關(guān)或冗余的特征,并保留那些滿足判定條件的特征,以提高分類器的性能,并達到降維的目的。具體方法如下:
(1)詞特征選擇:先統(tǒng)計詞W在有情感微博中的出現(xiàn)頻率WFreq有和在無情感微博中出現(xiàn)的頻率WFreq無,并根據(jù)公式2提取特征詞。
(2)
WFreqi分別表示W(wǎng)Freq和WFreq無,對應(yīng)WFreqi'則分別為WFreq無和WFreq有,當(dāng)Select(w)=Ture則提取W作為WFreqi對應(yīng)情感的特征詞。通過對提取的特征詞統(tǒng)計分析發(fā)現(xiàn)當(dāng)閾值k=4,n=20時,提取的特征集具有最好表征作用。
(2)詞性特征選擇:詞性在主觀表達和客觀表達中出現(xiàn)的頻率是有很大差別,語氣詞、感嘆詞、表情符號等在有情緒的微博中出現(xiàn)的頻率較高,對情感微博具有較高的表征作用。我們對詞特征選取后剩余詞的詞性特征進行分析,其步驟如詞特征提取一致。
綜上,特征選擇具體選擇算法描述如下:
圖1 樸素貝葉斯特征選擇流程
3.2 基于樸素貝葉斯的有無情緒分類
樸素貝葉斯分類算法是一種基于概率的學(xué)習(xí)算法,在待分類項出現(xiàn)的條件下求解已知類別集合中各類出現(xiàn)的概率。將提取的特征集合與樣本集合及類別標(biāo)簽組成新的數(shù)據(jù)集,提供NB分類器,訓(xùn)練分類預(yù)測模型。將微博文本表示為,類別集合為,在特征相互獨立的情況下,其分類算法公式為:
(3)
其中cj分別表示cy和cn,P(cj)是類別cj的先驗概率,P(wi|cj)是特征Wi在類別cj條件下的后驗概率,先驗概率是根據(jù)訓(xùn)練語料中有無情緒兩類微博分別所占的比例統(tǒng)計所得。
本文采用多項式貝葉斯分類模型進行有無情緒分類,其具體步驟為:首先構(gòu)建訓(xùn)練集微博的貝葉斯分類特征集合,然后統(tǒng)計有無情緒微博的先驗概率和計算特征集合中每個特征屬性分別在有無情緒兩個類別中的條件概率,訓(xùn)練得到分類器;最后根據(jù)公式(3)計算每個待分類樣本分別在有無情緒類別中可能出現(xiàn)的概率P(有)和P(無),以值較大的為待分類微博所屬的情感類別。
3.3 基于AdaBoost+KNN實現(xiàn)細粒度分類
單一的分類算法通常存在各自的缺陷,如K-鄰近算法(KNN)算法處理大規(guī)模數(shù)據(jù)時效率低下,C4.5對數(shù)據(jù)集中的奇異數(shù)據(jù)比較敏感,樸素貝葉斯算法(NB)的獨立性假設(shè)通常不成立等。而集成算法可以綜合多個分類器的結(jié)果提高繁華能力,我們采用AdaBoost集成分類算法對KNN進行串行訓(xùn)練,得到多個分類器,對微博進行多標(biāo)簽情感分類,由多個分類器采用投票的方式?jīng)Q定最終的分類結(jié)果,其具體流程為:
(1)對訓(xùn)練集S的每個樣本賦予權(quán)值,初始權(quán)值為1/N,構(gòu)建一個權(quán)值向量。
(2)在訓(xùn)練集S上進行訓(xùn)練,得到一個KNN分類器。
(3)計算訓(xùn)練得到的分類器的錯誤率ε,ε的計算公式為:(錯誤分類的樣本數(shù))|(所有樣本數(shù))。
(4)根據(jù)分類的錯誤率ε為每個分類器分配一個權(quán)重,。
(5)分別采用和兩個公式對分對和分錯的樣本進行權(quán)重調(diào)整。
(6)進入下一次迭代,直到訓(xùn)練錯誤率達到要求或者分類器數(shù)目達到指定個數(shù)為止。
(7)用各分類器單獨計算待測樣本的類別,然后對各分類結(jié)果按權(quán)重計算最終結(jié)果。
AdaBoost算法通過為每個樣本記錄賦予權(quán)重,所有樣本的初始權(quán)重相等均為1/N,而后隨著分類的迭代,樣本的權(quán)重逐漸被調(diào)整,分錯樣本的權(quán)重逐漸增加,分對樣本的權(quán)重逐漸降低,使得分類器朝著更有利于易錯樣本的方向演化。每次調(diào)整樣本權(quán)重時,均需要對權(quán)重進行歸一化處理,保證所有樣本權(quán)重之和為1。錯誤率最終控制在可接受范圍,本文通過實驗確定其可接受閾值為0.05,迭代次數(shù)閾值為21。將訓(xùn)練集經(jīng)過有無情緒分類后將有情緒微博以規(guī)定的格式輸入到AdaBoost訓(xùn)練程序中,訓(xùn)練得到多個分類器通過所有分類器加權(quán)求和對待分類微博進行多類別情緒識別。
4.實驗結(jié)果分析
本文的實驗數(shù)據(jù)來自2013年CCF中文信息技術(shù)專委會學(xué)術(shù)年會(NLP&CC2013)中微博情緒識別評測任務(wù),包含4000條已標(biāo)注情緒微博,隨機取3000條作為訓(xùn)練集,剩余的1000條作為測試集。本文設(shè)計了兩組對比實驗,分別采用單一的分類算法NB與直接使用情感詞典方法與本文方法進行對比分析,多標(biāo)簽NB分類器與有無情緒NB分類器的構(gòu)造一致,只是類別集合為,Ci對應(yīng)情感本題庫中的七類情感。微博細粒度情感判別使用宏平均(Macro)和微平均(Micro)的準(zhǔn)確率、召回率和F 值作為評價指標(biāo)。各方法具體結(jié)果如表2所示。從實驗結(jié)果看,機器學(xué)習(xí)算法又要優(yōu)于直接基于情感詞得分求和的方法,AdaBoost+KNN的方法要比單一使用NB的判別方法在性能有較大的提高。說明將微博多情感判別分層實現(xiàn),在不同層次上選擇合適的學(xué)習(xí)算法實現(xiàn)多種算法的有效集成,確實能突出各算法的優(yōu)點,避免單一使用某一算法的不足。但由于實驗的訓(xùn)練數(shù)據(jù)有限加上情感本題庫的構(gòu)建不夠完善,使得本方法對微博多標(biāo)簽情感分類的評價指標(biāo)還不是很理想,我們在對更多的方法進行集成對比找出最適合的搭配。
5.結(jié)論
本文采用樸素貝葉斯算法先對微博進行有無情感判別,再通過集成算法AdaBoost對KNN進行訓(xùn)練得到多個分類器,進行加權(quán)求和確定有情感微博的情感類別,實現(xiàn)了微博情感的細粒度分類。將分層融合的方法與傳統(tǒng)基于詞典的方法和單一的機器學(xué)習(xí)算法結(jié)果進行了分析比較,結(jié)果表明本文方法要優(yōu)于單一的分類算法和傳統(tǒng)基于情感詞典的方法??傮w來看,各項評價指標(biāo)還不夠理想,我們將在情感本體庫擴展、特征選擇、分類算法搭配選擇上做更進一步的探究。
參考文獻
[1]趙妍妍,秦兵,劉挺.文本情感分析[J].軟件學(xué)報,2010: 1834-1848.
[2]O'Connor B,Balasubramanyan R.From tweets to polls:linking text sentiment to public opinion time series[C]//Proceedings of the International AAAI Conference on Weblogs and Social Media,Washington DC,2010:1-8.
[3]Jansen B J,Zhang Mimi.Twitter power:tweets as electronic word of mouth[J].Journal of the American Society for Information Science and Technology,2009:2169-2188.
[4]Si Jianfeng,Mukherjee A,Liu B,et al.Exploiting topic based Twitter sentiment for stock//Proceedings of the 50st Annual Meeting of the Association for Computational Linguistics.Jeju Island, Korea,2013:115-120.
[5]Barbosa L,F(xiàn)eng J.Robust sentiment detection on twitterfrom biased and noisy data//Proceedings of the 23rd International Conference on Computational Linguistics.Beijing:Tsinghua University Press,2010:36-44.
[6]周勝臣,瞿文婷,石英子,施詢子,孫韻辰.中文微博情感分析研究綜述[J].計算機應(yīng)用與軟件,2013(3):161-164,181.
[7]劉志明,劉魯.基于機器學(xué)習(xí)的中文微博情感分類實證研究[J].計算機工程與應(yīng)用,2012(1):1-4.
[8]韓忠明,張玉沙,張慧,萬月亮,黃今慧.有效的中文微博短文本傾向性分類算法[J].計算機應(yīng)用與軟件,2012 (10):89-93.
[9]林江豪,陽愛民,周詠梅,陳錦,蔡澤鍵.一種基于樸素貝葉斯的微博情感分類[J].計算機工程與科學(xué),2012(9):160-165.
[10]楊武,宋靜靜,唐繼強.中文微博情感分析中主客觀句分類方法[J].計算機工程與科學(xué),2013(1):51-56
[11]寇蘇玲,蔡慶生.中文文本分類中的特征選擇研究[J].計算機仿真,2007(3):289-291.
本文屬南華大學(xué)創(chuàng)新團隊建設(shè)基金資助項目(項目編號:NHCXTD16)。
作者簡介:左榮欣(1980—),女,遼寧鐵嶺人,南華大學(xué)工程碩士,湖南高速鐵路職業(yè)技術(shù)學(xué)院講師、工程師,研究方向:計算機軟件、信息系統(tǒng)集成。