樊 振,過 弋,2,張振豪,韓美琪
(1.華東理工大學 信息科學與工程學院,上海 200237; 2.石河子大學 信息科學與技術學院,新疆 石河子 832003)(*通信作者電子郵箱guoyi@ecust.edu.cn)
近年來,隨著我國經濟快速發展以及國家對文化產業的大力支持,我國電影市場環境日益改善。2017年上半年,中國內地票房規模為271.2億元,相比2016年上半年總票房規模248.1億元,增長9.3%;同時第二季度,用戶在線購買電影票占比達78.2%,較上一季度有小幅上升,在線電影購票市場滲透率趨于穩定[1]。大量用戶通過電影平臺表達自己對電影的觀點和看法,這些評論中包含著大量用戶對電影及其相關內容的評價,包括演員、劇情、演技、特效等。合理地利用這些用戶評論可以為用戶消費決策、商家營銷規劃、電影制作方內容優化等提供幫助, 因此挖掘用戶評論文本中的情感信息有著重要的價值。
Hu等[2]認為評論的情感極性主要通過評論中的形容詞來判定,提出根據形容詞建立情感詞典,再根據一定的規則來計算評論的情感極性;但是該方法太依賴于情感詞典和規則的質量,需要一定的經驗知識,推廣能力差。Pang等[3]首次提出利用機器學習的方法來進行情感分類,將文本表示成不同的特征組合,并在不同的分類算法下進行對比實驗;但是利用機器學習的方法需要對數據進行標注,這會耗費大量的人力資源和時間。近年來,研究者開始從用戶產生的信息中訓練數據,如用戶評分。Qu等[4]使用用戶評分信息作為標注數據訓練模型來解決文本情感分類問題,但是這部分標注數據具有隨意性,容易產生數據噪聲(如低評分的正面評論)。
針對上述問題,本文提出了基于詞典和弱標注信息的電影評論情感分析方法,利用評論的評分數據和基于情感詞典的情感傾向來標注數據。本文的工作主要有:
1)對知網的中文情感詞典(HowNet)和臺灣大學的簡體中文極性情感詞典(National Taiwan University Simplified Dictionary, NTUSD)整合,并構建符合現有數據的情感詞典。
2)設計基于情感詞典的評論情感計算規則,并對數據自動標注。
3)利用支持向量機(Support Vector Machine, SVM)算法對數據進行情感分類。
目前情感分析研究技術主要分為基于情感詞典的方法和基于機器學習的方法[5]。
基于情感詞典的研究方法主要是根據情感詞庫來匹配計算評論的情感傾向。Liu等[6]在文獻[2]的基礎上考慮了主題詞與情感詞之間的距離對評論情感傾向的影響,距離越遠影響越弱。基于詞典的方法沒有辦法識別文本中隱含的觀點,Zhang等[7]認為基于詞典的方法只能通過顯式的情感詞提取觀點。此外,本文還常常出現上下半句情感傾向出現轉折、同一情感詞在不同環境下極性不一樣的情況。
基于機器學習的研究方法主要是將評論情感分析轉化為一個分類問題。目前主流方向是二分類問題,即將評論分成正面情感和負面情感。通過人工設計代表評論文本的特征,然后抽取評論特征并表示成文本向量,即可對文本進行分類。Pang等[3]首先提出使用機器學習的方法來解決情感分類問題,該工作選取了Unigrams、bigrams、POS(Part of Speech)等特征進行不同組合并在分類算法樸素貝葉斯(Naive Bayes, NB)、支持向量機(SVM)和最大熵模型下進行實驗。在使用Unigrams特征的情況下,SVM的效果最好。李婷婷等[8]在前人工作基礎上提出使用詞性、情感詞、否定詞、程度副詞來構建特征,并選用不同的特征組合進行多組實驗。實驗結果顯示選用詞性、否定詞和情感詞組合時,SVM效果最好;而使用情感詞、程度副詞、否定詞和特殊符號組合時,條件隨機場(Conditional Random Field, CRF)模型效果最好。
基于機器學習的方法需要人工去標注數據集,花費大量人力資源:Qu等[4]曾嘗試使用包含用戶評分信息的評論數據作為弱標注信息對模型進行訓練,最終對評論進行情感分析;Tang等[9]使用評論中的表情符號作為標簽值來訓練模型,從而對文本進行情感分類。但是這類方法的標注具有較大隨意性,容易對數據產生噪聲。
從豆瓣電影采集的評論數據包含兩部分內容,用戶評論和用戶評分。在對數據整理后發現,部分數據中用戶評分缺失,所以先要將這部分數據過濾。在對數據進行情感分析之前,先要對評論數據分詞和詞性標注,本文選取結巴分詞作為自然語言處理工具完成數據預處理工作。
目前,中文領域使用較多的情感詞典包括知網提供的HowNet和臺灣大學的NTUSD。HowNet包含情感詞語和評價詞語兩個部分,其中情感詞語中含有836個中文正面情感詞和1 254個中文負面情感詞語,評價詞語中含有3 730個中文正面評價詞語和3 116個中文負面評價詞語。NTUSD包含2 810 個正面情感詞語和8 276個負面情感詞語。將這三部分詞典去重后得到新的情感詞典構成基礎詞典,正向情感詞極性為1,負向情感詞極性為-1。
但是在文本評論中,存在基礎詞典未包括的情感詞也有情感傾向。比如“這電影好搞笑啊”,搞笑就是積極情緒的詞,因此,只靠基礎詞典來識別電影評論的情感詞是不夠的,特定的領域還需要領域詞典,本文通過互信息(Point-wise Mutual Information, PMI)來構建領域情感詞典[10],PMI可以計算詞語之間的相似度。計算兩個詞w1和w2的PMI公式:
(1)
其中:p(w1,w2)表示詞w1和詞w2一起出現的概率,p(w1)表示詞w1出現的概率,p(w2)表示詞w2出現的概率。在使用過程中,w1是語料中切分出來的情感詞,w2是核心情感詞,通過PMI來計算兩個詞相似度:如果相似度高則認為兩個詞情感極性相同; 反之亦然。
核心情感詞的詞性必須非常明確,比如積極詞有“好”,消極詞有“爛”,但是單個核心情感詞在PMI計算時容易造成較大的誤差,因此本文進行多詞考察。本文通過統計基礎情感詞在評論文本里的詞頻,挑選出最高的正、負核心情感詞各30個。
在計算了新詞和正負核心情感詞之間PMI之后,就可以得到新詞的情感傾向,其計算公式[11]為:
(2)

一條評論中的否定詞往往會改變評論的情感極性,因此本文整理了一些常用的否定詞用來判定評論情感極性。常用否定詞包括:不、沒、無、非、未、否、勿、不是、并非、沒有、絕不。
程度副詞可以改變情感詞的情感強度,如“我非常喜歡”,非常就是程度副詞,增加了喜歡的強度。本文使用的是HowNet里的程度副詞表,該表包含219個程度級別詞語。按照級別不同,分為6個類別,分別是“極其/最” “很” “較” “稍” “欠” “超”。本文按照其語氣強度不同分別賦予不同權值,如表1。

表1 程度副詞及其權值
本文提出基于詞典和弱標注信息相結合的機器學習方法來對電影評論進行情感分析,在用戶評分的基礎上,通過領域詞典對評論進行情感傾向分類,挑選出評分和分類結果情感一致的訓練數據進行模型訓練。圖1顯示了本文方法的整體流程。
在數據標注部分,本文首先對采集數據進行過濾、分詞及詞性標注等預處理;然后利用基礎詞典在語料中提取出核心情感詞,進而構建領域情感詞典;接著利用基于詞典的情感分類和用戶評分相結合的方式對數據進行標注。在SVM模型訓練部分,先對評論數據提取特征,然后對訓練數據訓練模型,最后利用訓練好的模型對測試數據進行情感分類。

圖1 系統整體流程
目前,基于機器學習的文本情感分類問題主要是有監督的分類問題,需要人工去標注數據,但是標注數據會花費大量人力資源。本文采集的數據中包含著用戶評分,可以根據用戶評分簡單來標注數據,但是用戶打分具有隨意性,容易對數據產生噪聲(用戶評分與評論情感不一致),這種標注稱為弱標注信息[12],因此本文采用詞典和弱標注信息相結合的方法對電影評論數據進行情感分析。
對于單條評論,本文先對它進行分詞和詞性標注處理,然后根據前文構建的領域情感詞典查找評論中的情感詞。若找到情感詞,標記該情感詞位置,然后向前查找修飾該情感詞的否定詞和程度副詞,這樣,每個情感詞及其相關的否定詞和程度副詞稱之為情感詞類。其情感分析算法描述如下:
機房當中的監控設備能夠在一定程度上防止其事故的發生,還能夠在某種層面上讓電網自動化技術得到充分的運用。因此,為了能夠讓供電企業更好地安全運行,就必須要增加監控設備技術的使用,要將那些技術落后的,設備性能較差的全部淘汰掉,要將先進設備技術進行完善、安裝。對不同的監控設備進行不同的安裝方式,要在后期對其進行定期或者不定期的日常維護,與此同時,還需要將那些出現故障的設備,進行問題的分析,要找到出現問題的原因,如果是人工導致的,那么就會追究其責任,對工作人員進行處罰,讓其能夠更深地認識到供電設備維護的重要性,從而去實現供電的安全穩定性的提升,促進經濟可持續發展[3]。
1)評論預處理,包括分詞和詞性標注
2)While 情感詞 do
尋找修飾情感詞的否定詞、程度副詞,計算情感詞類情感值
3)計算評論情感值,情感值大于等于0,評論情感傾向標記為1,否則標記為-1
每個情感詞類的情感值計算公式為:
s(w)=n(w)×d(w)×p(w)×l(w)
(3)
其中:s(w)表示情感詞類w的情感極性;n(w)表示否定詞的情感權重。一個否定詞表示情感反轉,但是雙重否定情感就沒變化,當否定詞個數為奇數時,n(w)為-1,為偶數時,n(w)為1,其計算如式(4):

(4)
其中count(neg)表示否定詞個數。d(w)表示修飾情感詞的多個程度副詞權值累加和,其計算如式(5):
(5)
p(w)表示情感詞的極性,正面情感詞為1,負面情感詞為-1;l(w)表示否定詞和程度副詞的相對位置,它們之間位置不同,情感也不一樣,比如評論“這部電影很不好看”和“這部電影不很好看”,表達情感完全不同;當否定詞在程度副詞前面時,l(w)設置為0.5,反之l(w)設置為-1,其計算如式(6):

(6)
其中:loc(neg)表示情感詞類中否定詞的位置,loc(dg)表示情感詞類中程度副詞的位置,“<”表示相對位置在前,“>”表示相對位置在后。
單條評論由多個情感詞類組成,因此單條評論的情感極性計算如式(7):

(7)
其中:r表示單條評論中所有的情感詞類,sen(r)表示單條評論的情感極性。利用式(7),本文可以計算得到每條評論基于詞典的情感值,sen(r)≥0表示評論正面情感,反之為負面情感。
用戶評分中,評論情感值分為1、2、3、4、5一共5個等級,本文設定用戶評分大于等于3為正面情感,小于3為負面情感。最后,本文挑選出二者情感傾向一致的數據作為訓練數據。
基于機器學習的情感分析的核心就是特征選擇,它關系著情感分類的準確度。目前常見的特征選擇有:一元詞(unigram)特征、二元詞(bigram)特征、三元詞(trigram)特征、詞頻、詞性、情感詞等[8]。其中一元詞特征、二元詞特征、三元詞特征的特征維度與語料量有關,當語料很大時,特征維度會達到千維級別,很難處理;詞頻可以反映一個詞語的重要性,但是并不是所有的詞都與文本情感相關,引入詞頻會導致數據產生噪聲。本文選擇詞性、程度副詞、否定詞、正面情感詞以及負面情感詞這五個特征維度,其中一個文本是由多個詞及其詞性構成的,詞性在其中起很大作用;情感詞是一個文本情感分類的關鍵核心,而否定詞通常會使一個文本的情感極性發生反轉;與此同時,程度副詞能改變情感詞的強度,當一個文本中既出現正面情感詞又出現負面情感詞時,如果只依靠情感詞的極性,是很難判斷文本的情感傾向的,而程度副詞可以幫助抉擇。比如說評論“電影很不錯,就是情節有點拖。”中,“很”比“有點”程度強,可以判斷評論情感傾向為正面。
在選擇文本特征時,對于每個維度具體含義如表2。

表2 特征維度含義
以評論“電影非常好,但不喜歡女主角”為例提取特征,首先采用結巴分詞進行分詞和詞性標注,得到結果如下:
電影/n 非常/d 好/a ,/x 但/c 不/d 喜歡/v 女主角/n
其中:n表示名詞,d表示副詞,c表示連詞,a表示形容詞,v表示動詞。從上可知,詞性個數為5,正面情感詞個數為1,負面情感詞個數為0,否定詞個數為1,程度副詞權值為2。
SVM是近幾年發展起來的新型分類方法,主要解決文本分類問題[11]。SVM的原理是通過將一個樣本通過某種映射關系映射到高維空間或者是無窮維特征空間,使原來在樣本空間中非線性化可分的問題轉化為在特征空間中線性可分的問題[14]。目前應用最為廣泛的SVM分類器主要有LibSVM和SVMLight兩種[15],本文采用臺灣大學林智仁教授開發的LibSVM進行分類測試。
本文利用爬蟲工具Pyspider在豆瓣電影平臺上抓取了關于電影《捉妖記》《戰狼2》的用戶評論及評分,在經過去重、過濾后,分別剩下23 605,23 415條數據作為實驗數據。由于本文使用的是基于情感詞典的方法和用戶評分情感傾向相結合來標注數據,因此不需要人工標注數據。
將數據隨機分成5組,然后每次取4組數據作為訓練數據,剩下1組數據作為測試數據進行交叉實驗,最后將每次測試結果累加在一起作為最終測試結果。每組數據基于詞典和用戶評分相結合標注的情況如表3所示(表中第一個字母P表示基于詞典的計算結果為正面情感,N表示為負面情感;第二個字母P表示用戶評分情感傾向為正面情感,N表示負面情感)。

表3 數據分組以及標注結果
在每次交叉實驗中,取4組數據為訓練數據,其中每組數據只取標記為P_P和N_N的數據;取1組數據為測試組數,包含該組所有數據。
本文使用的分類器是LibSVM,為了避免不同的參數對分類效果產生影響,本文利用LibSVM的工具包grid.py通過交叉驗證的方法求最優核函數的參數c和gamma。表4列出了不同數據集的最優參數c和gamma以及交叉驗證的準確率rate,rate最大值對應的c和gamma即是最優參數。

表4 LiSVM最優參數
為了評價最終的分類效果,本文采用分類準確率(Accuracy),即文本分類正確數占文本總數的比例,作為評價指標,其公式為:
(8)
其中:ncorrect表示文本分類正確數,nall表示本文總數。
本文在兩種不同類型電影數據集上分別進行了三組對比實驗,分別為:
1)Lexicon。 基于詞典的方法。
2)WT。 使用弱標注信息作為數據的標注,并在SVM分類器上進行情感分類。
3)WT+Lexicon。 使用基于詞典的方法和弱標注信息標注數據,并在SVM分類器上進行情感分類。
最終實驗結果如表5所示。

表5 3種方法分類準確率對比
從表5可以看出,基于機器學習的方法在準確率上比基于詞典的方法高,準確率分別達到了75.5%和75.7%,而本文方法在準確率上分別達到了77.2%和77.8%,相比單一基于弱標注信息的機器學習方法,分別提高了1.7個百分點和2.1個百分點,證明了本文算法的有效性,本文方法也更加適合于評論文本的情感分析。本文方法與基于機器學習的方法相比,在數據訓練部分,利用基于情感詞典的分類方法和用戶評分相結合的方式去除了部分數據噪聲,使得模型訓練更加準確,因此本文方法在準確率上才會提高。
同時,從三類實驗的結果看,三種方法的準確率都有待提高。考慮到基于詞典的方法是基于詞典和規則的算法,同時也對分詞工具有一定的要求,因此要提高基于詞典的方法的準確率就需要分詞工具能準確分出評論的詞語和詞性,其次要擴充現有的詞典以滿足現在的互聯網評論語句,最后應設定更加合理的情感匹配規則。而本文方法與特征選擇和標注信息相關,要提高準確率就需要在特征選取方面加以改進;在不考慮人工標注的情況下,本文方法是有一定的適用性的。
本文提出了一種基于詞典和弱標注信息相結合的文本情感分析方法,實驗準確率相比傳統的基于詞典的方法和基于弱標注信息的機器學習方法有了一定的提升,在不同類型的電影數據集上準確率分別達到了77.2%和77.8%,分別提升了1.7個百分點和2.1個百分點,驗證了本文方法的有效性。評論語料的初始預處理到進一步的特征選擇都會影響最終的分類結果,因此本文方法在分詞工具選擇和特征選擇方面可以進一步對比和優化,選擇最適合本領域的分詞工具和特征組合。