林江豪,顧也力,周詠梅,陽愛民,陳 錦
(1.廣東外語外貿(mào)大學(xué),廣東 廣州 510006;2.廣東外語外貿(mào)大學(xué) 語言工程與計(jì)算實(shí)驗(yàn)室,廣東 廣州 510006;3.廣東外語外貿(mào)大學(xué) 信息科學(xué)與技術(shù)學(xué)院,廣東 廣州 510006)
文本情感分析有利于觀點(diǎn)挖掘、產(chǎn)品口碑分析、輿情分析等實(shí)際應(yīng)用。詞語作為用戶表達(dá)觀點(diǎn)的最小單元,富含情感信息。因此,構(gòu)建高品質(zhì)的情感詞典,能有效應(yīng)用于文本情感分析[1]。由于微博文本具有口語化的特點(diǎn),并且來自多個(gè)領(lǐng)域,導(dǎo)致用戶在微博文本中使用到的情感詞差異性非常大,加大了微博文本情感分析的難度。因此,構(gòu)建能應(yīng)用于微博文本情感分析的情感詞典具有重要的價(jià)值。情感詞是組成情感詞典的單元,其存在形式一般為情感詞,情感傾向和情感權(quán)值。如國外知名的SentiwordNet[2]分別給出情感詞的正向、中性和負(fù)向三種極性的情感權(quán)重。國內(nèi)的HowNet[3]則用+1來表示詞匯的正向情感,-1來表示負(fù)向情感。
現(xiàn)有的情感詞典構(gòu)建方法主要有基于情感詞典的方法[4-9]、基于種子情感詞集方法[10-13]、基于機(jī)器學(xué)習(xí)的方法[11-16]、基于詞向量的方法[17-18]等。文獻(xiàn)[4]提出了基于情感詞典的情感特征提取及其在文本情感分析中的應(yīng)用方法。Dragut等[5]以多情感詞典中詞匯極性不同的現(xiàn)象,自動(dòng)構(gòu)建了領(lǐng)域情感詞典。在短文本情感特征提取中,Vo等提出了利用神經(jīng)網(wǎng)絡(luò)和情感詞典結(jié)合的方法[6]?;贖owNet中情感詞匯的情感信息,文獻(xiàn)[7]提出了語義相似度和語義相關(guān)場(chǎng)兩種計(jì)算方法,通過計(jì)算情感候選詞與HowNet中情感詞匯的語義相似度,得到詞匯的情感傾向。同樣利用HowNet,柳位平等利用義原計(jì)算的優(yōu)勢(shì),根據(jù)詞與正、負(fù)向種子詞的語義相似度差,計(jì)算獲得情感傾向[8]。文獻(xiàn)[9]結(jié)合了HowNet和SentiWordNet,對(duì)詞語進(jìn)行義元分解并計(jì)算其情感值。以情感種子詞集為基礎(chǔ),利用SO-PMI算法,在特定語料環(huán)境中,可計(jì)算獲得詞匯的情感傾向和權(quán)重[10-13]?;跈C(jī)器學(xué)習(xí)算法,在特定語料中對(duì)詞匯信息進(jìn)行統(tǒng)計(jì)和計(jì)算,也可獲得詞匯的情感信息。如文獻(xiàn)[14]提出利用頁面、頁面社區(qū)和頁面社區(qū)的所屬類別,將單詞語義特征映射到這些類別上,獲得詞匯的類別屬性。文獻(xiàn)[15]在新聞和評(píng)論中進(jìn)行對(duì)比分析,再將情感向通用領(lǐng)域擴(kuò)展,得到通用的情感特征。文獻(xiàn)[16]通過利用評(píng)論中的普通特征訓(xùn)練情感分類器,再基于spectral聚類將詞匯的情感映射到擴(kuò)展特征?,F(xiàn)有的研究為情感詞典構(gòu)建提供了新思路,特別是在微博語料中進(jìn)行情感詞典構(gòu)建,微博中的表情符號(hào)帶有明顯的情感特征,如用戶喜歡([贊])表示贊同,用([淚])表示傷心等情感,可作為有效的基礎(chǔ)情感信息,進(jìn)而拓展計(jì)算詞語的情感權(quán)值。
因此,文中利用微博表情符號(hào)的情感表達(dá)作用,選擇情感表情符號(hào)作為基準(zhǔn)情感信息,利用TF-IDF和SO-PMI的計(jì)算優(yōu)勢(shì),實(shí)現(xiàn)情感詞的識(shí)別與情感權(quán)值的計(jì)算,并通過微博文本情感分析任務(wù),驗(yàn)證該方法的有效性。
點(diǎn)間互信息算法(pointwise mutual information,PMI)可用于計(jì)算語料庫中兩個(gè)詞語之間的語義相似度。基本思想是統(tǒng)計(jì)詞語在文本中的共現(xiàn)率,共現(xiàn)率越高其語義關(guān)聯(lián)度越高,反之則語義關(guān)聯(lián)度越低。給定語料庫中,通過PMI算法,詞語w1與w2間的PMI值可用兩個(gè)詞在語料庫中共現(xiàn)的概率P(w1&w2)和兩個(gè)詞在語料庫中單獨(dú)出現(xiàn)的概率P(w1)與P(w2)進(jìn)行表示,具體計(jì)算如式1所示。
詞的語料庫中出現(xiàn)的概率可以使用詞的文檔頻次來計(jì)算。
(1)
情感傾向點(diǎn)互信息算法(semantic orientation pointwise mutual information,SO-PMI)是由PMI算法擴(kuò)展而來,通過引入計(jì)算詞語的情感信息,達(dá)到詞語情感傾向計(jì)算的目的。給出正面種子詞集WP和負(fù)面種子詞集WN,則候選情感詞wi的情感傾向值(SO)可采用式2計(jì)算。
(2)
SO值大于0的為正面詞匯,小于0的為負(fù)面詞匯。通常將情感傾向值進(jìn)行線性變化,使情感詞的情感權(quán)值為介于[-1,1]之間的實(shí)數(shù),如式3:
(3)
為了過濾掉情感表達(dá)較弱的詞匯,在式3中加入約束條件。設(shè)定情感閾值θ(0<θ<1),認(rèn)為情感強(qiáng)度在θ以外的詞匯為非情感詞匯,具體計(jì)算如式4:
SOnew(wi)=
(4)
情感閾值θ的取值直接關(guān)系到情感詞典的規(guī)模和范圍。θ太小容易產(chǎn)生太多的噪音情感詞,影響情感詞典的質(zhì)量;取值過大容易過濾到太多詞匯,約束情感詞典的規(guī)模。
文中通過大量實(shí)驗(yàn),最終設(shè)定閾值θ=0.35,可取得較好的情感詞典構(gòu)建效果。
情感詞典構(gòu)建過程中,首先選定正、負(fù)種子表情符號(hào)集合Wp和Wn。接著對(duì)微博語料Weibo_texts進(jìn)行分詞和TF-IDF值的計(jì)算,計(jì)算結(jié)果可用W={(w1,tf-idf1),(w2,tf-idf2),…,(wm,tf-idfm)}表示;采用閾值過濾方法,選擇W中TF-IDF值高于閾值的詞匯作為候選詞集WL={(w1,tf-idf1),(w2,tf-idf2),…,(wn,tf-idfn)}(n≤m),WL是表示在語料中具有重要區(qū)分度的詞集,但詞集中詞匯的情感權(quán)重未確定。該算法主要原理是通過計(jì)算詞集WL中每一個(gè)詞wi與Wp、Wn中各個(gè)表情符號(hào)在語料中的情感傾向點(diǎn)互信息,再與詞wi的TF-IDF值tf-idfi相乘,得到詞wi的情感特征權(quán)重;最終獲得情感詞典SentiNet={(w1,wt1),…,(wm,wtm)},實(shí)現(xiàn)了對(duì)詞匯情感表達(dá)的抽象表示,方便計(jì)算機(jī)實(shí)現(xiàn)情感計(jì)算。具體過程如圖1所示。
圖1 基于表情符號(hào)的情感詞典構(gòu)建
根據(jù)圖1,利用TF-IDF值的重要性度量和情感表情符號(hào)的情感強(qiáng)度,實(shí)現(xiàn)了情感詞的權(quán)值計(jì)算。算法描述如下:
算法:基于種子表情符的情感詞典自動(dòng)構(gòu)建算法。
輸入:微博語料集Weibo_texts;正向表情符號(hào)集Wp;負(fù)向表情符號(hào)集Wn;
輸出:SentiNet。
步驟1:初始化Senti2vec=?;
步驟2:將Weibo_texts進(jìn)行分詞、去標(biāo)點(diǎn)符號(hào)等預(yù)處理,計(jì)算詞匯的TF-IDF值,得到詞集W={(w1,tf-idf1),(w2,tf-idf2),…,(wm,tf-idfm)};
步驟3:對(duì)每一個(gè)(wi,tf-idfi)((wi,tf-idfi)∈W),如果tf-idfi≥a(a∈[0,1]),則(wi,tf-idfi)→WL;得到WL={(w1,tf-idf1),(w2,tf-idf2),…,(wn,tf-idfn)}(n≤m);
步驟4:對(duì)每一個(gè)(wi,tf-idfi)((wi,tf-idfi)∈WL),在Weibo_texts中計(jì)算獲得SO(wi);如果SO(wi)滿足式4中的情感詞范圍,則計(jì)算SOnew(wi),進(jìn)而采用式5計(jì)算獲得wti;
wti←SOnew(wi)×tf-idfi
(5)
步驟5:輸出SentiNet={(w1,wt1),…,(wm,wtm)}。
模型的輸出SentiNet,在情感權(quán)值計(jì)算過程中,一方面考慮了TF-IDF值的重要性度量,另一方面以種子表情符號(hào)的情感信息作為基礎(chǔ),實(shí)現(xiàn)更好的融合。種子表情符號(hào)不受語料的領(lǐng)域約束,使得提出的方法能在情感權(quán)值計(jì)算方面更具有適應(yīng)性。
文中使用的微博語料來自北京理工大學(xué)搜索挖掘?qū)嶒?yàn)室張華平博士的微博開放語料(Weibo_texts),包含了500萬條微博語料,用于情感詞典的構(gòu)建。同時(shí),從新浪微博上采集的4 130個(gè)用戶的298 295條個(gè)人微博。過濾不含有表情符號(hào)的微博和不含情感詞的微博,最后人工篩選4 000條并對(duì)語料進(jìn)行情感極性標(biāo)注,作為微博文本情感分析實(shí)驗(yàn)語料。語料為平衡語料,其中正、負(fù)向情感的微博語料各2 000條,用于微博情感分析實(shí)驗(yàn),驗(yàn)證構(gòu)建的情感詞典在情感分析應(yīng)用中的有效性。
種子表情符號(hào)的有效選擇是情感詞典構(gòu)建的基礎(chǔ)。文中主要采用以下兩種選擇規(guī)則:一是微博語料中的高頻表情符號(hào),有利于提高表情符號(hào)的使用覆蓋率;二是情感極性比較明顯的表情符號(hào),有利于提升情感詞極性計(jì)算結(jié)果的準(zhǔn)確性。
通過調(diào)用新浪微博API獲取到1 999個(gè)微博表情,對(duì)采集到的微博語料中的表情符號(hào)進(jìn)行頻率統(tǒng)計(jì),選擇出現(xiàn)頻率較高并且情感明顯的表情符號(hào)作為種子表情符號(hào)集,共44個(gè)表情符號(hào),其中正、負(fù)向種子表情符號(hào)各22個(gè)(見表1)。
表1 種子表情符號(hào)
利用文中提出的算法構(gòu)建獲得情感詞匯13 814個(gè),其中正向詞匯6 885個(gè),負(fù)向詞匯6 929個(gè)。將構(gòu)建的情感詞典應(yīng)用于微博語料情感分析實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)為人工標(biāo)注的平衡微博語料,共4 000條,正負(fù)向微博文本各2 000條。隨機(jī)取正向語料100條和負(fù)向語料1 000條構(gòu)建平衡訓(xùn)練語料庫。其余的語料用于微博文本情感分類器的測(cè)試。
基于支持向量機(jī)(SVM)這種監(jiān)督式學(xué)習(xí)的方法,構(gòu)建了微博文本情感分類器。分類過程中,首先對(duì)微博文本進(jìn)行分詞等文本預(yù)處理操作;接著基于傳統(tǒng)的向量空間模型(vector space model,VSM)對(duì)文本進(jìn)行向量表示,對(duì)出現(xiàn)在SentiNet中的詞匯用情感權(quán)重表示,其他的用0表示,向量的維度是SentiNet的長度。
同時(shí)直接利用SentiNet中詞匯的情感權(quán)值對(duì)微博語料進(jìn)行情感分析,主要采用情感加權(quán)(SO-SUM)和情感乘積(SO-MUL)的方法,也就是將每一條微博進(jìn)行分詞等預(yù)處理后,直接掃描出現(xiàn)在SentiNet中的情感詞,將每個(gè)情感詞的權(quán)值分別進(jìn)行求和與乘積運(yùn)算,最終每條微博的情感值大于0,則分類為正向,否則為負(fù)向。
為了進(jìn)一步驗(yàn)證情感詞典,與國內(nèi)知名的HowNet情感詞典進(jìn)行對(duì)比。評(píng)價(jià)指標(biāo)采用微平均F1值。采用折疊交叉實(shí)驗(yàn)的方式,迭代10次,最終取平均值作為實(shí)驗(yàn)結(jié)果,如表2所示。
表2 微博文本情感分類結(jié)果
觀察語料和實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),由于微博口語化、轉(zhuǎn)折詞、程度副詞等對(duì)分類效果也有一定的影響,為了驗(yàn)證所構(gòu)建情感詞典的有效性,對(duì)這些影響暫不考慮。因此,僅獲取了微博文本中出現(xiàn)的情感詞作為情感特征,導(dǎo)致總體的F1值偏低。采用SentiNet+SVM的方法可取得較好的分類效果(F1=63.25%)。對(duì)比分析了SentiNet和HowNet兩種情感詞典在分類中的效果,如圖2所示。
圖2 微博情感分類結(jié)果對(duì)比
從圖2中可以看出,同樣的分類方法SentiNet可取得比HowNet更好的分類性能。主要原因是,SentiNet是從語料中計(jì)算獲得,情感詞匯的覆蓋面更廣泛一些,能提取到更多有效的情感特征。SO-SUM方法與分類器SVM方法效果相當(dāng),說明文中的情感權(quán)重計(jì)算結(jié)果是有效的。同時(shí),SO-SUM方法具有不需要訓(xùn)練,可直接應(yīng)用于大規(guī)模的語料分類的優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果表明,文中方法能對(duì)詞匯中的情感詞匯進(jìn)行有效的表示。
基于詞匯的TF-IDF值,選擇語料中具有重要度區(qū)分的詞匯作為候選情感詞集。提出基于種子表情符號(hào)和SO-PMI算法的權(quán)重計(jì)算方法實(shí)現(xiàn)情感詞匯的情感權(quán)值計(jì)算,最終構(gòu)建情感詞典SentiNet。該方法融合了情感詞的重要度衡量優(yōu)勢(shì)和種子表情符號(hào)集的情感表達(dá)優(yōu)勢(shì),在大量微博語料中實(shí)現(xiàn)了情感詞的權(quán)值計(jì)算?;谖⒉┪谋厩楦蟹治龅膶?shí)驗(yàn)證明了該方法的可行性,構(gòu)建的SentiNet有效。下一步將研究表情符號(hào)和情感詞匯相結(jié)合的種子詞集,分析種子情感集合對(duì)情感詞典構(gòu)建的影響,進(jìn)一步提升SentiNet的規(guī)模和質(zhì)量。