賀海玉
(大眾報業(yè)集團信息技術(shù)部,山東濟南 250014)
截至2022 年6 月(《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》第50 次統(tǒng)計),中國網(wǎng)絡(luò)新聞用戶規(guī)模達10.51億,較2021 年12 月增長1 919 萬,互聯(lián)網(wǎng)普及率達74.7%[1]。同時伴隨著“互聯(lián)網(wǎng)+”和大數(shù)據(jù)技術(shù)的迅猛發(fā)展,促使各種網(wǎng)絡(luò)社交平臺快速崛起,大多數(shù)網(wǎng)民在網(wǎng)絡(luò)社交平臺上瀏覽新聞的同時,通過發(fā)表網(wǎng)絡(luò)評論來表達個人的意見看法和情感表達,這些由網(wǎng)民發(fā)表的評論通常都包含著許多個人情感信息、立場傾向。尤其是一些網(wǎng)民發(fā)布虛假消息,以訛傳訛、混淆是非真相,更會擾亂社會穩(wěn)定,損害政府公信力。因此對網(wǎng)民評論信息進行收集并加以分析,可以初步了解網(wǎng)民對社會熱點事件的觀點和看法,從而進一步準(zhǔn)確把握網(wǎng)絡(luò)輿情的走向[2]。
情感分析(又稱觀點挖掘)是指以提取、分析、處理、歸納、推理文本中的主觀信息(如觀點、情感、態(tài)度、評價、情緒等)[3]為主要任務(wù),運用自然語言處理、文本挖掘、計算機語言學(xué)等手段來識別和提取文本中原有的主觀信息。目前網(wǎng)絡(luò)評論情感分析主要有以下幾種方法:基于情感詞典的情感分析、基于機器學(xué)習(xí)的情感分析和基于深度學(xué)習(xí)的情感分析方法。
基于情感詞典的情感分析主要是利用事先準(zhǔn)備好的情感詞庫,對輸入的文字進行去重、分詞等預(yù)處理,計算出每個詞對應(yīng)的情感傾向度的權(quán)值,再將所有的情感詞提取出來,根據(jù)句子的特點,最終判斷出該段文字的情感偏激程度,從而計算出最終的情感分值。這種方法在情感詞匯覆蓋面高、準(zhǔn)確率高的情況下,能夠準(zhǔn)確地反映出文本的非結(jié)構(gòu)化特點,易于分析理解,情感歸類效果也相對準(zhǔn)確。但這種方法還是有一定的缺點,因為以情感詞典為基礎(chǔ)的情感分類法主要依賴于情感詞典的構(gòu)建,而現(xiàn)有的情感詞典大多是人工構(gòu)建的,但由于現(xiàn)階段網(wǎng)絡(luò)發(fā)展迅猛,信息更新速度加快,導(dǎo)致網(wǎng)絡(luò)生詞越來越多,再用原來的情感詞典進行情感分析就會產(chǎn)生辨識不準(zhǔn)確的效果。因此,需要不斷地更新和擴充情感辭典,才能滿足情感分析的需求,而采用人工的方式擴充情感辭典需要大量的時間和資源來完成。
基于機器學(xué)習(xí)的情感分析法是指利用機器學(xué)習(xí)算法,通過大量有標(biāo)記或無標(biāo)記的語料,對特征進行提取,最后再對結(jié)果進行情感分析和輸出。以機器學(xué)習(xí)為基礎(chǔ)的情感分析方法,分為有督導(dǎo)、半督導(dǎo)、無督導(dǎo)三種。在有監(jiān)督的方法中,不同的情感類別可以分類給定具有情感極性的樣本集。有監(jiān)督的方法更依賴于數(shù)據(jù)樣本,花費更多的時間對數(shù)據(jù)樣本進行人工標(biāo)記和處理,常見的監(jiān)督方法有:KNN、SimpleBayes、SVM。在半監(jiān)督方法中,通過對未標(biāo)記的文本進行特征提取來有效改善文本情感分類結(jié)果,該方法可以有效解決帶有標(biāo)記的數(shù)據(jù)集稀缺的問題。無監(jiān)督學(xué)習(xí)無須人工標(biāo)注數(shù)據(jù)訓(xùn)練模型是一種降低標(biāo)注成本的解決方案,但由于完全依賴算法學(xué)習(xí)的結(jié)果,因此往往效果不佳,難以達到實際要求。基于傳統(tǒng)機器學(xué)習(xí)的情感分類法主要在于情感特征的提取和分類器的組合選擇,不同分類器的組合選擇對情感分析的結(jié)果有一定的影響,這種方法往往不能充分利用上下文文本的語境信息,在情感分析文本內(nèi)容時往往存在忽視上下文語義的問題,所以它的分類準(zhǔn)確性受到一定的影響。
基于深度學(xué)習(xí)的情感分析方法是利用神經(jīng)網(wǎng)絡(luò)進行的,典型的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法有:卷積神經(jīng)網(wǎng)絡(luò)(CNN)、遞歸神經(jīng)網(wǎng)絡(luò)(RNN)、長、短時間記憶(LSTM)網(wǎng)絡(luò)等。通過對基于情感詞典和基于機器學(xué)習(xí)的情感分析方法的比較,采用深度學(xué)習(xí)的情感分析方法,在文本特征學(xué)習(xí)方面具有顯著優(yōu)勢,可以主動學(xué)習(xí)特征,主動保留文本中的詞語信息,能更好地提取對應(yīng)詞語的語義信息,從而有效地實現(xiàn)對文本的情感歸類。但基于深度學(xué)習(xí)的方法需要大量的數(shù)據(jù)支持,不適合小規(guī)模的數(shù)據(jù)集,而且算法訓(xùn)練的時間取決于神經(jīng)網(wǎng)絡(luò)的深度和復(fù)雜度,一般需要較長的時間,同時對于研究人員來說,神經(jīng)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu)、理論知識和網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)也是一項挑戰(zhàn)[4]。
在大量的網(wǎng)絡(luò)社交平臺中,因微博社交平臺因擁有大量用戶、媒體、官微以及各領(lǐng)域大V,可以對某一社會熱點事件表達各種態(tài)度和觀點,使之成為網(wǎng)絡(luò)輿情的主戰(zhàn)場。有鑒于此,本文通過爬取微博用戶的網(wǎng)絡(luò)評論信息,并進行情感分析,可有效把握網(wǎng)民對新聞輿情的全面性傾向,為網(wǎng)絡(luò)輿情管理提供幫助,從而更好地了解網(wǎng)民對公共社會事件(如新政策、社會熱點事件)的情感和態(tài)度。
網(wǎng)絡(luò)評論情感分析流程可分為三個步驟:第一步,通過Python語言編寫爬蟲程序?qū)Υ罅康木W(wǎng)絡(luò)評論數(shù)據(jù)進行采集并進行數(shù)據(jù)預(yù)處理;第二步,通過Python 的第三方SnowNLP 庫對收集到的數(shù)據(jù)進行情感分析,得出相應(yīng)數(shù)值;第三步,對情感分析數(shù)值進行加權(quán)處理,獲得網(wǎng)絡(luò)評論情感的正負(fù)面評價,并將評論結(jié)果進行可視化呈現(xiàn)[5],如圖1所示。
圖1 微博情感分析流程圖
對微博網(wǎng)絡(luò)評論數(shù)據(jù)的采集是通過編寫網(wǎng)絡(luò)爬蟲程序進行的。該網(wǎng)絡(luò)爬蟲程序是在Window7 操作系統(tǒng)中,利用Anaconda3集成開發(fā)環(huán)境,通過Python語言進行開發(fā)的。其Python作為一種開源軟件,為編譯爬蟲程序提供了大量的完善的基礎(chǔ)代碼庫以及功能強大的第三方資源庫,使得系統(tǒng)開發(fā)更為簡單便捷。在編寫的微博網(wǎng)絡(luò)爬蟲程序引入了Python語言的Requests、lxml、BeautifulSoup、jieba、csv、snowNLP 等第三方資源庫。在進行微博評論數(shù)據(jù)的采集過程中,以“#維護領(lǐng)土完整是14億多中國人民的意志#”這條熱點微博為例進行新聞評論數(shù)據(jù)的采集。該爬蟲程序首先以要訪問的微博評論頁面URL 為入口,通過Requests庫模擬瀏覽器向微博服務(wù)器發(fā)送請求獲取微博響應(yīng)數(shù)據(jù);然后通過lxml庫將獲取的響應(yīng)數(shù)據(jù)進行數(shù)據(jù)格式轉(zhuǎn)換,再經(jīng)BeautifulSoup 庫進行數(shù)據(jù)解析和提取,獲得微博的網(wǎng)絡(luò)評論數(shù)據(jù),包括評論內(nèi)容,評論時間,評論點贊數(shù),評論回復(fù)數(shù)以及評論者信息等數(shù)據(jù);最后將爬取到的多條網(wǎng)絡(luò)評論數(shù)據(jù)以.csv 格式保存下來,用于后續(xù)的情感分析,如圖2所示。
圖2 微博評論數(shù)據(jù)
一般網(wǎng)絡(luò)爬蟲程序采集下來的網(wǎng)絡(luò)評論數(shù)據(jù),存在較多的臟數(shù)據(jù),為了避免數(shù)據(jù)不夠規(guī)范導(dǎo)致結(jié)果出錯,需要進行數(shù)據(jù)清洗、中文分詞、去除停用詞等一系列的數(shù)據(jù)預(yù)處理操作。例如我們初次爬取下來的微博評論數(shù)據(jù)就存在較多的干擾信息,如重復(fù)冗余評論,帶有HTML標(biāo)簽和帶有emotion(表情)的評論以及空格等。對帶有HTML 標(biāo)簽和表情的評論以及空格可使用Python 正則表達式的方法re.sub() 匹配去除,通過正則表達式查找到匹配的內(nèi)容并將其替換成空字符串。對重復(fù)冗余的文本數(shù)據(jù)則是使用drop_duplicates()方法將網(wǎng)絡(luò)評論數(shù)據(jù)中重復(fù)的部分過濾掉,從而起到去除無用的、重復(fù)的網(wǎng)絡(luò)評論目的。然后對處理好后的網(wǎng)絡(luò)評論數(shù)據(jù)再進行中文分詞,中文分詞是中文文本挖掘和信息處理的基礎(chǔ)環(huán)節(jié),而Python第三方的jieba 分詞庫是當(dāng)前效果較好的一種中文分詞器,支持中文簡體、中文繁體分詞,同時還支持自定義詞庫,因此使用jieba 分詞庫的cut()方法的精準(zhǔn)模式對網(wǎng)絡(luò)評論數(shù)據(jù)進行切句、分詞。經(jīng)過分詞后的數(shù)據(jù)還有很多干擾項,在評論數(shù)據(jù)中還會存在著頻率出現(xiàn)極高一些詞匯,如:“在”“的”“萬一”“?”“!”等,以及一些中文標(biāo)點符號,這些詞匯本身沒有什么實際意義。因此,我們選用哈工大停用詞表并將其加載到j(luò)ieba分詞庫的停用詞庫中,將沒有具體意義的詞刪去,為下一步情感分析做好數(shù)據(jù)準(zhǔn)備。
對清洗過的微博評論數(shù)據(jù)進行情感分析時,主要是通過SonwNLP 庫來實現(xiàn)的。SnowNLP 是一個Python 寫的自然語言處理庫,主要可以實現(xiàn)中文分詞、詞性標(biāo)注、情感分析、文本分類、轉(zhuǎn)換拼音、繁體轉(zhuǎn)簡體、提取文本關(guān)鍵詞、提取摘要、分隔句子和文本相似等功能。它是一個可讀性很好的中文文本處理庫,簡單易懂,易于實現(xiàn)。SnowNLP庫不需要NLTK,本身就可以實現(xiàn)所有的算法,并且它自帶語料庫和情感字典,不需要下載大量的情感詞庫和構(gòu)建各種情感詞庫,有一定的準(zhǔn)確率。
SnowNLP情感分析基本原理如下:假設(shè)情感分析的分類有正面評價c1和負(fù)面評價c2兩類,且每一條評論中有w1,w2,...,wn共n個相互獨立的文本空間,通過樸素貝葉斯公式分別計算出屬于正面評價P(c1|w1,...,wn)和負(fù)面評價P(c2|w1,...,wn)的條件概率,其計算公式可表示為:
并根據(jù)全概率公式P(B)=P(B|A)P(A) +P(B)|A′)P(A′),可將P(w1,...,wn)可表示為:
進而可將公式轉(zhuǎn)換為:
該式即為SnowNLP 在情感分析過程中使用的計算算法[6]。
然后通過SnowNLP 庫的sentiment() 方法對文本進行情感分析,就能夠獲取每條評論的對應(yīng)情感分值(emotion) 和情感傾向類型(tpye,其中pos 為正面,neg為負(fù)面),如圖3所示。
圖3 情感分析值
對微博評論數(shù)據(jù)進行SnowNLP 情感分析得到每條評論數(shù)據(jù)的情感值,其情感值的范圍在0 到1 之間,當(dāng)情感值越接近1表示正面情緒,當(dāng)情感值越接近0表示負(fù)面情緒,通過導(dǎo)入Python 的第三方matlibploth繪圖庫繪制情感分析直方圖,如圖4所示。由情感直方圖可見,評論內(nèi)容兩極分化較為嚴(yán)重,在整個評論條數(shù)中大約有1100多條評論情感值在[0.8,1]區(qū)間內(nèi),大約有400多條評論情感值是在[0,0.2]區(qū)間內(nèi),但從整體來看,對該條微博的整體情感評價還是趨于正面情緒的。
圖4 情感直方圖
同時還可以通過設(shè)定正負(fù)評價閥值,統(tǒng)計出該條微博中正面評價和負(fù)面評價的條目數(shù)。通常將正負(fù)評論閥值設(shè)定為0.5,當(dāng)評論的情感分析值大于0.5時,則統(tǒng)歸為正面評價,當(dāng)評論的情感分析值小于0.5時,則統(tǒng)歸為負(fù)面評價,最終根據(jù)獲得的正負(fù)面評論條數(shù)繪制正負(fù)評價占比圖,如圖5所示。從此圖可以直觀地看到正面評價占比為71.89%,負(fù)面評價占比為28.11%,正面評價占比較大,因此可判斷出對該條微博的評論也是趨于正面評論。
圖5 正負(fù)評價占比圖
隨著互聯(lián)網(wǎng)逐步深入人們的生活,在線評論已經(jīng)成為廣大網(wǎng)民抒發(fā)個人觀點和情感表達的重要途徑,因此對網(wǎng)民的網(wǎng)絡(luò)評論進行收集和情感分析研究具有非常重要的意義。本文通過對網(wǎng)絡(luò)新聞評論情感分析的研究及實現(xiàn),基本上能夠準(zhǔn)確地對評論進行情感分析,并實現(xiàn)新聞評論的情感可視化,直觀地發(fā)現(xiàn)網(wǎng)民情感傾向性的分布和走勢,幫助管理者把握網(wǎng)絡(luò)輿情的走向,有助于網(wǎng)絡(luò)輿情監(jiān)控體系的完善,并為大數(shù)據(jù)下的輿情決策提供了幫助。