白曉雷,霍瑞雪
(國家計算機網絡與信息安全管理中心河北分中心,河北 石家莊 050000)
近年來,隨著自媒體的迅速發展,微博等自媒體平臺每日產生了大量網民發布的信息及其評論,對其進行情感分析具有極高的價值。目前,反諷識別的研究還主要集中在英文短文本方面,而中文的反諷識別研究仍處于探索階段,且目前常見的微博文本情感分析主要用于區分積極、中性以及消極等,對于反諷這一特殊修辭手法的研究相對較少,而實際上反諷語句在全部微博文本中已經占有一定的比例。因此,本文基于微博數據對中文反諷識別進行研究。
國外Burfot 等研究人員主要通過使用詞袋法來進行反諷識別。Konstantin 等研究人員[1]在各種分類模型下結合各種反諷特征進行研究,實驗結果表明人工選取的特征在提高準確率的同時降低了召回率,加入詞袋模型問題得到解決。國內山西大學盧欣等研究人員[2]基于深度學習的方法對中文反諷識別進行了研究。
通過對微博常見反諷語言進行匯總和分析,本文提煉了微博反諷語言的主要特征。
(1)固定搭配,如“很好……又”,例子“很好,又拒絕了一個”。
(2)特定副詞,如“真有你們的”,例子“想了半天,都懶得罵了,只能說真行,真有你們的,不愧是你們”。
(3)特定的語氣詞,如“呵呵”等,例子“雪梨直播間賣的衛衣是假貨,還刪評論,呵呵,網銷第一是這樣來的”。
(4)網絡梗。微博的用戶以年輕人為主,含有大量年輕人熟知的網絡梗,如“他一直是可以的”等。
本文使用的模型主要思路如下:
(1)采集到包含一定數量反諷語句的數據集并對其進行標注,反諷為1,非反諷為0;
(2)人工選取反諷語句中常見的特征,并對這些特征進行卡方計算,選擇分值較高的特征作為模型使用的語言反諷特征;
(3)將數據集中的語句使用詞嵌入向量技術進行向量表示,生成詞袋模型;
(4)將反諷特征使用嵌入向量技術進行向量表示,并與上一步的詞袋模型相結合作為訓練集,分別使用支持向量機、樸素貝葉斯、隨機森林進行訓練(即融合語言特征的反諷文本識別模型)得出結果并進行對比。
目前,公開的達到一定數量的微博反諷數據集幾乎不存在。因此,本文前期爬取了6 萬余條微博的數據,包括評論內容、用戶名、發表時間以及點贊數等相關信息。為了保證數據集中反諷文本所占的比例,本文以“NBA 復播”“春晚微吐槽”等話題和“好就好在”“把我牛逼壞了”等關鍵詞作為重點爬取了涉及到的全部數據,部分結果如圖1 所示。經過數據清洗后共40 000 余條,之后人工對其進行標注。標注方法僅區分反諷與非反諷(反諷標1,非反諷標0),不區分積極、中性以及消極等情感。標注完成后,統計其中有2 000 余條非重復的反諷語句。本文從反諷語句與非反諷語句中各抽取2 000條共4 000 條作為數據集。
在文本分類中,特征的提取是核心內容。特征選擇的質量直接影響分類性能,因此本文選擇使用卡方檢驗[3]的方式進行特征選擇。卡方檢驗是通過對特征進行打分后排序,最后選擇排名靠前的特征來表示文本。

圖1 爬取數據部分結果
卡方檢驗公式:

針對反諷數據集進行深入分析,人工提取了若干個特征,再通過計算這些特征卡方值得到的TOP5 如表1 所示。

表1 特征卡方統計值
詞嵌入向量是指把一個詞映射到成一個實值向量空間的過程。由于計算機無法直接對文本進行訓練,因此需要將文本轉化為詞向量。目前,常用的詞向量訓練模型主要有CBOW 模型與skip-gram 模型。本文選擇skip-gram 模型用于訓練詞向量。
skip-gram 即根據文本中心詞預測前后m個詞的概率,通過在一定規模的語料庫中訓練,得到一個從輸入層到隱藏層的權重模型。該模型的目標是最大化文檔的后驗概率:

分類器分別采用支持向量機(Support Vector Machine,SVM)、樸素貝葉斯(Naive Bayesian,NB)和隨機森林(Random Forest,RF)。
3.4.1 支持向量機(SVM)
支持向量機(SVM)是一種有監督分類算法,分為線性可分與線性不可分,在分類問題中應用效果較好。
SVM 可以將數據從低維空間通過映射轉變到高緯度空間中,選擇核函數(核函數一定得滿足Mercer 條件)進行求解,如:

式中,K(xi,xj)表示核函數,最終分類函數為:

3.4.2 樸素貝葉斯(NB)
樸素貝葉斯算法的基本思想:對于需要分類的文本,求解在此文本出現的條件下各個類別出現的概率,最大概率的類別即為分類結果。基本步驟[4]如下:
(1)假設樣本空間N={N1,…,Nd}共包含d個需要進行分類的樣本,經過特征選擇得到X={X1,…,Xk}共k個相互獨立的屬性集C={C1,…,Cm};
(2)根據貝葉斯公式:

3.4.3 隨機森林(RF)
隨機森林由很多無關聯的決策樹構成,相較于單棵決策樹避免了過擬合問題,經常被用來處理分類與回歸問題。在處理分類問題時,森林中的每棵決策樹分別對新樣本進行類別判斷,被更多決策樹選擇的類別作為隨機森林的最終分類結果。
隨機森林算法步驟[5]如下。
(1)隨機選取n個文本,θw為這些文本組成的詞變量的集合。
(2)使用這n個文本構造決策樹,h(χ,θw)為決策樹,χ為預測樣本。
(3)重復步驟(1)和步驟(2)構造m棵決策樹:

(4)每個決策樹分別對新樣本進行類別判斷,被更多決策樹選擇的類別作為最終結果。
隨機森林的邊際函數為:

融合反諷特征前后的詞袋模型訓練結果對比如表2 所示,反映了融合微博反諷特征的詞袋模型相較于未融合微博反諷特征的詞袋模型,反諷識別準確率和召回率均得到了一定改善。

表2 融合反諷特征前后訓練結果對比
本文主要研究了融合微博語言特征的詞袋中文反諷識別模型,使用支持向量機(SVM)、樸素貝葉斯(NB)和隨機森林(RF)等分類器進行訓練,整體比單獨使用詞袋模型進行反諷識別的準確率有了顯著提升。為進一步提高反諷識別準確率,在后續工作中考慮進一步擴充反諷訓練集,并使用融合語言特征的卷積神經網絡進行訓練,最終形成一定數量的反諷語料庫。