(中國電信北京分公司,北京 100010)
本文基于機器學習的方法,圍繞“攜號轉網”話題的微博評論進行情感分析,考慮到各類媒體圍繞“攜號轉網”主題發布的微博文字稿件會影響到情感分析結果,并且媒體賬號數量很多,不易全部剔除,故僅選取微博評論作為分析文本,不包括微博原文。
本文分為兩個實驗步驟,第一部分是尋找可靠的開源語料庫,將帶有情感標注的語料庫按照7:3的比例分成訓練集和測試集,經分詞、去停詞處理并轉化為詞向量后,使用訓練集構建情感分類模型,使用測試集對模型進行情感分析測試。本文選用github上公開發布的開源語料庫對情感分類的模型進行訓練[1],該語料庫是對一定數量的微博評論文本進行正負面情感分類的數據集,經過人工核驗,過濾掉了廣告、過短或過長、表意不明等語料,可靠性較強,語料庫內容如表1所示,其中0為負面情緒,1為正面情緒。

表1 開源語料庫節選
第二部分首先要爬取微博評論數據,將2019年11月至2021年3月19日(剔除3月21日“大量肖戰粉絲攜號轉網事件”對實驗結果的影響)期間微博平臺關于“攜號轉網”相關評論進行爬取,對獲取到的數據進行篩選,去除運營商客服標準化回復以及類似的無效評論,利用篩選后的文本數據,進行文本處理、詞語向量化,然后運用第一步得到的分類模型進行情感分析。
1.2.1 詞語向量化
本文使用的Word2vec是一種無監督式方式學習語義知識的方法,通過將文本轉換為詞向量的方式來表示詞語信息,即將詞語嵌入數據空間,使得語義上相似的單詞在該空間內距離很近。Word2Vec模型中,主要有Skip-Gram和CBOW兩種模型,從原理上說,Skip-Gram是給定輸入詞語來預測上下文。而CBOW是通過上下文,反過來推測要輸入的詞語,在本文中是使用CBOW方法來生成詞向量的[2]。
1.2.2 情感分析理論
當前機器學習的主流算法有支持向量機算法、隨機森林算法、K近臨算法、樸素貝葉斯等,本文使用支持向量機(SVM)以及隨機森林(RF)算法開展對比實驗[3]。
(1)支持向量機算法。支持向量機是一種基于統計學習理論的機器學習方法,其最大的特點就是可以在不同類別的樣本點之中找到最優的分界線或者分界面。在二維空間中,兩種類型的數據點分別位于決策分界線的兩側,該分界線使兩類數據之間的分類間隔最大。在現實情況中,數據往往是非線性的,實踐中可將二維數據空間拓展至多維,進而找到一個最優決策面,將不同類型的數據點進行分割。
(2) 隨機森林算法。隨機森林算法是通過組合多個弱分類器進行投票或求均值的方法,來提高最終結果的準確性。該方法首先在該數據集上隨機有放回地抽樣重新選出K個新數據集來訓練分類器。它將使用訓練出來的分類器對新樣本進行分類,然后用多數投票或者對輸出求均值的方法統計所有分類器的分類結果,結果最高的類別定位最終類別[4]。
本文采用python進行微博評論數據爬取,觀察收集到的數據,可以看出數據中存在較大數量的運營商客服回復,比如“您好,您反映的問題我們已經詳細記錄并反饋至相關部門……”,對情感分析的結果產生干擾,故予以剔除,最終得出了本次的實驗數據集。
對于用來訓練模型的開源數據集,共有10000余條微博評論文本,開源作者已為所有文本逐條標記了情感傾向,0為負面情感,1為正面情感。取其中7000個作為訓練集,3000個作為測試集。
本文利用jieba詞庫進行分詞,將句子拆解成詞語,并把獲得的詞語數據集與哈工大停用詞表進行比對,剔除掉重復的詞語,從而達到去除停用詞的目的。
本文使用Word2vec模型生成詞向量時,采用了gensim包中的CBOW算法。為保證詞向量的準確度,在生成過程中選擇了窗口值為5,并將詞向量維度調整為300,如表2所示。

表2 “想“詞向量節選
(1)混淆矩陣(Confusion Matrix),也稱誤差矩陣。以二分類模型為例,最終需要判斷樣本的結果是0還是1,或者說是正向還是負向。
通過樣本的采集,在真實結果已知的前提下,通過比對真實結果和分類模型的結果,可以一定程度上判斷模型的可靠性,如表3所示。

表3 混淆矩陣(0代表負向,1代表正向)
真實值為正向,模型輸出的預測結果是正向的數量(True Positive=TP)。
真實值為正向,模型輸出的預測結果為負向的數量(False Negative=FN)。
真實值為負向,模型輸出的預測結果為正向的數量(False Positive=FP)。
真實值為負向,模型輸出的預測結果為負向的數量(True Negative=TN)。
(2)準確率(Accuracy),代表分類模型中所有判斷正確的結果占總觀測值的比重,是對于整個模型的評估項[5]。
Accuracy= (TP+TN)/(TP+TN+FP+FN)
(3)精確率(Precision),代表分類模型預測結果為正向的所有結果中,預測正確的數量。
Precision= TP/(TP+FP)
(4)靈敏度(Sensitivity),又稱召回率(Recall),代表在真實值為正向的所有結果中,模型預測結果正確的數量。
Sensitivity=Recall= TP/(TP+FN)
(5)F1-Score,F1-Score指標是對分類模型的整體精度進行衡量的評價指標,該指標綜合了Precision與Recall的產出的結果,取值范圍從0到1的,1代表模型的輸出最好,0代表模型的輸出結果最差。
F1 Score= 2PR/(P+R)
實驗中對于測試集的測試結果下:
(1)支持向量機方法下,真實為1預測為1的是729個,真實為0預測為1的是673個,真實為1預測為0的是320個,真實為0預測為0的是1276個,如表4、表5所示。

表4 支持向量機混淆矩陣

表5 支持向量機指標
(2)隨機森林方法下,真實為1預測為1的是898個,真實為0預測為1的是504個,真實為1預測為0的是426個,真實為0預測為0的是1170個,如表6、表7所示。

表6 隨機森林法混淆矩陣

表7 隨機森林法指標
從數值上看,綜合各項指標,隨機森林方法進行測試的結果更貼近真實值,故使用隨機森林方法對“攜號轉網”相關微博評論文本進行情感分析。
實驗中,共爬取到30184條與“攜號轉網”關鍵詞相關的微博評論,經篩選客服留言、去重后,共15273條有效樣本數據,表8所示。

表8 有效數據情感分析列表節選
使用訓練好的隨機森林模型來對該數據集進行情感分析,得到以下結果:
正面情感6461條,占比42.31%;
負面情感8812條,占比57.69%。
從實驗結果上看,微博用戶對于攜號轉網的正負面情感認知較為均衡,約42.31%的微博評論對于“攜號轉網”話題持正面情緒,57.69%持有負面情緒。
負面情緒的原因主體可以歸結如下三方面:
第一,部分微博網友并非對于攜號轉網業務本身帶有負面情緒,而是覺得某個運營商的服務欠佳,在微博中抱怨遇到了不開心的事情,想要去轉到其他運營商,本次實驗的學習模型無法對此類微博評論進行剔除,故而這一類的評論會被判斷帶有負面情感。經后續人工核查,此類微博評論以及其他無效負面情感評論占所有負面情感評論的21.4%。
第二,部分微博網友反映,辦理攜號轉網業務后,會出現無法收到第三方App的驗證碼等問題,這也使得想要攜轉的用戶們望而卻步。雖然目前相關技術已經成熟,但是面對成千上萬的第三方App,攜轉的銜接完善過程極為繁重,并非短時間內可以完成[6]。
第三,攜號轉網的過程較為復雜,需要攜入攜出兩家運營商合作完成,在任何步驟中遇到問題都可能導致轉網困難。建議運營商間積極協調配合,不斷優化攜號轉網業務流程,保證用戶攜號轉網順利、暢通。