馮軍軍 王海沛 賀曉春
(四川信息職業(yè)技術(shù)學(xué)院 廣元 628017)
近幾年,微博因其在信息溝通方面給予用戶自由性和快捷性,使其作為一種社交網(wǎng)絡(luò)平臺(tái)脫穎而出[1]。廣大微博用戶樂(lè)于通過(guò)該平臺(tái)表達(dá)自己對(duì)某些社會(huì)事件的看法和態(tài)度,釋放情感訴求,這些微博內(nèi)容和相應(yīng)的評(píng)論飽含大量的情感信息和觀點(diǎn),往往產(chǎn)生巨大的社會(huì)輿論效應(yīng)[2~3]。對(duì)微博內(nèi)容進(jìn)行情感分析可以了解文本中觀點(diǎn)持有者對(duì)事件或?qū)ο蟮那楦袃A向性態(tài)度,而對(duì)這些海量的情感傾向性言論進(jìn)行數(shù)據(jù)挖掘有助于政府監(jiān)測(cè)輿情、了解民意、引導(dǎo)輿論等[4]。
目前,由于中文微博表達(dá)方式多樣化且不規(guī)范程度很高,對(duì)中文微博文本的情感分析研究比較少,主要集中于基于機(jī)器學(xué)習(xí)的情感分析方法和基于情感詞典的機(jī)器學(xué)習(xí)方法[5~10]。本文提出了基于Logistic[11~13]回歸算法的中文微博情感分類方法,結(jié)合微博自身特點(diǎn),選取了某些熱門事件的微博及其評(píng)論內(nèi)容作為研究對(duì)象,首先對(duì)其進(jìn)行文本預(yù)處理,將經(jīng)過(guò)處理后的微博文本進(jìn)行人工情感類別標(biāo)記,然后基于多元情感詞典抽取微博的情感特征詞和使用布爾權(quán)值方法計(jì)算情感特征權(quán)重值,導(dǎo)入到Logistic回歸模型,經(jīng)過(guò)訓(xùn)練后得到LR(Logistic Regression)分類器,用它來(lái)預(yù)測(cè)未知類別的微博文本的情感極性。
通過(guò)對(duì)微博特點(diǎn)進(jìn)行分析,發(fā)現(xiàn)其形式上類似于BBS論壇“首帖+跟帖”,“主貼”情感色彩很淡,多為客觀性陳述?!案倍酁樵u(píng)論性內(nèi)容,情感色彩多樣,褒貶不一。微博“跟帖”內(nèi)容特點(diǎn)如下:1)評(píng)論內(nèi)容較短,不足140個(gè)字符;2)內(nèi)容隨意,經(jīng)常出現(xiàn)與微博“主貼”無(wú)關(guān)的內(nèi)容;3)評(píng)論內(nèi)容多情感符號(hào);4)評(píng)價(jià)主題不明確,易發(fā)散;5)評(píng)論內(nèi)容多重復(fù);6)評(píng)論內(nèi)容錯(cuò)別字、俚語(yǔ)、網(wǎng)絡(luò)新詞匯等出現(xiàn)的頻率較高。
以新浪微博為例,本文選取了某些熱門主題的微博及其評(píng)論內(nèi)容作為研究對(duì)象,將其用向量空間模型進(jìn)行表示,便于計(jì)算機(jī)理解和處理。向量空間模型將微博文本抽象成一個(gè)向量Vi,Vi={F1,F(xiàn)2,…Fn},其中Fi表示微博文本的情感特征,Wi={W1,W2,…Wn}依次對(duì)應(yīng)微博情感特征詞的權(quán)重值。在對(duì)這些微博文本進(jìn)行情感分析之前,需要對(duì)其進(jìn)行文本預(yù)處理。微博文本的預(yù)處理步驟包括:微博數(shù)據(jù)清洗、內(nèi)容去重、中文分詞、停用詞過(guò)濾,評(píng)價(jià)對(duì)象抽取等步驟。1)微博內(nèi)容的無(wú)關(guān)標(biāo)如“@”、“//@”標(biāo)簽及其后面的內(nèi)容,“#”與“#之間的內(nèi)容及符號(hào)”需要被過(guò)濾掉,而對(duì)于表情符號(hào)則需要保留;2)情感評(píng)價(jià)對(duì)象抽取,經(jīng)過(guò)中文分詞、詞性標(biāo)注后,對(duì)微博“首貼”出現(xiàn)的某些專有名詞等進(jìn)行提取,如機(jī)構(gòu)名、團(tuán)體名等。一般評(píng)價(jià)對(duì)象的個(gè)數(shù)一般不會(huì)超過(guò)三個(gè)。
微博情感特征提取是指抽取描述微博情感最好的特征的過(guò)程,這樣做的好處是消除與情感無(wú)關(guān)或情感關(guān)聯(lián)程度較小的特征詞,減少不必要的干擾,達(dá)到去噪的目的,同時(shí)也能有效地降低經(jīng)過(guò)中文分詞后的微博文本特征空間的維數(shù),提高微博情感分類的正確率。本文采用基于多元情感詞典的方法抽取微博中情感特征詞。為了提高算法的效率,對(duì)情感詞典采用哈希存儲(chǔ)的方式,便于快速查找,減少時(shí)間空間算法復(fù)雜度。
1)基礎(chǔ)情感字典
目前的基礎(chǔ)情感字典有臺(tái)灣大學(xué)NTUSD整理并發(fā)布的簡(jiǎn)體中文情感字典,知網(wǎng)(HowNet)提供的情感詞庫(kù)和大連理工大學(xué)信息檢索實(shí)驗(yàn)室發(fā)布的情感詞匯本體庫(kù),它們都提供了許多情感詞。本文使用了知網(wǎng)(HowNet)的情感詞匯本體,共有8936個(gè)情感詞匯,其中正向情感詞4566個(gè),負(fù)向情感詞 4370 個(gè),如“高興”、“感激”、“樂(lè)滋滋”等正向情感詞匯和“卑鄙”、“悲觀”、“吃錯(cuò)藥”等負(fù)向情感詞匯??紤]到微博上經(jīng)常出現(xiàn)一些流行網(wǎng)絡(luò)詞匯,如“萌噠噠”、“醉了”、“心塞”、“就是這么任性”等情感詞匯,在前人總結(jié)基礎(chǔ)之上,加入了近年新出現(xiàn)的網(wǎng)絡(luò)情感詞匯。
2)標(biāo)點(diǎn)符號(hào)詞典
微博中的標(biāo)點(diǎn)符號(hào)有時(shí)候不僅起到斷句的作用,而且有時(shí)候可以表達(dá)情感的強(qiáng)弱程度,如“!??!”、“?”等。
3)表情符號(hào)詞典
通過(guò)對(duì)用戶發(fā)布微博的行為習(xí)慣進(jìn)行研究、統(tǒng)計(jì)發(fā)現(xiàn)用戶經(jīng)常在發(fā)布的微博內(nèi)容加入微博表情符號(hào),來(lái)表達(dá)某種情感。這種表情符號(hào)具有情感表達(dá)直觀、簡(jiǎn)單等特點(diǎn),因此在對(duì)微博進(jìn)行情感分析的時(shí)候,尤其是在微博預(yù)處理階段,對(duì)這些表情符號(hào)往往不能忽略。
通過(guò)對(duì)微博文本的情感特點(diǎn)進(jìn)行分析,發(fā)現(xiàn)微博內(nèi)容中出現(xiàn)的情感詞的次數(shù)并不影響微博的情感極性,對(duì)于這些情感特征采用 TFIDF[14]、IG[15]等方法計(jì)算權(quán)重意義不大,本文采用布爾權(quán)值計(jì)算方法,對(duì)于出現(xiàn)的情感特征詞標(biāo)記為1,未出現(xiàn)的情感特征詞標(biāo)記為0。
綜上所述,本文將微博情感抽取與權(quán)重計(jì)算的步驟作出如下說(shuō)明:1)微博文本集進(jìn)行預(yù)處理,輸出具有高維度的特征空間,需要對(duì)其進(jìn)行降維處理;2)依據(jù)多元情感詞典保留特征空間的情感特征,這樣做的目的是突出微博文本的情感特征;3)步驟2)完成之后,將形成文本的情感特征空間,此時(shí)可以對(duì)每條微博文本進(jìn)行布爾權(quán)重計(jì)算,結(jié)果形成了該微博文本的情感特征表示。
經(jīng)過(guò)文本處理步驟后得到微博及其評(píng)論的情感向量表示,經(jīng)過(guò)人工交叉情感標(biāo)記后,可以作為情感分類器的訓(xùn)練和測(cè)試數(shù)據(jù)。本文采用Logistic回歸模型構(gòu)建微博文本情感分類器,Logistic算法屬于最優(yōu)化算法,它能將一些具有類別信息數(shù)據(jù)點(diǎn),通過(guò)用直線或曲線將這些類別不同的數(shù)據(jù)點(diǎn)進(jìn)行擬合,這個(gè)擬合過(guò)程叫回歸。為了實(shí)現(xiàn)Logistic回歸,需要根據(jù)現(xiàn)有的數(shù)據(jù),構(gòu)建分類邊界回歸公式,不斷進(jìn)行參數(shù)訓(xùn)練,找到最佳的擬合參數(shù),得到LR(Logistic Regression)分類器,最后用它來(lái)實(shí)現(xiàn)未知類別微博文本的情感分類。
2.4.1 Sigmoid函數(shù)的分類
對(duì)于人工標(biāo)記好的微博,首先判斷該微博是否為主觀微博,如果不是,則是客觀微博,那么其情感極性為中性,反之則為主觀微搏,這時(shí)候需要判斷其情感極性,是否是正向情感或者負(fù)向情感,這是一個(gè)二分類問(wèn)題,要求存在這樣的函數(shù)且函數(shù)輸出的結(jié)果只能為0和1。Sigmoid函數(shù)能夠在跳躍點(diǎn)從0瞬間跳躍到1,其計(jì)算式(1)如下:
圖1給出了Sigmoid的函數(shù)曲線圖。從圖中可以看到,當(dāng)x為0時(shí),函數(shù)值為0.5,隨著x的增大,函數(shù)值趨近于1;隨著x的減少,函數(shù)值趨近于0。
圖1 Sigmoid函數(shù)圖
2.4.2 基于改進(jìn)的上升梯度算法確定最佳回歸系數(shù)
對(duì)分類邊界建立回歸公式,具體如式(2)所示。其中X表示特征,W表示回歸系數(shù),對(duì)每一個(gè)特征乘以回歸系數(shù),然后所有值相加得到Z值,然后將其帶入到式(1),此時(shí)σ(z)的取值范圍介于0到1之間,對(duì)σ(z)大于0.5,劃歸為“1”類,σ(z)小于0.5,則劃歸到“0”類。
上式也可以用向量的形式表示,如式(3)所示:
它表示將這兩個(gè)向量對(duì)應(yīng)元素相乘后然后全部加起來(lái),即得到Z值。其中向量X表示特征向量,向量W表示回歸系數(shù),為了使分類器的精度盡可能高,在分析梯度上升算法的基礎(chǔ)上,發(fā)現(xiàn)上述算法在每次更新回歸系數(shù)W時(shí)都需要遍歷整個(gè)數(shù)據(jù)集,如果特征個(gè)數(shù)不多,那么對(duì)結(jié)果沒有多大影響,但是本文涉及微博文本情感特征空間維度較大時(shí),該方法的計(jì)算復(fù)雜度就高了,采取隨機(jī)梯度上升算法解決這個(gè)問(wèn)題,改進(jìn)的方法是一次僅用一個(gè)樣本點(diǎn)來(lái)更新回歸系數(shù)。
本文選擇隨機(jī)梯度算法作為最優(yōu)化算法,其偽代碼如下:
隨機(jī)回歸系數(shù)初始化為l對(duì)數(shù)據(jù)集中每個(gè)樣本
計(jì)算該樣本的梯度
使用alpha*gradient更新回歸系數(shù)值返回回歸系數(shù)值
微博正向情感是指通過(guò)微博表達(dá)對(duì)特定事務(wù)或?qū)ο笏钟蟹e極的、正面的評(píng)價(jià)和態(tài)度,具有主觀性。微博負(fù)向情感是指通過(guò)微博表達(dá)對(duì)特定事務(wù)或?qū)ο笏钟械南麡O的、負(fù)面的評(píng)價(jià)和態(tài)度,具有主觀性。微博中性情感是指通過(guò)微博表達(dá)對(duì)特定事務(wù)或?qū)ο笏钟械目陀^評(píng)論,是基于對(duì)事實(shí)的陳述,情感色彩平淡。因此本文對(duì)主觀微博的人工情感極性標(biāo)注基于“評(píng)價(jià)對(duì)象+情感極性”形式,對(duì)于客觀微博的人工情感極性標(biāo)注只需確定該微博是否為帶有客觀性。經(jīng)過(guò)人工標(biāo)記后的訓(xùn)練及評(píng)測(cè)的數(shù)據(jù)以XML格式存儲(chǔ),表1是人工標(biāo)注數(shù)據(jù)標(biāo)簽的名稱和含義。
表1 人工標(biāo)注數(shù)據(jù)標(biāo)簽的名稱和含義
@廣州公安通報(bào)2014年5月6日廣州火車站砍人事件評(píng)論內(nèi)容為例,對(duì)部分評(píng)論進(jìn)行人工情感極性標(biāo)注,如表2。
表2 微博情感極性分類示例
本文針對(duì)熱門主題的微博,利用微博信息采集器從新浪微博網(wǎng)站采集了相關(guān)熱門事件的微博內(nèi)容及其評(píng)論內(nèi)容,采集的數(shù)據(jù)來(lái)源[16]于近幾年十大熱門事件:十堰法官毆打女醫(yī)生事件、上海外灘踩踏事件、亞航航班中國(guó)游客不文明事件、黑龍江訥河監(jiān)獄在押犯人微信詐騙事件、湖南湘潭產(chǎn)婦死亡事件、中央加強(qiáng)反腐力度、姚貝娜眼角膜捐獻(xiàn)、習(xí)總書記現(xiàn)身魯?shù)闉?zāi)區(qū)、慰問(wèn)災(zāi)民情況、國(guó)家公祭日學(xué)子知與行、柴靜霧霾調(diào)查。采集不同的熱門微博及其評(píng)論內(nèi)容不僅避免了實(shí)驗(yàn)結(jié)果依賴于特定的領(lǐng)域,而且方便進(jìn)行人工交叉情感類別標(biāo)記。在微博數(shù)據(jù)采集的過(guò)程中,需要注意以下兩點(diǎn):1)需要對(duì)某些評(píng)論內(nèi)容的回復(fù)進(jìn)行過(guò)濾,原因在于評(píng)論內(nèi)容的回復(fù)會(huì)引申出多種評(píng)價(jià)對(duì)象,造成“情感漂移”,這顯然與微博首貼內(nèi)容的評(píng)價(jià)對(duì)象相背離;2)對(duì)于新浪微博某些熱門事件的評(píng)論,往往選取前1000條獲得“贊”的數(shù)量最多的評(píng)論內(nèi)容,原因在于對(duì)這些評(píng)論內(nèi)容其它微博用戶與其情感傾向相吻合,認(rèn)同感較為強(qiáng)烈。
微博數(shù)據(jù)采集完成之后,按照前文描述的方法,對(duì)微博文本進(jìn)行預(yù)處理,抽取微博文本情感特征并計(jì)算其權(quán)重值,然后獲取評(píng)價(jià)對(duì)象,主要針對(duì)微博事件本身和微博“首帖”出現(xiàn)的人物名、機(jī)構(gòu)名等,對(duì)于微博內(nèi)容出現(xiàn)的評(píng)價(jià)對(duì)象可以通過(guò)中文分詞和詞性標(biāo)注獲取,最后對(duì)其進(jìn)行人工交叉情感標(biāo)記。完成后統(tǒng)計(jì)表明,微博內(nèi)容及其評(píng)論總共5000條,分為十類,每類500條,其中訓(xùn)練語(yǔ)料4000條,評(píng)測(cè)語(yǔ)料1000條,經(jīng)過(guò)人工交叉(多人交叉進(jìn)行情感標(biāo)注)情感類別標(biāo)記后,相關(guān)統(tǒng)計(jì)如表3所示。
表3 十大熱門微博評(píng)論的相關(guān)統(tǒng)計(jì)
其中EID表示熱門事件(Event)ID,EN表示微博事件名稱,RN表示評(píng)論(Peply)數(shù)量,Obj表示評(píng)價(jià)對(duì)象(Object),PN表示某一評(píng)價(jià)對(duì)象情感極性值為正向(Positive)的評(píng)論數(shù)量,NN表示某一評(píng)價(jià)對(duì)象情感極性值為負(fù)向(Negtive)的數(shù)量,CN對(duì)某一評(píng)價(jià)獨(dú)享情感極值為中性(Central)的數(shù)量。
基于Logistic回歸算法的微博情感分析的具體實(shí)現(xiàn)過(guò)程如圖2所示。
結(jié)合圖2,對(duì)基于Logistic回歸算法的微博情感分析算法做出如下說(shuō)明:
輸入:微博語(yǔ)料集(微博訓(xùn)練集MTS+微博測(cè)試集MDS)
輸出:MDS情感類別
算法步驟:
1)對(duì)微博采集器采集的微博數(shù)據(jù)集進(jìn)行文本預(yù)處理,包括數(shù)據(jù)清洗、中文分詞、詞性標(biāo)注、停用詞過(guò)濾、情感對(duì)象提?。?/p>
2)利用第2節(jié)的基于多元情感詞典的特征提取和情感特征權(quán)重計(jì)算;
3)對(duì)經(jīng)過(guò)步驟2)處理后的微博文本進(jìn)行人工情感分類標(biāo)注,最后整理成統(tǒng)一的數(shù)據(jù)格式;
4)將經(jīng)過(guò)標(biāo)記的微博語(yǔ)料分為微博訓(xùn)練集MTS和微博測(cè)試集MDS;
5)導(dǎo)入到Logistic回歸模型,選擇隨機(jī)梯度優(yōu)化算法,訓(xùn)練得到擬合參數(shù);
6)對(duì)待分類微博測(cè)試集MDS利用訓(xùn)練后的Logistic回歸模型實(shí)現(xiàn)微博情感極性分類;
7)對(duì)MDS的情感分類結(jié)果進(jìn)行評(píng)測(cè)。
圖2 基于Logistics回歸算法微博情感分類流程圖
Logistic回歸算法作為機(jī)器學(xué)習(xí)算法中的一種,通常只提供微博語(yǔ)料庫(kù)80%數(shù)據(jù)作為訓(xùn)練集,值得注意的是,需要隨機(jī)選擇20%的測(cè)試數(shù)據(jù)作為測(cè)試集去測(cè)試分類器的準(zhǔn)確率。經(jīng)過(guò)人工情感標(biāo)記的微博內(nèi)容及其評(píng)論并沒有按照特定目的排序,所以對(duì)于隨機(jī)選擇的測(cè)試集并不影響分類器最終的性能。本文將分類精確率(precision Rate)、召喚率(eRcall Rate)和F值作為情感分類效果衡量指標(biāo)[17~19]。
本次試驗(yàn)采用準(zhǔn)確率P(Precision rate),它表示正確分類微博文本的數(shù)目A與分析錯(cuò)誤的微博文本數(shù)B和分析正確微博數(shù)目A之和的比值,如式(4)所示。對(duì)于召喚率R(Recall rate),它表示分析正確微博文本的數(shù)目A與整個(gè)測(cè)試語(yǔ)料集數(shù)量的比值,如式(5)所示。
其中C表示分析錯(cuò)誤的微博數(shù)目或未被劃分的微博數(shù)目的之和,其中A+C表示整個(gè)測(cè)試語(yǔ)料集。本文同時(shí)引入F值,它表示準(zhǔn)確率P和召喚率R的加權(quán)幾何平均值,可以對(duì)二者做一個(gè)平衡的均值估計(jì),如式(6)所示。
本文采用的Logistic回歸模型進(jìn)行微博情感分類,選擇的情感特征空間的大小為1200,隨機(jī)梯度上升算法采用步長(zhǎng)a為0.001,設(shè)定迭代的次數(shù)為500,最后得到的結(jié)果如表4所示。
表4 Logistics回歸模型對(duì)微博情感分類的識(shí)別結(jié)果
通過(guò)表4可以看出將Logistic回歸模型應(yīng)用于微博的情感分析,F(xiàn)值最高可以達(dá)到93.4%,同時(shí)準(zhǔn)確率和召喚率也都較高,實(shí)驗(yàn)結(jié)果表明采用Logistic回歸模型方法在中文微博情感分類上具有很好的分類效果。
本文提出了基于Logistic回歸模型的中文微博情感分類方法。首先,分析微博自身特點(diǎn),選取了某些熱門事件的微博及其評(píng)論內(nèi)容作為研究對(duì)象,在傳統(tǒng)文本分析的基礎(chǔ)上,對(duì)其進(jìn)行文本預(yù)處理,將經(jīng)過(guò)處理后的微博文本進(jìn)行人工情感類別標(biāo)記,得到人工情感語(yǔ)料庫(kù);其次,利用多元情感詞典抽取微博的情感特征詞和使用布爾權(quán)值方法計(jì)算情感特征權(quán)重值,構(gòu)建微博文本的情感特征表示;然后將訓(xùn)練本導(dǎo)入到Logistic回歸模型,經(jīng)過(guò)訓(xùn)練后得到LR情感分類器,最后將測(cè)試樣本輸入到LR分類器中進(jìn)行情感分類,實(shí)驗(yàn)及評(píng)測(cè)結(jié)果表示。實(shí)驗(yàn)結(jié)果分析表明,本文所提出的Logistic回歸模型能夠有效地對(duì)中文微博文本進(jìn)行情感分類。