賀海玉
(大眾報業集團信息技術部,山東濟南 250014)
截至2022 年6 月(《中國互聯網絡發展狀況統計報告》第50 次統計),中國網絡新聞用戶規模達10.51億,較2021 年12 月增長1 919 萬,互聯網普及率達74.7%[1]。同時伴隨著“互聯網+”和大數據技術的迅猛發展,促使各種網絡社交平臺快速崛起,大多數網民在網絡社交平臺上瀏覽新聞的同時,通過發表網絡評論來表達個人的意見看法和情感表達,這些由網民發表的評論通常都包含著許多個人情感信息、立場傾向。尤其是一些網民發布虛假消息,以訛傳訛、混淆是非真相,更會擾亂社會穩定,損害政府公信力。因此對網民評論信息進行收集并加以分析,可以初步了解網民對社會熱點事件的觀點和看法,從而進一步準確把握網絡輿情的走向[2]。
情感分析(又稱觀點挖掘)是指以提取、分析、處理、歸納、推理文本中的主觀信息(如觀點、情感、態度、評價、情緒等)[3]為主要任務,運用自然語言處理、文本挖掘、計算機語言學等手段來識別和提取文本中原有的主觀信息。目前網絡評論情感分析主要有以下幾種方法:基于情感詞典的情感分析、基于機器學習的情感分析和基于深度學習的情感分析方法。
基于情感詞典的情感分析主要是利用事先準備好的情感詞庫,對輸入的文字進行去重、分詞等預處理,計算出每個詞對應的情感傾向度的權值,再將所有的情感詞提取出來,根據句子的特點,最終判斷出該段文字的情感偏激程度,從而計算出最終的情感分值。這種方法在情感詞匯覆蓋面高、準確率高的情況下,能夠準確地反映出文本的非結構化特點,易于分析理解,情感歸類效果也相對準確。但這種方法還是有一定的缺點,因為以情感詞典為基礎的情感分類法主要依賴于情感詞典的構建,而現有的情感詞典大多是人工構建的,但由于現階段網絡發展迅猛,信息更新速度加快,導致網絡生詞越來越多,再用原來的情感詞典進行情感分析就會產生辨識不準確的效果。因此,需要不斷地更新和擴充情感辭典,才能滿足情感分析的需求,而采用人工的方式擴充情感辭典需要大量的時間和資源來完成。
基于機器學習的情感分析法是指利用機器學習算法,通過大量有標記或無標記的語料,對特征進行提取,最后再對結果進行情感分析和輸出。以機器學習為基礎的情感分析方法,分為有督導、半督導、無督導三種。在有監督的方法中,不同的情感類別可以分類給定具有情感極性的樣本集。有監督的方法更依賴于數據樣本,花費更多的時間對數據樣本進行人工標記和處理,常見的監督方法有:KNN、SimpleBayes、SVM。在半監督方法中,通過對未標記的文本進行特征提取來有效改善文本情感分類結果,該方法可以有效解決帶有標記的數據集稀缺的問題。無監督學習無須人工標注數據訓練模型是一種降低標注成本的解決方案,但由于完全依賴算法學習的結果,因此往往效果不佳,難以達到實際要求。基于傳統機器學習的情感分類法主要在于情感特征的提取和分類器的組合選擇,不同分類器的組合選擇對情感分析的結果有一定的影響,這種方法往往不能充分利用上下文文本的語境信息,在情感分析文本內容時往往存在忽視上下文語義的問題,所以它的分類準確性受到一定的影響。
基于深度學習的情感分析方法是利用神經網絡進行的,典型的神經網絡學習方法有:卷積神經網絡(CNN)、遞歸神經網絡(RNN)、長、短時間記憶(LSTM)網絡等。通過對基于情感詞典和基于機器學習的情感分析方法的比較,采用深度學習的情感分析方法,在文本特征學習方面具有顯著優勢,可以主動學習特征,主動保留文本中的詞語信息,能更好地提取對應詞語的語義信息,從而有效地實現對文本的情感歸類。但基于深度學習的方法需要大量的數據支持,不適合小規模的數據集,而且算法訓練的時間取決于神經網絡的深度和復雜度,一般需要較長的時間,同時對于研究人員來說,神經網絡的內部結構、理論知識和網絡結構的學習也是一項挑戰[4]。
在大量的網絡社交平臺中,因微博社交平臺因擁有大量用戶、媒體、官微以及各領域大V,可以對某一社會熱點事件表達各種態度和觀點,使之成為網絡輿情的主戰場。有鑒于此,本文通過爬取微博用戶的網絡評論信息,并進行情感分析,可有效把握網民對新聞輿情的全面性傾向,為網絡輿情管理提供幫助,從而更好地了解網民對公共社會事件(如新政策、社會熱點事件)的情感和態度。
網絡評論情感分析流程可分為三個步驟:第一步,通過Python語言編寫爬蟲程序對大量的網絡評論數據進行采集并進行數據預處理;第二步,通過Python 的第三方SnowNLP 庫對收集到的數據進行情感分析,得出相應數值;第三步,對情感分析數值進行加權處理,獲得網絡評論情感的正負面評價,并將評論結果進行可視化呈現[5],如圖1所示。

圖1 微博情感分析流程圖
對微博網絡評論數據的采集是通過編寫網絡爬蟲程序進行的。該網絡爬蟲程序是在Window7 操作系統中,利用Anaconda3集成開發環境,通過Python語言進行開發的。其Python作為一種開源軟件,為編譯爬蟲程序提供了大量的完善的基礎代碼庫以及功能強大的第三方資源庫,使得系統開發更為簡單便捷。在編寫的微博網絡爬蟲程序引入了Python語言的Requests、lxml、BeautifulSoup、jieba、csv、snowNLP 等第三方資源庫。在進行微博評論數據的采集過程中,以“#維護領土完整是14億多中國人民的意志#”這條熱點微博為例進行新聞評論數據的采集。該爬蟲程序首先以要訪問的微博評論頁面URL 為入口,通過Requests庫模擬瀏覽器向微博服務器發送請求獲取微博響應數據;然后通過lxml庫將獲取的響應數據進行數據格式轉換,再經BeautifulSoup 庫進行數據解析和提取,獲得微博的網絡評論數據,包括評論內容,評論時間,評論點贊數,評論回復數以及評論者信息等數據;最后將爬取到的多條網絡評論數據以.csv 格式保存下來,用于后續的情感分析,如圖2所示。

圖2 微博評論數據
一般網絡爬蟲程序采集下來的網絡評論數據,存在較多的臟數據,為了避免數據不夠規范導致結果出錯,需要進行數據清洗、中文分詞、去除停用詞等一系列的數據預處理操作。例如我們初次爬取下來的微博評論數據就存在較多的干擾信息,如重復冗余評論,帶有HTML標簽和帶有emotion(表情)的評論以及空格等。對帶有HTML 標簽和表情的評論以及空格可使用Python 正則表達式的方法re.sub() 匹配去除,通過正則表達式查找到匹配的內容并將其替換成空字符串。對重復冗余的文本數據則是使用drop_duplicates()方法將網絡評論數據中重復的部分過濾掉,從而起到去除無用的、重復的網絡評論目的。然后對處理好后的網絡評論數據再進行中文分詞,中文分詞是中文文本挖掘和信息處理的基礎環節,而Python第三方的jieba 分詞庫是當前效果較好的一種中文分詞器,支持中文簡體、中文繁體分詞,同時還支持自定義詞庫,因此使用jieba 分詞庫的cut()方法的精準模式對網絡評論數據進行切句、分詞。經過分詞后的數據還有很多干擾項,在評論數據中還會存在著頻率出現極高一些詞匯,如:“在”“的”“萬一”“?”“!”等,以及一些中文標點符號,這些詞匯本身沒有什么實際意義。因此,我們選用哈工大停用詞表并將其加載到jieba分詞庫的停用詞庫中,將沒有具體意義的詞刪去,為下一步情感分析做好數據準備。
對清洗過的微博評論數據進行情感分析時,主要是通過SonwNLP 庫來實現的。SnowNLP 是一個Python 寫的自然語言處理庫,主要可以實現中文分詞、詞性標注、情感分析、文本分類、轉換拼音、繁體轉簡體、提取文本關鍵詞、提取摘要、分隔句子和文本相似等功能。它是一個可讀性很好的中文文本處理庫,簡單易懂,易于實現。SnowNLP庫不需要NLTK,本身就可以實現所有的算法,并且它自帶語料庫和情感字典,不需要下載大量的情感詞庫和構建各種情感詞庫,有一定的準確率。
SnowNLP情感分析基本原理如下:假設情感分析的分類有正面評價c1和負面評價c2兩類,且每一條評論中有w1,w2,...,wn共n個相互獨立的文本空間,通過樸素貝葉斯公式分別計算出屬于正面評價P(c1|w1,...,wn)和負面評價P(c2|w1,...,wn)的條件概率,其計算公式可表示為:
并根據全概率公式P(B)=P(B|A)P(A) +P(B)|A′)P(A′),可將P(w1,...,wn)可表示為:
進而可將公式轉換為:
該式即為SnowNLP 在情感分析過程中使用的計算算法[6]。
然后通過SnowNLP 庫的sentiment() 方法對文本進行情感分析,就能夠獲取每條評論的對應情感分值(emotion) 和情感傾向類型(tpye,其中pos 為正面,neg為負面),如圖3所示。

圖3 情感分析值
對微博評論數據進行SnowNLP 情感分析得到每條評論數據的情感值,其情感值的范圍在0 到1 之間,當情感值越接近1表示正面情緒,當情感值越接近0表示負面情緒,通過導入Python 的第三方matlibploth繪圖庫繪制情感分析直方圖,如圖4所示。由情感直方圖可見,評論內容兩極分化較為嚴重,在整個評論條數中大約有1100多條評論情感值在[0.8,1]區間內,大約有400多條評論情感值是在[0,0.2]區間內,但從整體來看,對該條微博的整體情感評價還是趨于正面情緒的。

圖4 情感直方圖
同時還可以通過設定正負評價閥值,統計出該條微博中正面評價和負面評價的條目數。通常將正負評論閥值設定為0.5,當評論的情感分析值大于0.5時,則統歸為正面評價,當評論的情感分析值小于0.5時,則統歸為負面評價,最終根據獲得的正負面評論條數繪制正負評價占比圖,如圖5所示。從此圖可以直觀地看到正面評價占比為71.89%,負面評價占比為28.11%,正面評價占比較大,因此可判斷出對該條微博的評論也是趨于正面評論。

圖5 正負評價占比圖
隨著互聯網逐步深入人們的生活,在線評論已經成為廣大網民抒發個人觀點和情感表達的重要途徑,因此對網民的網絡評論進行收集和情感分析研究具有非常重要的意義。本文通過對網絡新聞評論情感分析的研究及實現,基本上能夠準確地對評論進行情感分析,并實現新聞評論的情感可視化,直觀地發現網民情感傾向性的分布和走勢,幫助管理者把握網絡輿情的走向,有助于網絡輿情監控體系的完善,并為大數據下的輿情決策提供了幫助。