孟祥光,郭東偉
(吉林大學軟件學院,吉林長春市 130021)
在互聯網應用中,人們對于商品、服務、民生、事件等的討論和評價,發揮著越來越重要的作用。企業可以根據用戶評價優化商品和經營服務;政府可以根據民眾評論快速掌握民生需求,防止發生輿情事件;用戶可以根據網絡討論和評價確定目標商品及購買意愿。總之,充分利用討論與評價數據,獲取其中隱含的價值信息對于互聯網良性發展具有推動作用,于是情感分析技術應運而生。該技術就是基于互聯網中的主觀文本,由計算機自動提取出其中所要表達的情感信息[1]。但是對于一些具有隱含意義的自然語言,準確可靠的情感提取并非易事[2-3]。當前使用較多的方法是機器學習,結合語法、語義特征完成分類。文獻[4]提出了一種多神經網絡融合的方式實現情感分析;文獻[5]利用ELMO轉換詞匯向量,并采用MSCNN訓練詞匯向量并提取特征;文獻[6]引入self-attention優化機器學習,改善特征分類性能;文獻[7]基于self-attention機制設計了Tree-LSTM訓練模型,同時引入Maxout神經元,進一步改善了情感分類的準確率;文獻[8]融合了self-attention與Bi-LSTM,實現了雙語情感分析。基于這些研究,本文也采用機器學習進行特征提取,同時考慮到機器學習參數較多,學習效率較低的問題,難以應付大數據應用場景,于是先對原始數據進行粗粒度聚類。這里設計了一種密度峰值聚類(DPC),DPC具有調節參量少,執行效率高的優點[9],另外本文針對原始數據集采取區域劃分,獨立聚類,使聚類效率進一步提高,最終通過各子區域輸出合并得到全局結果。在粗粒度聚類后的本文數據上,再融合LSTM-CNN進行局部特征提取,大幅縮減了待處理數據規模及參量個數,從而可以高效可靠的實現大數據情感分析。
DPC優化算法的核心是對全部數據求解局部密度ρ與相對距離δ[10],構造(ρ,δ)關系,進而確定聚類中心。對于任意數據i,其局部密度ρi可以利用與其它數據的歐氏距離dij(j≠i)來計算,公式如下

(1)


(2)
根據dij與ρi,計算相對距離,公式如下

(3)

在對數據集合進行子區域分割時,采用網格策略。此時,算法主要求解每個子區域內的數據密度與距離,以及鄰近子區域的相關參數,這樣的處理過程在優化數據計算復雜度的同時,有利于改善分布式計算的負載均衡性。對于一些數據點,所屬簇可能與所屬子區域并不是一個,這種邊界數據可以將其同時歸屬于不同子區域。于是提出子區域擴展定義,假定si為任意子區域,邊界數據所屬簇的截距為d,則擴展后的子區域為si+d。當數據包含多維度時,子區域對應為空間區域。為盡可能降低數據劃分對ρi的影響,本文引入高斯核優化ρi,計算公式為

(4)


(5)
這里的n表示網格劃分的子區域數量。對于任何一個子區域而言,只有ρi與δi的乘積超過門限值,才能將其確定為聚類中心。在采用局部DPC聚類時,通過擴展可能會使一些相鄰區域產生數據交集。當需要對子區域結果進行合并處理時,可以利用邊界數據特征搜索出相應的簇。假定c1、c2依次為交集區域A1與A2中的局部簇,它們之間滿足c1?A1,c2?A2,A1∩A2≠?。當某數據d位于c1與c2簇的交集內,且該數據同時屬于c1與c2的核心元素,考慮到子區域交集數據一定是邊界數據,合并點一定落在邊界數據內,則此時應該將c1與c2采取合并,并將d作為合并點。從合并點能夠知道c1與c2存在的聯系,進而能夠確定它們的全局特征。
文本中的詞性能夠反映出人物的情感特征,假定某文本的詞匯集描述為T={t1,t2,…tn},經過Word2Vec可以變換得到相應的詞匯向量V(ti)。向外推廣可以得到句子矩陣的詞匯向量集Sij={V(t1),V(t2),…V(tn)},且Sij∈Rn×k,k表示V(ti)的維度。為了在CNN訓練時重點突出詞匯特征,對句子包含的諸如情緒、程度、肯定和否定等詞匯采取標注。這里引入多頭注意力,它可以描述為拼接矩陣與加權形式
MH(X,K,V)=HW
(6)
左側項的X表示搜索的目標向量;K、V是X對應的鍵值對;右側項W表示加權矩陣;H表示拼接矩陣。在標注過程中,文本詞匯特征對應多頭拼接矩陣H,任意詞匯對應不同的向量值tri,且tri∈Rk。于是,一個包含n個詞匯的句子,對應的詞匯特征描述如下
tr1:n=tr1⊕tr2⊕…⊕trn
(7)
其中,⊕表示拼接操作。根據Sij求解出多頭注意力的X、K、V參量,公式如下

(8)
其中,wX、wK與wV均表示加權矩陣。于是,利用注意力得到詞匯特征輸出為

(9)
把輸出結果Otr采取如下前饋加權,從而求解出額外特征

(10)
wm表示前饋加權矩陣;etr表示偏移量。至此,通過前述計算可以得到文本句子內的情感詞匯特征。考慮到詞匯特征與句子表達可能存在差異,這里將詞匯與句子各自對應的特征進行融合。采取門控加權融合,公式如下
R=activate(wt⊙Ce+(1-activate(wt⊙))⊙Cs)
(11)
activate(-)表示激活函數;wt表示門控加權;Cs表示句子特征,提取公式如下
Cs=softmax(0,w1Otr+e1)w2+e2
(12)
w1與w2均表示加權;e1與e2均表示偏移量。再利用如下公式計算出句子的情感極性
p=softmax(wlinkCs+elink)
(13)
wlink與elink分別表示連接層加權和偏移量。CNN網絡在訓練情感極性p的過程中,采取交叉熵進行評估

(14)

cij=f(F·V(t(i:i+l-1))+e)
(15)
cij是包含詞匯i的句子j對應的局部特征;l是要提取的詞匯向量行數;V(t(i:i+l-1))是獲取i至i+l-1行詞匯向量;F是卷積濾波;e是偏移量;f(-)是ReLU變換。
基于局部特征優化的文本大數據情感分析流程如下:
1)文本大數據初始化操作,一方面去除文本內沒有語義的非詞匯;另一方面利用分詞器對文本內詞匯采取分割處理。在去除非詞匯的同時,為防止噪聲干擾,還會對停用詞進行刪除。將分割后的詞匯采取Word2Vec變換,構造向量字典。
2)在CNN的嵌入層完成向量拼接,并利用式(7)得到句子整體的詞匯特征。
3)將Sij輸入至BiLSTM層,同時給定Sigmoid激活函數。在BiLSTM層的輸入端,采取雙向策略,利用隱層分別得到詞匯與句子特征。在BiLSTM層的輸出端,采取Bijt=BiLSTM(Sijt)方式完成結果拼接,Bijt即為時間點t,BiLSTM層的最終結果;Sijt表示在時間點t,包含詞匯i的句子j對應矩陣。
4)在CNN中計算局部特征,采用Cijt=CNN(Bijt)糾正BiLSTM層結果,Cijt即為時間點t,CNN輸出結果。對詞匯與句子特征采取融合,并使全連接層介入。
5)利用softmax得到大數據情感分類。
仿真操作系統為Windows10,軟件實現語言為Python,實驗數據集選擇COAE2014,該數據集具有40000條數據。在COAE2014內部,有5000條對應的情感極性為已知的,可以用于網絡或深度學習。詞匯截取選擇jieba,向量變換選擇Word2Vec,經過處理后最終得到的向量模型配置如表1。

表1 向量模型配置
在衡量密度峰值聚類性能時選擇ARI指標。ARI能夠描述聚類輸出和實際的吻合性,它的變化區間是[-1,1],計算公式為

(16)
式中,RI表示蘭德系數;E(RI)表示RI期望。ARI的值越接近1,說明聚類效果越好,越接近-1,說明聚類效果越差。RI的計算公式為

(17)

在衡量數據情感分類時選擇Precision、Recall和Fl-measure三項指標。其中Precision用于衡量數據分類的查準率,計算公式為

(18)
這里的TP表示積極情感數據被正確分類成積極情感的數量。FP表示錯誤標記成正的數量,即非積極情感數據被錯誤分類成積極情感的數量。Recall用于衡量數據分類的查全率,計算公式為

(19)
這里的FN表示積極情感數據被錯誤分類成積極情感的數量。Fl-measure是對Precision和Recall的綜合評價,計算公式為

(20)
為了衡量局部DPC優化算法的聚類性能,引入AE-MDPC[9]和DPPOD[10]方法作為比較。實驗過程中,依次增加數據規模,得到不同數據規模下各方法的ARI指標,結果如圖1所示。根據結果對比,當數據規模增加時,各聚類方法的ARI值均有所增加。其中本文方法的ARI值始終最高,表明聚類效果與實際類別最吻合。這得益于本文設計的區域劃分與局部聚類策略,針對劃分區域使用高斯核優化密度計算,并根據密度與距離乘積實時調整篩選門限,使聚類中心實現自適應選擇,從而獲得更準確的聚類性能。

圖1 實驗結果
為了衡量本文方法在大數據情感分類方面的整體性能,本文引入文獻[6]、文獻[7]和文獻[8]中方法作為比較,分別得出不同方法在COAE2014數據集下的Precision、Recall和Fl-measure指標,結果如圖2所示。根據指標數據,本文方法相比于文獻[6]、文獻[7]和文獻[8],在Precision指標上依次提高了0.035、0.026和0.054;在Recall指標上依次提高了0.04、0.023和0.051;在F1-measure綜合指標上依次提高了0.037、0.025和0.053。表明本文方法在查準率與查全率方面都有顯著提升,能夠更加準確的對數據情感進行分類,并且具有更高的搜索全面性。究其原因,是由于本文在密度峰值聚類的基礎上,利用BiLSTM-CNN提取了文本詞匯與句子特征,并采取融合處理,同時采用了局部特征糾正結果,從而保證了本文方法在上下文與局部特征方面的處理都更為合理準確。

圖2 性能指標對比
為驗證本文方法在大數據情感分類方面的實時性,實驗過程中依次增加數據規模,統計得到不同數據規模下方法的分析時間,結果如圖3所示。根據曲線可知,在數據規模增長過程中,分析時間的增長速度比較緩慢且線性。表明本文方法的處理效率較高,適用于大數據場景的情感分析。這是由于本文方法在前期的聚類階段采用了區域劃分策略,便于大數據任務的拆分并發處理,同時前期聚類能夠大大降低后期特征分類操作的復雜度。

圖3 大數據情感分析時間
為了改善文本大數據情感分析性能,本文采用了分層處理策略。首先在底層設計了改進DPC算法,使其能夠通過區域劃分更快更準確的達到聚類要求,對文本大數據進行粗粒度的分類,降低后期處理的數據規模和難度。然后在上層設計了局部優化文本特征提取方法,通過詞匯與句子特征融合,以及局部特征修正,完成情感分類。仿真結果表明,密度峰值優化算法具有更好的聚類效果,融合密度峰值與局部特征的大數據情感分析方法具有更好的準確度與實時性。