董婧,范全潤,張順吉
(1.曲靖師范學院信息工程學院,云南 曲靖 655011;2.曲靖師范學院信息與教育技術中心,云南 曲靖 655011)
隨著世界信息總量每月以超過100 PB的數量增長[1],文本情感分析已成為自然語言處理領域的研究熱點之一[2-4]。網絡文本內容通常體現了作者的立場、觀點、看法、情緒、好惡等主觀信息,文本情感分析即通過計算技術對文本的主客觀性、觀點、情緒、極性的挖掘和分析,對文本的情感傾向做出分類判斷[5]。研究者一般將主觀本文的極性分為褒義和貶義,分類思路一般分為基于情感知識的方法和基于特征分類的方法[6]。互聯網用戶在微博平臺發表的言論往往帶有強烈的主觀傾向性[7]。新浪微博作為國內領先的社交媒體平臺,如果能從微博文本中挖掘潛在的輿情情感信息,提供輿情預警,政府和相關部門便能夠做出快速有效的處理應對[8],促進輿情平復,降低突發公共衛生事件的負面效應。
國內外學者對社交媒體時代的文本情感分析研究較為成熟。王樹義等[9]提出一種基于情感分類的主題挖掘方法,有助于企業聚焦自身與競爭對手的主要優勢與問題;李涵昱等[10]提出了一種基于商品屬性提取與過濾算法、情感詞判別算法,實現商品評論的情感傾向性分析;黃發良等[11]提出一個基于多特征融合的微博主題情感挖掘模型,實現了微博主題與情感的同步推導;朱鶴等[12]針對金融文本的情感分析任務,提出基于金融領域的全詞覆蓋與特征增強的BERT模型;譚旭等[13]通過構建情感值測度算法并利用LDA-ARMA模型,實現多維情感分析與演化預測。以上研究都利用各領域的民眾評論數據挖掘出了有價值的輿情情感信息,但針對邊境地區突發公共衛生事件輿情的情感分析研究還較少,尤其對具有長時間序列和話題延續性的疫情特征,須考慮民眾情感在不同階段的變化。
本文通過抓取較長特定時間窗口內云南省特定大V微博內容,從可視化分析和機器學習兩個方面分析重大突發公共衛生事件情境下社交媒體用戶的話題關注焦點,通過微博情感分析發現民眾情感在不同階段的變化趨勢,挖掘輿情潛在的情感取向,也從側面反映出疫情的發展和對人們生產生活造成的影響。對輿情的監測分析并做出及時有效的輿論引導具有一定的理論參考意義。
通過文獻研究了解文本情感分析的方法和技術路線,然后對爬取到的微博數據預處理后進行情感挖掘和主題建模,包括可視化分析、情感分析、時間序列分析、統計分析和LDA主題分析。基于SnowNLP中文情感詞匯本體庫,構建優化情感分類詞典,進行情感特征識別;結合研究時間窗口內每日微博情感指數進行長時間序列分析;采用LDA模型進行主題分類,依據困惑度最小確定主題個數,利用卡方檢驗結果賦予主題權重,結合每日疫情實時通報,分析了民眾的情感變化趨勢。具體研究思路如圖1所示。

圖1 全球戰疫情微博熱點話題研究框架Fig.1 Global coronavirus pneumonia epidemic microblogging hot topic research framework
1.2.1 特征項選擇及文本向量化TF-IDF算法通過計算文檔中詞語的詞頻和衡量特定詞語在該文檔中的重要程度來選擇特征詞并得到特征項的權重,從而建立文本向量空間模型,因其特征項具有較好的類別區分能力廣泛應用于自然語言處理領域[14-15]。本文首先計算出微博短文本中詞語的TF-IDF值,建立特征詞矩陣,得到最終的特征項矩陣,特征項ωij的TF-IDF值Fωij計算如公式(1)-(3)。

其中:ωij表示第i日微博文本數據中出現的第j個詞語;C(ωij)表示詞語ωij出現的次數;D為每日微博文本數據中的文檔總數;|Di|為文檔Di中詞語的數量;I(ωij,Di)函數取1或者0,1表示文檔Di中包含詞語ωij,反之取值為0。
1.2.2 LDA主題模型LDA主題模型由Blei等[16]基于貝葉斯模型實現。模型中包含文檔、主題和主題詞三個層次,輸出為任一篇文檔的主題分布和主題中詞的分布。現有M篇文檔,主題數目為K個,對應第t個文檔中有Nt個詞語,首先假設文檔-主題和主題-詞的先驗分布是Dirichlet分布,α和γ為分布的超參數,第t個文檔的主題分布為θt,得到其主題編號的多項式分布Z;對于任一主題k,其詞分布為β,得到該詞的概率分布ω,從而組成Dirichlet-multi共軛,得到任一篇文檔中詞的主題編號和任一篇文檔中詞所屬的主題編號下該詞的概率分布,然后通過Gibbs采樣算法或者變分推斷算法不斷迭代,使得超參數不斷收斂,得到特定文檔的主題分布特定主題中的詞分布。
1.2.3 情感分析模型訓練使用Python庫SnowNLP進行情感分析,添加網絡詞匯中較新的中文褒義詞和負面詞匯,刪除重復詞匯,優化情感詞典。將目標文本分為積極和消極,返回值表示該文本所蘊含情緒的概率,取值區間[0,1],值越接近1越積極,越接近0越消極。為提高情感預測準確度,需要重新訓練情感分類模型,主要步驟如下:
(1)讀入人工準備好的正樣本和負樣本;
(2)調用sentiment類中的handle方法分詞、去停用詞;
(3)調用貝葉斯模型的訓練方法訓練情感分類器;
(4)調用Bayes類中的classify方法預測情感分類,測試模型精度;
(5)保存新訓練完成的模型。
輸入每日微博文本集合D={d1,d2,…,dm},變量m表示每天抓取的微博條數,利用新訓練好的情感分析模型,得到每條微博的情感分數sdj,本文在實際判定時,為了使可視化結果更直觀,將sdj數值整體下調0.5,即返回值在[-0.5,0]區間內時文本的情感概率值判定為負向情感,在(0,0.5]之間時文本情感概率值判定為正向情感。每日微博文本情感分數SD計算公式為

本文使用八爪魚爬蟲工具爬取了自2020年2月20日至2020年4月22日的云南省政務、媒體藍V微博以及在本土具有影響力的大V微博,如“云南發布”“都市條形碼”和“918云南交通之聲”等博主的相關微博文本,共獲取16056條原發微博文本,包括用戶ID、用戶名稱、粉絲數、簡介、發布時間、發布內容、轉發數、評論數和點贊數等信息。刪除無意義和少于10個字符的微博,得到10314條原發微博文本作為研究數據。
以周為單位劃分研究時間窗口,將所爬取數據分為9個周窗口。抓取到的數據存在部分列值丟失、數值異常和微博文本包含特殊符號等現象。首先對這些現象補充完整或濾掉無意義的詞語。采用Jieba分詞工具進行文本分詞處理,對于疫情涉及的高頻詞和人名建立自定義詞典,并導入專有名詞詞典,得到規則的分詞結果作為模型的輸入數據。
2.3.1 微博高頻詞分析讀取數據統計詞語頻次,得到前15個高頻詞,分別是疫情、防控、病例、出院、工作、治愈、展開、確診、肺炎、發布、企業、新增、新冠、復工和累計,可以看出疫情防控是研究時間窗口內云南省主流微博媒體話題涉及最多的內容,云南省各州、市除以新冠肺炎防控與診治為首要任務外,企業的復工復產也是最受關注的民生。從行政區劃來看,詞頻最高的3個地名是云南、昆明、曲靖,這也和確診人數相符。
2.3.2 TF-IDF關鍵詞排序基于TF-IDF算法降低信息含量低的高頻詞的影響,抽取文本向量空間中最能代表話題內容的特征詞,前25個TF-IDF關鍵詞分別是人流量、邊境地區、邊民、疫情、減少、成效、邊境、取得、明顯、通告、入境、暢通、全文、切斷、云南省、本土、貨物、輸入、途徑、前提、云南、人數、展開、保證、降低,其中人流量、邊境地區、邊民、疫情、減少、成效的TF-IDF值最高,說明最能代表云南省主流微博媒體話題內容的特征詞集中在邊境地區的疫情防控成效和人員貨物的出入境等問題,這也符合針對云南所處的獨特地理位置,需要制定合理的邊境疫情防控政策。
2.3.3 微博情感分析調用優化后的SnowNLP情感分析器,訓練新的情感分類模型,使用抓取到的云南省主流微博博主博文文本,得到了研究時間窗口內的每日微博情感分數并將其可視化,結果如圖2-3所示。

圖2 微博情感分析Fig.2 The daily weibo sentiment analysis
首先將每日微博文本內容作為樣本輸入,利用訓練好的情感分類模型計算得到每條微博文本的情感分數,然后將其累加求平均得到每日微博情感分析指數圖。2月25日的微博文本包含正向情感72條,負向情感37條,日微博平均情感分數為0.158;4月21日的微博文本包含正向情感84條,負向情感31條,日微博平均情感分數為0.184。圖3以時間順序,顯示了研究時間窗口內的每日微博情感分類結果。從整體來看,日均正向情感的微博文本數量明顯更多,且大部分情感分析的結果極性不強;日均負向情感的微博文本數量相對較少,但情感取值明顯負向背離0值,且大部分集中出現在3月6日至3月21日之間,總體分類結果按時間序列具有明顯聚集性。

圖3 微博情感極性預測結果Fig.3 Microblog sentiment polarity prediction
2.3.4 LDA主題分析選取轉發數、評論數和點贊數三種評價指標,對九個周窗口的微博信息傳播影響力進行評價分析,然后賦予微博話題內容主題權值。卡方統計檢驗結果顯示,微博點贊量的中位數(279205.500)顯著大于轉發量(34847.500)和評論量(35378.833),微博受眾群體對點贊行為偏好更多;微博轉發量的卡方值明顯較大,轉發量、評論量、點贊量的P值分別為0.057、0.444和0.173,均大于0.05,九個周窗口時期的微博轉發、評論和點贊均無顯著差異性,說明微博網民對疫情的關注度一直在持續,因此對于九個周窗口的主題賦予相同的權值。
利用LDA主題模型建模并進行主題挖掘,根據經驗確定超參數α=1/K,γ=1/K,變分推斷EM算法的最大迭代次數設置為200,結合微博信息傳播影響力強度變化給周窗口話題主題都賦予相同的權重。研究發現:2月下旬云南省主流微博媒體話題內容主題均為新冠肺炎疫情防控與診治;3月份微博話題內容主題除抗擊疫情外,還出現企業復產復工和肺炎疫情境外輸入二個主題;而4月份的除抗擊疫情外,還包括清明節祭掃、森林防火、世界知識產權日活動三個主題,這與實際情況相符(昆明市自2019年被列入7個國家知識產權示范城市(城區)之一)。
結合云南省衛健委每日疫情實時通報情況,2月中上旬云南省疫情處于爆發期,2月20日確診人數達到最高峰,此后增長率為0;3月16日云南新增境外輸入確診病例1例,此后境外輸入確診病例呈遞增態勢。從圖3可以看出,研究時間窗口內2月20日至3月5日期間微博情感分數呈現正向情感,說明政府不惜代價投入了前所未有的人力物力,讓普通民眾看到了國家抗疫的決心和成效;另外隨著疫情拐點的到來,廣大民眾更加相信本次疫情可防可控。3月6日至3月21日微博情感分數出現了負向情感,結合主題挖掘,說明民眾對疫情過后的復產復工準備和前景、云南省疫情境外輸入情況表示擔憂,但3月22日開始微博情感分數基本都呈現正向情感,說明政府采取了卓有成效的應對政策,民眾情感又再次趨于穩定。結合4月份的微博主題挖掘結果,民眾情緒已經比較平穩,開始步入正常的生產生活。
本文構建了社交媒體平臺下的重大突發公共衛生事件輿情情感分析及影響因素模型,監測微博內容的主觀情感變化趨勢對于控制和引導網絡輿情具有重要的現實意義。訓練改進的SnowNLP情感分類模型得到研究時間窗口內的每日微博情感分數,使用LDA主題模型建模結合微博傳播影響力評價指標賦予權重,得到特定時間窗口的主題,并結合每日疫情實時通報,分析微博情感隨時間序列變化趨勢。結果表明,每日微博的正向情感天數明顯更多,且微博情感分類結果具有一定的時間聚集性,其特點為正向-負向-正向,即隨著關乎國計民生事件的出現,輿情情感會出現反轉,政府須采取及時有效的政策加以應對。本文的局限性在于微博情感分析過程中,未考慮將用戶關系和用戶性格情緒等特征數據進行融合分析。疫情的持續將會帶來更多的海量數據,進一步將使用分布式爬蟲技術獲取更長時間序列的微博文本,擴大地域特征,利用多視域特征數據建立更優化的微博情感分析模型,更好地幫助輿情分析。