宋 碩, 雷景生
(上海電力學(xué)院 計算機科學(xué)與技術(shù)學(xué)院, 上海 200090)
作為近幾年新興的網(wǎng)絡(luò)社交媒體,微博憑借其便捷性、原創(chuàng)性和草根性的特點,得到了快速發(fā)展,成為了當(dāng)今自媒體時代不可分割的一部分.在電力行業(yè),為了及時獲取用戶對電力行業(yè)熱門事件的態(tài)度并進(jìn)行輿情分析,面向電力領(lǐng)域的微博評論情感分析具有重要意義.目前,在輿情方面的研究主要集中在商品評論[1]、電影評論[2]等非電力領(lǐng)域.而且相關(guān)情感詞典[3]、情感計算[4]的研究也在不斷深入,但針對電力領(lǐng)域微博評論的研究相對較少.有學(xué)者采用最大熵[5]、多項式貝葉斯分類模型[6]等方法對短文本情感進(jìn)行分析,或基于話題聚類及情感強度對中文微博輿情進(jìn)行分析[7],但這些方法都無法原封不動地照搬到電力領(lǐng)域.因此,本文面向電力領(lǐng)域微博,生成評論結(jié)構(gòu)關(guān)系樹,結(jié)合擴(kuò)展情感詞典和支持向量機方法對電力微博評論進(jìn)行分析.
一般的微博評論都存在文本長度短小、語言隨意等特點[8],這些特點在電力微博評論中也普遍存在,此外,電力微博評論還具有以下特點.
(1) 省略事件 電力微博中的評論主要是針對電力事件的評論,這些事件均存在于主帖或其他跟帖中,所以評論中對這些事件經(jīng)常采用省略或指代的形式,甚至不被提及.
(2) 時效性短 微博話題的發(fā)展通常有初始、成長、繁榮(爆發(fā))和遞減4個階段[9].電力領(lǐng)域話題通常時效性較短.
(3) 專業(yè)性強 電力微博的文本和評論中通常含有大量專業(yè)詞匯,這些詞匯通常是不包含情感因素的客觀詞匯,但傳統(tǒng)情感分析中經(jīng)常會誤判這些詞匯.例如,“阻抗”“阻值”“阻尼振蕩”都是含有“阻”字的客觀詞匯,但傳統(tǒng)方法均會將這些詞拆分并將“阻”字歸為消極詞匯.
在評論關(guān)系上,假設(shè)Cx是某用戶對電力微博文本T進(jìn)行的評論,文本與評論的關(guān)系記作(T,Cx),則評論之間的關(guān)系有以下3種.
(1)Cy的評論針對對象為Cx,Cy是Cx的子評論,記作
(2)Cy的評論針對對象為T,Cy和Cx在顯示上鄰接,在內(nèi)容上相互關(guān)聯(lián),記作[Cy,Cx].為明顯表示出二者的鄰接關(guān)系,以[Cx,Cx+1]代替.在實際應(yīng)用中,這種關(guān)系往往存在于多個評論中,Cx之后的多個評論組成一個有效的文本(網(wǎng)絡(luò)上稱之為“蓋樓”),此處將這種關(guān)系記作[Cx,Cx+1,Cx+2,…,Cx+L-1],其中L為樓層鏈的長度.如Cx為“深圳供電主網(wǎng)建設(shè)投資16.76億元”,Cx+1為“16.76億元用于40個重點項目建設(shè)”.
(3)Cy的評論針對對象為T,但二者并不存在[Cy,Cx]的關(guān)系,則認(rèn)為二者包含間接關(guān)系,不進(jìn)行考慮.
綜上所述,電力領(lǐng)域微博評論的結(jié)構(gòu)關(guān)系如圖1所示.
圖1 電力領(lǐng)域微博評論結(jié)構(gòu)關(guān)系
文本情感分析也稱意見挖掘,它使用自然語言處理、文本挖掘和計算機方法來提取文本中的主觀意見,旨在識別自然語言中所表達(dá)觀點的極性和強度[10].按照顆粒度劃分,其主要任務(wù)可分為詞語級、短語級和篇章級情感分析[11].情感屬性分為積極、消極、客觀3類,積極的情感特征包括肯定、主動、踴躍、樂觀,正面屬性大于負(fù)面屬性的情感也被歸為積極一類;消極的情感特征包括否定、悲觀、失望、消沉,負(fù)面屬性大于正面屬性的情感也被歸為消極一類.
假設(shè)電力微博文本T包括n個主題,UT表示這n個主題的集合;評論Cx包括m個主題,Ux表示這m個主題的集合,Txy表示Ux中第y個主題,Pxy為Txy對應(yīng)的情感傾向,ωxy為Txy對應(yīng)的權(quán)重,則Cx的情感傾向為:
(1)
假設(shè)Cxs是Cx的子評論,Cxs包括k個主題,Uk表示這k個主題的集合;?Tk∈Uk,當(dāng)Tk∈Ux且Tk?UT,則出現(xiàn)主題漂移.
1.3.1 特征標(biāo)注與特征選擇
特征抽取的方法有很多,常用的有細(xì)粒度情感特征抽取方法[12]和標(biāo)簽特征提取算法[13].特征權(quán)重決定該特征在文本分類中的重要程度,目前大多采用統(tǒng)計量來賦予權(quán)重,常用的方法為布爾權(quán)重和TF-IDF,由于電力領(lǐng)域擁有較強的專業(yè)性,本文選擇絕對詞頻來計算特征權(quán)重.
1.3.2 情感分類
常用的分類算法有很多,其中支持向量機(Support Vector Machine,SVM)[14]的最大特點是根據(jù)結(jié)構(gòu)風(fēng)險最小化準(zhǔn)則,以最大化分類間隔構(gòu)造最優(yōu)分類超平面來提高學(xué)習(xí)機的泛化能力,它可以較好地解決電力評論高維數(shù)、非線性、專業(yè)性強等問題.對于情感分類問題,支持向量機算法可以根據(jù)電力評論區(qū)域中的電力專有詞匯計算該區(qū)域的決策曲面,確定該區(qū)域中專業(yè)詞匯的類別,因此支持向量機算法適用于電力領(lǐng)域.本文設(shè)計了“積極分類器”和“消級分類器”兩個判別器,當(dāng)兩個分類器判定結(jié)果都為“否”,則將該特征歸為“客觀”;當(dāng)兩個分類器判定結(jié)果都為“是”,則在之后的擴(kuò)展詞典中作進(jìn)一步處理.
面向電力領(lǐng)域微博評論的情感分析流程如圖2所示.
圖2 電力領(lǐng)域微博評論情感分析流程
具體過程如下:利用url,從網(wǎng)絡(luò)中利用網(wǎng)絡(luò)爬蟲技術(shù)抓取電力行業(yè)文本、評論等信息;文本分詞、文本詞語的詞性篩選以及詞語的權(quán)重計算;文本聚類,提取出熱點話題及關(guān)鍵詞;根據(jù)關(guān)鍵詞將相同話題、相關(guān)評論轉(zhuǎn)發(fā)、點贊等信息匯總;對匯總后的數(shù)據(jù)進(jìn)行符號表情處理,構(gòu)造如圖1所示的結(jié)構(gòu)關(guān)系樹;使用擴(kuò)展情感詞典的方法動態(tài)擴(kuò)展情感詞典,使用支持向量機的方法設(shè)計情感極性分類器.
2.1.1 符號表情處理
微博評論文本中的符號表情十分常見,當(dāng)文本中出現(xiàn)超過閾值個數(shù)v的非中文符號時(電力領(lǐng)域文本閾值v=5),我們將這段文本定義為“符號表情”,此時根據(jù)“搜狗輸入法”提供的符號表情庫[15],將其導(dǎo)入“符號表情庫”,在處理過程中將其處理為相應(yīng)的中文含義.如“O(∩_∩)O”替換為“哈哈”,“(°?ˇ^ˇ?°)”替換為“不高興”.如果文本中出現(xiàn)的符號表情并未在搜狗輸入法提供的符號表情中出現(xiàn),則選擇相似度最高的符號表情進(jìn)行替換.如“(╯‵□′)╯︵ ┻┻”和“(╯‵□′)╯︵ ┻━┻”的相似度為0.909,也可以替換為“掀桌”,并收錄到符號表情庫.符號表情近似度公式為:
(2)
式中:e1,e2——要比較的兩個符號表情;
l1,l2——兩個符號表情的字符長度;
D(e1,e2)——e1和e2之間的編輯距離.
2.1.2 編碼切換
當(dāng)出現(xiàn)繁體字、“火星文”等非簡體編碼時,本文使用EditPlus編輯器將其他編碼統(tǒng)一轉(zhuǎn)換為GB2312編碼.
2.1.3 文本分詞和詞性篩選
本文使用NLPIR漢語分詞系統(tǒng)(又名ICTCLAS2013)進(jìn)行文本分詞和詞性篩選,NLPIR包括中文分詞、詞性標(biāo)注、命名實體識別、用戶詞典等功能,支持多種編碼[16].
2.2.1 評論關(guān)系
在
在[Cx,Cx+1,Cx+2,…,Cx+L-1]中,L個樓層共同傾向于一種觀點,可以進(jìn)行整體分析.如某微博觀點是“電力行業(yè)將退出歷史舞臺”,1樓評論為“小編胡言亂語”,2樓評論為“小編信口雌黃”,3樓評論為“小編顛倒是非”,這3個觀點作為整體在反對主題觀點.判斷評論間是否存在依存關(guān)系比較難,這里我們根據(jù)固定句式和正則表達(dá)式來判斷,一般“蓋樓”都有相同字?jǐn)?shù)、相同韻律的固定句式,蓋樓的評論多數(shù)為相互調(diào)侃、相互取樂.
2.2.2 生成評論關(guān)系樹
評論關(guān)系樹的根節(jié)點為微博新聞,按時間順序?qū)⑺性u論依次提取,先判斷
圖3 樹的節(jié)點數(shù)據(jù)結(jié)構(gòu)
圖3中,Text為文本域;Parent為父節(jié)點;Child為子節(jié)點;Upstairs為[Cx,Cx+1,Cx+2,…,Cx+L-1]關(guān)系中的上一樓層(1樓Upstairs為空);Emotional為該節(jié)點的情感極性.
生成評論關(guān)系樹算法為:
root←T;//評論關(guān)系樹的根節(jié)點為微博新聞
root->text←T->text;
for(Cxin Uc)
currentNode←Cx;
currentNode->text←Cx->text;
if(< Cx,Cy> is existed)//父子關(guān)系存在
currentNode->parentld4←Cy;
Cy->childList.add(currentNode);
end if;
if([Cx-1,Cx] is existed)//樓層鏈關(guān)系存在
currentNode->prefLev←Cx-1;
end if;
if(currentNode->parentld is null)
currentNode->parentld←root;
root->childList.add(currentNode);
end if;
end for.
2.2.3 判別子評論關(guān)系
假設(shè)積極屬性為P,消極為N,客觀為O.在
Cx->T∈P,
Cxs->Cx∈P→Cxs->T∈P;
Cx->T∈P,
Cxs->Cx∈N→Cxs->T∈N;
Cx->T∈P,
Cxs->Cx∈O→Cxs->T∈P;
Cx->T∈O,
Cxs->Cx∈P|N|O→Cxs->T∈O;
Cx->T∈N,
Cxs->Cx∈P→Cxs->T∈N;
Cx->T∈N,
Cxs->Cx∈N→Cxs->T∈P;
Cx->T∈N,
Cxs->Cx∈O→Cxs->T∈N
(3)
式中:Cx->T——Cx基于T的情感傾向;
Cxs->Cx——Cxs基于Cx的情感傾向;
→——推導(dǎo)出的結(jié)果.
2.2.4 判別公式的影響
判別子評論關(guān)系的公式由Cx->T∈P|N|O,Cxs->Cx∈P|N|O和判別結(jié)果3部分構(gòu)成.假設(shè)Cx->T∈P|N|O或Cxs->Cx∈P|N|O中存在錯誤,則推導(dǎo)結(jié)果也會出現(xiàn)錯誤.錯誤主要分為以下3類:Cxs->Cx所屬情感傾向錯誤;Cx->T所屬情感傾向錯誤;Cx->T,Cxs->Cx所屬情感傾向均錯誤.其中,第3類發(fā)生的可能性極低,不進(jìn)行考慮,前2類則可用公式表示為:
Cx->T∈S,
Cxs->Cx?S→Cxs->T?S;
Cx->T?S,
Cxs->Cx∈S→Cxs->T?S
(4)
式中:S——所屬情感的正確情感傾向.
在第1類錯誤中,推導(dǎo)結(jié)果出現(xiàn)錯誤的情況為Cx->T∈P∧Cxs->Cx∈N,或者Cx->T∈N∧Cxs->Cx∈P.為了避免這種錯誤的發(fā)生,應(yīng)該謹(jǐn)慎選擇情感極性逆轉(zhuǎn)的判別.
在第2類錯誤中,一旦Cx->T?S,則所有情況都會發(fā)生錯誤.為了避免這種錯誤的發(fā)生,應(yīng)該適當(dāng)調(diào)節(jié)情感值判斷的閾值下界v到上界v′來控制情感傾向錯誤劃分,并將式(3)中的第4條優(yōu)化為:
Cx->T∈O,Cxs->Cx∈P,
v≤Px≤v′→Cxs->T∈P;
Cx->T∈O,Cxs->Cx∈P,
-v′≤Px≤-v→Cxs->T∈P;
Cx->T∈O,other→Cxs->T∈O
(5)
這種方法可以在一定程度上彌補將Cx->T∈P或者Cx->T∈N錯誤判別為Cx->T∈O后造成的判別錯誤.
由于電力微博評論目前并不普及,評論主要以數(shù)據(jù)稀疏的短文本為主,主題獲取難度較其他領(lǐng)域來說更困難,因此考慮使用因子來代替主題,而因子就是情感極性的詞匯.將因子代入式(1),則有:
(6)
式中:Wxy——Cx中的因子;
Pxy——Txy對應(yīng)的情感傾向;
ωxy——Txy對應(yīng)的權(quán)重.
此處采用的是詞頻計算的方法.
計算情感極性采用分段式函數(shù),即:
(7)
這里采用NTUSD進(jìn)行構(gòu)建,該數(shù)據(jù)庫是基于文本情感二元劃分方法的一個中文詞語數(shù)據(jù)庫,它將詞語分為積極屬性詞語和消極屬性詞語.在NTUSD的基礎(chǔ)上,根據(jù)電力領(lǐng)域特性添加自定義極性詞匯,擴(kuò)展情感詞典[17],電力領(lǐng)域的話題影響極大,自定義詞匯效果十分明顯.
根據(jù)Px的情感值來判斷Cx的情感傾向,即:
(8)
在電力評論中,含有情感極性的詞匯一般為形容詞和動詞,通過文件頻率方法判別出積極和消極詞匯以及這些詞匯附近的形容詞,將所有的詞通過人工識別的方法選定為特征項,作為向量空間的維,其權(quán)重為特征項的詞頻.
使用積極分類器和消級分類器兩個判別器,將“積極”屬性標(biāo)記為正,“消極”屬性標(biāo)記為負(fù),兩個分類器把電力評論劃分到?jīng)Q策平面的兩側(cè).利用訓(xùn)練樣本進(jìn)行訓(xùn)練,采用式(8)對實驗進(jìn)行判別.
實驗數(shù)據(jù)來源于新浪微博,利用網(wǎng)絡(luò)爬蟲技術(shù)抓取相關(guān)電力行業(yè)文本,按圖2所示的電力領(lǐng)域微博評論情感分析流程進(jìn)行處理.以“江西豐城發(fā)電廠坍塌事故”為例,實驗提取“江西電廠事故”“江西電廠坍塌”等相同話題,時間截取范圍為江西豐城發(fā)電廠坍塌事故發(fā)生后,并將得到的結(jié)果去重去空,最后得到該新聞超過90萬微博用戶的參與,評論超過9萬條,截止2017年5月1日,總評論數(shù)為91 352條.
提取評論中出現(xiàn)的高頻詞匯,如表1所示.
表1 “江西豐城發(fā)電廠坍塌事故”高頻詞匯
選取高頻詞匯中含有情感傾向的詞匯加入情感詞典中,擴(kuò)展NTUSD.由于這些評論受電力領(lǐng)域話題影響極大,目前也沒有標(biāo)準(zhǔn)的語料庫,于是隨機選擇1 500條評論,對其情感極性進(jìn)行人工標(biāo)注.
根據(jù)實際應(yīng)用經(jīng)驗取值,式(5)中,v=0.76,v′=0.79;在式(7)中,θ=1;在式(8)中,v=0.76.對1 500個數(shù)據(jù)進(jìn)行基于擴(kuò)展情感詞典的實驗,結(jié)果如表2所示.
表2中,A為包含評論關(guān)系的數(shù)據(jù)量;An為不包含評論關(guān)系的數(shù)據(jù)量;Aman為人工標(biāo)注的數(shù)據(jù);E為包含評論關(guān)系的數(shù)據(jù)實驗結(jié)果與人工標(biāo)注的差距;En為不包含評論關(guān)系的數(shù)據(jù)實驗結(jié)果與人工標(biāo)注的差距.E和En的計算公式為:
(9)
由表2可知,E和En的平均差距分別為0.070和0.329.
表2 基于擴(kuò)展情感詞典的實驗結(jié)果
從1 500個數(shù)據(jù)中隨機抽取900個作為訓(xùn)練集,其余作為測試集.同樣方法,在式(5)中,v=0.76,v′=0.79;在式(7)中,θ=1;在式(8)中,v=0.76.對訓(xùn)練集以外剩余的600個數(shù)據(jù)進(jìn)行基于支持向量機的實驗,結(jié)果如表3所示.
表3 基于支持向量機的實驗結(jié)果
由表3可知,E和En的平均差距分別為0.112和0.182.
此外,根據(jù)實驗可知,其他不考慮評論關(guān)系的算法在情感判定(參考參數(shù)是積極、消極、客觀)方面與傳統(tǒng)算法差別不大.
(1) 根據(jù)E和En的數(shù)值比較可以得出,使用擴(kuò)展情感詞典和支持向量機這兩種方法來進(jìn)行電力微博情感極性分析,都可以提高分析的準(zhǔn)確率.
(2) 基于擴(kuò)展情感詞典實驗中的E小于基于支持向量機實驗中的E,而基于擴(kuò)展情感詞典實驗中的En大于基于支持向量機實驗中的En,說明擴(kuò)展情感詞典的方法能更好地提高準(zhǔn)確性.究其原因可能是:擴(kuò)展情感詞典的方法更適用于專業(yè)詞匯出現(xiàn)較為頻繁的電力領(lǐng)域;支持向量機方法本身已經(jīng)足夠準(zhǔn)確,進(jìn)步空間小;支持向量機方法實驗數(shù)據(jù)基數(shù)小,容易造成實驗結(jié)果不準(zhǔn)確,偏差較大;基于支持向量機實驗中的訓(xùn)練集是隨機選取的,容易破壞評論間的結(jié)構(gòu)關(guān)系.
(3) 從新聞報道中可以知道,民眾對“江西豐城發(fā)電廠坍塌事故”的主流情緒是憤怒和悲傷.統(tǒng)計后發(fā)現(xiàn),網(wǎng)民在微博評論中的情緒宣泄主要是針對電廠的管理層和相關(guān)社會機構(gòu)負(fù)責(zé)人,認(rèn)為管理層存在掩蓋事實、推卸責(zé)任的行為,所以大部分評論是針對管理者的消極評價,僅有一小部分人相信管理者可以處理好善后工作.在微博中出現(xiàn)這種消極大于積極的網(wǎng)絡(luò)輿情傾向與本試驗結(jié)果一致.
本文面向電力領(lǐng)域微博情感分析,根據(jù)電力行業(yè)的特性,將評論進(jìn)行預(yù)處理后,建立評論關(guān)系樹,使用基于擴(kuò)展情感詞典的方法進(jìn)行動態(tài)擴(kuò)展,采用基于支持向量機的方法設(shè)計情感極性分類器,建立情感極性判別規(guī)則,來進(jìn)行情感極性分析.實驗結(jié)果表明,生成評論關(guān)系樹后,擴(kuò)展情感詞典和支持向量機兩種方法在電力領(lǐng)域的正確率均得到了明顯的提升.
下一步的工作將著重于如何在電力領(lǐng)域微博評論中選取特征項以及怎樣解決消除數(shù)據(jù)稀疏后產(chǎn)生的分析困難,并針對電力領(lǐng)域常見的歧義詞匯在不同語義中進(jìn)行消解處理.
[1] 李涵昱,錢力,周鵬飛.面向商品評論文本的情感分析與挖掘[J].情報科學(xué),2017(1):51-55.
[2] ANAND D,NAOREM D.Semi-supervised aspect based sentiment analysis for movies using review filtering[J].Procedia Computer Science,2016,84:86-93.
[3] RAO Y H,LEI J S,LIU W Y,etal.Building emotional dictionary for sentiment analysis of online news[J].World Wide Web,2014,17(4):723-742.
[4] PERIKOS I,HATZILYGEROUDIS I.Recognizing emotions in text using ensemble of classifiers[J].Engineering Applications of Artificial Intelligence,2016,51(c):191-201.
[5] 黃文明,孫艷秋.基于最大熵的中文短文本情感分析[J].計算機工程與設(shè)計,2017(1):138-143.
[6] 劉正,黃震華.基于多項式貝葉斯分類模型的短文本多情感傾向分析及實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2016(14):39-42.
[7] 吳青林,周天宏.基于話題聚類及情感強度的中文微博輿情分析[J].情報理論與實踐,2016(1):109-112.
[8] 張劍峰,夏云慶,姚建民.微博文本處理研究綜述[J].中文信息學(xué)報,2012(4):21-27.
[9] MA Y F,DENG Q,WANG X Z,etal.Keyword-based semantic analysis of microblog for public opinion study in online collective behaviors[M].Springer International Publishing,2014:38-46.
[10] 韓忠明,張玉沙,張慧,等.有效的中文微博短文本傾向性分類算法[J].計算機應(yīng)用與軟件,2012(10):89-93.
[11] 杜振雷.面向微博短文本的情感分析研究[D].北京:北京信息科技大學(xué),2013.
[12] 賀飛艷,何炎祥,劉楠,等.面向微博短文本的細(xì)粒度情感特征抽取方法[J].北京大學(xué)學(xué)報(自然科學(xué)版),2014(1):48-54.
[13] XU J H,LIU J L,YIN J,etal.A multi-label feature extraction algorithm via maximizing feature variance and feature-label dependence simultaneously[J].Knowledge-Based Systems,2016(1):172-184.
[14] YU L C,LEE L H,YEH J F,etal.Near-synonym substitution using a discriminative vector space model[J].Knowledge-Based Systems,2016(5):74-84.
[15] 佚名.搜狗輸入法表情符號詞庫[EB/OL].[2013-06-15].http://pinyin.sogou.com/dict/detail/index/36756.
[16] 佚名.NLPIR漢語分詞系統(tǒng)(ICTClAS 2016)[EB/OL].[2017-03-14].http://ictclas.nlpir.org/.
[17] TAN C F.The Chinese microblog emotional tendency analysis based on sentiment dictionary[J].Applied Mechanics and Materials,2013,333-335:795-798.