李昌兵,趙 玲,李曉光,王 利
(重慶郵電大學 電子商務與現(xiàn)代物流重點實驗室, 重慶 400065)
互聯(lián)網(wǎng)技術的快速發(fā)展極大地方便了人們的生活,網(wǎng)絡消費成為當下最流行的活動之一。對網(wǎng)絡產(chǎn)品在線評論進行分析是驅動產(chǎn)品優(yōu)化改進、改善用戶體驗的有效途徑[1]。其中,情感分析作為關鍵技術可以提取評論者的態(tài)度,從而發(fā)現(xiàn)潛在問題,因而受到不少學者的廣泛關注和研究[2]。
情感分類作為一種情感分析方法,目的是識別在線評論中包含的情感極性[3]。情感分類任務中常用的技術主要包括基于情感詞典和基于機器學習的方法[4]。前者基于人工構建的情感詞典來判斷文本的情感傾向性,簡單地累積句子的情感,沒有考慮上下文語義信息,且詞典的領域局限性較大[5]。后者能夠考慮上下文的語義信息,對文本的情感傾向判斷更為準確。傳統(tǒng)的機器學習算法如決策樹[6]、樸素貝葉斯[7]等,這些算法適用的數(shù)據(jù)集較小,容易產(chǎn)生過擬合,且依賴于人工抽取特征。深度學習方法因具有強大的特征學習能力,能夠克服人工提取特征的困難,在情感分類任務中應用廣泛。卷積神經(jīng)網(wǎng)絡[8]、遞歸神經(jīng)網(wǎng)絡[9]、長短期記憶網(wǎng)絡[10]等深度神經(jīng)網(wǎng)絡等應用于情感分類并取得了很好的效果。Sharma等[11]通過實驗對比發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡更適合短文本的分類。
基于深度學習模型的情感分類任務中,如何高效地表現(xiàn)文本是一個難點。Word2Vec作為主要方法,將詞語在向量空間轉化成能表達語義關系的低維稠密向量[12]。在Word2Vec模型中,缺乏考慮詞語本身區(qū)分類別的能力,而相關研究發(fā)現(xiàn),詞語的權重會對分類效果產(chǎn)生極大的影響[13]。TF-IDF根據(jù)詞語的詞頻(TF)和逆文檔頻率(IDF)來計算詞語的權重,以體現(xiàn)詞語在文本中的相對重要性,在文本分類領域中應用廣泛,Word2Vec模型則關注的是詞語上下文之間的語義關系[14]。
由于這2種方法在詞語表示上是互補的,因此,本文提出利用TF-IDF加權Word2Vec獲得文本的向量化表示,對具有類別區(qū)分能力的詞語賦予較高的權重,基于獲取的詞向量,利用卷積神經(jīng)網(wǎng)絡挖掘文本從局部到全局的特征并進行分類,這些認為對文本分類有重要貢獻的詞語被更好地挖掘出來,有助于分類效果的提升。然而,基于TF-IDF的詞語權重計算方式只考慮詞語在整個語料庫中出現(xiàn)的逆文檔頻率,忽略了詞語在不同類別間的分布對詞語區(qū)分類別的能力的影響。針對這個問題,提出考慮類別權重的改進TF-IDF的方法。利用改進的TF-IDF算法計算文本詞語的權值,加權其基于Word2Vec模型獲得的詞向量來表示文本,既保留了詞語上下文之間的語義關系,又利用了詞語本身對區(qū)分類別的貢獻,最后采用卷積神經(jīng)網(wǎng)絡算法強大的特征學習能力[15],完成分類任務。
TF-IDF,即詞頻-逆文檔頻率,詞頻(TF)是詞語在文本中出現(xiàn)的頻率,逆文檔頻率(IDF)是文檔頻率的倒數(shù)。計算公式為:
TF-IDFi, j=TFi, j×IDFi
(1)
(2)
(3)
式中:ni, j是詞語ti在j類所有文本中出現(xiàn)的次數(shù);∑knk, j是j類所有文本詞語出現(xiàn)的次數(shù)總和;N是數(shù)據(jù)集中的文本總數(shù);ni為包含詞語ti的文本數(shù)。
圖1 Skip-gram模型結構示意圖
卷積神經(jīng)網(wǎng)絡(CNN)是一種前饋神經(jīng)網(wǎng)絡,它的基本結構包括輸入層、卷積層、池化層和全連接層。圖2為用于在線評論文本分類的CNN模型結構。
圖2 CNN模型結構示意圖
在利用CNN進行文本情感分類時,輸入是由詞語的詞向量構成的文本向量表示矩陣。對于一個長度為n的文本,則構成一個n×d的矩陣,d為詞向量的維度。在卷積層,使用卷積核對輸入層的詞向量矩陣進行卷積操作,提取文本特征。模型會更加關注到類別區(qū)分能力更強的特征。池化層的目的是通過降維獲得文本的重要特征同時提高運算速率。全連接層對卷積、池化得到的特征值進行全連接操作,并映射到樣本標記空間,全連接層在CNN中起到“分類器”的作用。
在文本情感分類任務中,詞語本身也具有區(qū)分類別的能力。TF-IDF本質(zhì)上就是詞語的權重,詞語權重的大小體現(xiàn)了詞語在文本中的相對重要性。用TF-IDF加權詞向量,加權后的文本向量表示促使卷積神經(jīng)網(wǎng)絡更好地進行特征提取。
由式(3),IDF將數(shù)據(jù)集中所有文本作為一類處理,包含某詞語的文本數(shù)越多,賦予該詞語的權重越小,詞語的類別區(qū)分能力越小。然而,在文本分類問題中,IDF將所有文本作為一類計算詞語權重的方式存在以下2個缺陷:第一,IDF缺乏考慮詞語在不同類別間的分布情況,當某類中含有詞語的文本數(shù)越多,而在其他類中包含該詞語的文本數(shù)越少時,說明該詞語能夠更好地表示該類別,具有較好的類別區(qū)分能力,應該賦予該詞語更高的IDF值;第二,詞語在某類的TF-IDF缺乏考慮詞語在其他類別出現(xiàn)的詞頻-逆文檔頻率的影響。事實上,如果詞語只出現(xiàn)在某一類,那么它的類別區(qū)分能力是最強的。
針對以上缺陷,本文將數(shù)據(jù)集分為j類和非j類,考慮詞語在不同類別間的分布[17],詞語ti在j類中改進的IDF公式為:
(4)
式中:mi, j為j類中包含詞語ti的文檔數(shù):ki, j-為非j類中包含詞語ti的文檔數(shù)。改進后的IDF值隨mi, j的增大而增大,隨ki, j-的增大而減小。如果j類中包含詞語ti的文檔數(shù)越多,而在非j類中包含詞語ti的文檔數(shù)越少,則詞語ti更能夠代表j類,在文本情感分類任務中,詞語ti更具有類別區(qū)分能力,對j類中的詞語ti應該賦予更高的權值,體現(xiàn)了對第一個缺陷的改進思想。針對缺陷二,重新設計的TF-IDF如式(5)所示,詞語ti在j類中改進的TF-IDF權值為:
(5)
式中:I-TF-IDFi, j為詞語ti在j類中的改進后的TF-IDF權值。為避免非j類中不存在詞語ti時分母為0,分母加1。若詞語ti只出現(xiàn)在j類,分母為1;若詞語ti出現(xiàn)在j類和非j類,則分母大于1。在前者情況下,詞語ti的分類能力更強,權值更大,在后者情況下,I-TF-IDFi, j隨著詞語ti在非j類中的權值的增大而減小。體現(xiàn)了改進的思想,即如果詞語ti只出現(xiàn)在j類中,則詞語ti的類別區(qū)分能力最強,隨著詞語ti在非j類中的權值的增大,詞語ti代表j類的能力減弱,賦予它的權值相應減小。式(5)即提出的改進的TF-IDF算法。
在文本情感分類任務中,構建較好的文本向量表示十分重要。提出的ITIW-CNN模型通過利用改進的TF-IDF計算文本詞語的權值,然后加權Word2Vec詞嵌入向量,以此作為詞語的向量表示?;诖双@得文本的向量表示矩陣,利用卷積神經(jīng)網(wǎng)絡來挖掘文本特征并進行文本情感分類。ITIW-CNN模型如圖3所示。
圖3 ITIW-CNN模型框圖
在輸入層,輸入的是基于改進的TF-IDF加權Word2Vec詞向量構成的文本向量表示矩陣。Word2Vec模型可以很好地體現(xiàn)詞語間語義上下文的關聯(lián),但是沒有體現(xiàn)出文本中每個詞語之間的權重差異。TF-IDF算法主要考慮詞語在文本中的重要性,但是忽略了詞語之間的語義關系。為了構建更好的文本向量表示,綜合考慮詞語在文本中的相對重要性以及詞語上下文之間的語義關系,提出將改進后的TF-IDF和Word2Vec向量進行加權,從而得到加權后的詞語向量表示。如式(6)所示。
ITIWj(i)=I-TF-IDFi, j×Word2Vec(i)
(6)
基于改進的TF-IDF算法的加權詞向量表示具體描述如下:
① 利用I-TF-IDF算法計算文本中詞語的權值。
② 使用預處理后的評論文本數(shù)據(jù)集對Word2Vec模型進行訓練,得到文本的詞向量,Word2Vec(i)即詞語ti的詞向量。
③ 將詞語的I-TF-IDFi, j權值乘以其對應的Word2Vec詞向量,得到加權的詞向量表示ITIWj(i)如式(6)所示。以詞語向量構成的文本向量表示矩陣作為CNN模型輸入層的輸入。提出的文本向量如圖4所示。
圖4 文本向量框圖
在卷積層,使用卷積核提取文本特征。在抽取特征時,將詞語作為文本的最小粒度,因此卷積核的寬度要與詞向量的維度相同,高度h自行設置。一個大小為h×d的卷積核Wh×d一次卷積過程的計算公式為:
ci=f(Wh×d·ITIWi:i+h-1+bi)
(7)
式中:ITIWi:i+h-1表示第i行到第i+h-1行的詞語的ITIW向量構成的矩陣,將其與卷積核進行卷積操作,加上偏置項bi后經(jīng)過激活函數(shù)f變換得到相應的特征ci。改進后的I-TF-IDF加權Word2Vec得到的詞語的ITIW向量的值越大,卷積操作之后提取的特征ci的值越大,表示這個特征越重要,卷積神經(jīng)網(wǎng)絡能夠挖掘到對文本情感分類越重要的特征。一條文本經(jīng)過卷積操作后,得到的是一個n-h+1維的向量Cj,計算公式為:
Cj=[c1,c2,…,cn-h+1]T
(8)
在池化層,對卷積后得到的較大維度特征向量進行池化操作,最常見的池化方法有最大池化法、平均池化法。以上是一個卷積核對一條輸入文本的卷積池化操作,假設卷積核有m個,經(jīng)過多次卷積池化操作,全連接層將得到的m個特征所對應的特征值進行全連接操作,得到最終的特征向量為:
(9)
在輸出層,將得到的最終的特征向量通過softmax函數(shù)映射為情感類別概率,概率值最大的類別即為預測的文本的情感分類結果。計算公式為:
y=softmax(W(s)z+b)
(10)
其中,W(s)和b分別表示權重和偏置。
實驗數(shù)據(jù)來源于譚松波酒店評論語料,語料規(guī)模為10 000條,并標注了正負情感。其中情感極性為正的評論有7 000條,情感極性為負的評論有3 000條。
對數(shù)據(jù)進行預處理,由于在線網(wǎng)絡平臺上的評論較為隨意,因此首先要從在線評論中過濾掉垃圾評論和無用評論。例如“好評好評”“差差差差差”等無意義的評論。其次對語料進行去重處理,去除重復的文本,得到正類評論5 322條和負類評論2 443條。由于中文詞匯之間沒有空格分隔,本文采用jieba工具對文本進行中文分詞,以詞語作為文本的組成要素。分詞后使用哈工大停用詞表對文本進行去停用詞操作,去除一些與情感分類無關的詞。然后利用預處理后的全部數(shù)據(jù)進行詞向量訓練。訓練模型使用Gensim中Word2Vec模塊的skip-gram模型,設置訓練向量的維度為300,設置上下文窗口大小為5,迭代次數(shù)為10,訓練得到詞向量庫。
使用Pytorch深度學習框架實現(xiàn)基于卷積神經(jīng)網(wǎng)絡模型的文本分類。Pytorch是torch的python版本,是由Facebook開源的神經(jīng)網(wǎng)絡框架,在深度學習領域有著廣泛的應用。卷積神經(jīng)網(wǎng)絡模型的參數(shù)設置如表1所示。
表1 卷積神經(jīng)網(wǎng)絡(CNN)參數(shù)設置
4.3.1評價指標
本實驗采用的評估分類模型的指標為精確率(precision)、召回率(recall)、F1值和模型分類的準確率(accuracy)。表2是描述上述4個指標混淆矩陣的類別,計算公式如式(11)~(14)。
表2 混淆矩陣類別
(11)
(12)
(13)
(14)
式中:a為正確分類的正文本數(shù)量;b為錯誤分類的正文本數(shù)量;c為錯誤分類的負文本數(shù)量;d為正確分類的負文本數(shù)量。
4.3.2性能對比及分析
采取5折交叉驗證的方式進行實驗,分別采用Word2Vec詞向量結合傳統(tǒng)的決策樹分類模型(文獻[6]),Word2Vec詞向量結合CNN(文獻[15]),傳統(tǒng)的TF-IDF加權Word2vec詞向量結合CNN(TIW-CNN),與提出的ITIW-CNN模型進行實驗對比,結果如表3所示。
表3 文本情感分類結果 %
通過表3得出的結果發(fā)現(xiàn),在譚松波酒店評論語料中,卷積神經(jīng)網(wǎng)絡模型的分類效果在精確率、召回率、F1值和模型的準確率方面均比傳統(tǒng)的決策樹算法的分類效果好。ITIW-CNN模型相較于傳統(tǒng)詞向量表示結合卷積神經(jīng)網(wǎng)絡的分類模型在各個指標上都有一定的提高。ITIW-CNN模型的F1值和模型分類的準確率分別達到了94.77%和92.80%,分別比文獻[15]高9.31%和13.62%,比TIW-CNN高2.77%和3.98%,驗證了本文提出的ITIW-CNN模型的有效性。改進的TF-IDF考慮了詞語的類別代表力,Word2Vec體現(xiàn)了上下文之間的語義關系,用改進的TF-IDF對詞向量加權,加權后的詞向量不僅很好地表示了文本的語義信息,而且考慮了詞語區(qū)分類別的能力,在利用卷積神經(jīng)網(wǎng)絡算法進行分類的時候,對分類有重要貢獻的特征被挖掘出來,提升了文本的情感分類效果。
本文中提出的ITIW-CNN模型與TIW-CNN模型在譚松波酒店評論語料上訓練得到的交叉熵損失函數(shù)曲線如圖5所示。
圖5 損失函數(shù)曲線
圖5中,橫坐標表示CNN迭代次數(shù),縱坐標表示損失函數(shù)值。從圖5中可以看出,隨著迭代次數(shù)的增加,TIW-CNN算法與本文中提出的ITIW-CNN模型訓練得到的交叉熵損失函數(shù)都在逐漸下降并趨于平緩,模型逐漸收斂。ITIW-CNN模型在數(shù)據(jù)集訓練中得到的損失函數(shù)值的下降速率與TIW-CNN模型差別不大,但損失函數(shù)值明顯小于TIW-CNN模型,說明基于類別權重改進后的I-TF-IDF加權Word2Vec得到的向量有助于卷積神經(jīng)網(wǎng)絡挖掘文本的特征,CNN模型的分類性能有所提高,證明了本文提出的ITIW-CNN模型的有效性。
對在線評論的情感分類問題進行了研究。為了充分提取文本數(shù)據(jù)的有效信息和免去人工抽取特征的繁雜,采用深度學習卷積神經(jīng)網(wǎng)絡的文本分類方法。Word2Vec作為文本表示的主要方法,解決了詞與詞之間語義缺失的問題,但是缺乏考慮詞語本身區(qū)分類別的能力對情感分類的重要影響。TF-IDF作為詞語權重的傳統(tǒng)的計算方式存在一定的缺陷。本文考慮了類內(nèi)頻繁出現(xiàn)的詞語的類別代表度和某類中的詞語在其他類中出現(xiàn)的詞頻和逆文檔頻率的大小對該類中詞語的類別區(qū)分度的影響,提出了一種改進的TF-IDF算法。改進的TF-IDF算法考慮了詞語與類別的依存關系?;诟倪M的TF-IDF加權Word2Vec詞向量的文本表示方法在CNN情感分類模型上取得了更好的分類效果,原因是加權后的詞向量可以更高效地表示文本,在運用卷積神經(jīng)網(wǎng)絡學習文本的特征時,挖掘出對文本分類貢獻更大的特征。
未來可在語料規(guī)模更大的數(shù)據(jù)集上進行實驗,驗證方法的有效性,并深入研究如何解決情感多分類問題。