潘正軍 趙蓮芬 袁麗娜 王紅勤
(廣州大學(xué)華軟軟件學(xué)院 廣東 廣州 510990)
目前情感極性分析的常用方法有基于情感詞典和基于機(jī)器學(xué)習(xí)[1-2]。基于情感詞典是通過將給定的文本(無論是單詞、短語還是句子)拆分成較小的標(biāo)記進(jìn)行標(biāo)記化過程,然后計算單詞出現(xiàn)的次數(shù),最終訓(xùn)練成BOW模型,再利用現(xiàn)有的詞典查看單詞主觀性,根據(jù)這些計算文本的整體主觀性作為情感極性的判斷參考依據(jù)。但是該方法尚有許多不足[3],如:不具備情感的停用詞會造成文本情感得分的影響、存在一詞多分?;跈C(jī)器學(xué)習(xí)的文本情感極性分析是一種更先進(jìn)的處理技術(shù),對數(shù)據(jù)集進(jìn)行特征提取和特征選擇后進(jìn)行分類模型訓(xùn)練,利用被標(biāo)記正負(fù)標(biāo)簽的語料庫,訓(xùn)練成一個分類器,當(dāng)輸入新的沒有標(biāo)記的語料,就能自動分類成正面或者負(fù)面。比如,彭丹蕾[4]使用TextCNN做商品評論情感分析,馬夢曦等[5]使用SVM來做彈幕文本情感極性分析,但是二者的執(zhí)行效率上都不如FastText高效。FastText可以看作Word2Vec中CBOW的優(yōu)化版,引入N-gram和考慮詞序特征,并引入subword來處理長詞,處理未登錄詞問題,比CBOW具有更快的效率。
針對上述問題,本文提出一種基于Borderline-Smote算法改進(jìn)的FastText中文情感極性分析模型,在輸入層通過用中文分詞進(jìn)行關(guān)鍵詞提取和去掉停用詞,對帶零向量的無意義數(shù)據(jù)進(jìn)行隔離后,用Borderline-Smote算法對數(shù)據(jù)進(jìn)行樣本過采樣,最后通過FastText模型進(jìn)行交叉驗證,得出文本的中文情感極性分析結(jié)果,驗證其對中文文本情感極性方面的分析效果。
現(xiàn)有的基于情感詞典的分類方式構(gòu)造分類器的局限性大且代價高;基于機(jī)器學(xué)習(xí)的分類模型表現(xiàn)雖好,但在準(zhǔn)確率上仍有待提高;基于深度學(xué)習(xí)方法需要在訓(xùn)練模型上消耗巨大計算資源與時間。盡管FastText在分類應(yīng)用中的表現(xiàn)比較好,但仍有許多可改進(jìn)的地方。馮勇等[6]針對FastText在短文本中的應(yīng)用,提出了融合TF-IDF和LDA的中文FastText短文本分類方法,在中文短文本分類方面具有更高的精確率。屈渤浩[7]提出基于TF-IDF算法和帶有可變時間窗口的LDA主題模型對FastText進(jìn)行改進(jìn),使其適用于中文短文本分類,提高了分類性能。陰愛英等[8]通過去除FastText模型中單詞前后綴標(biāo)記符,減少無用分解對模型預(yù)測產(chǎn)生干擾,提高了FastText在單詞關(guān)系評分、語義相似性、句法相似性等的準(zhǔn)確率。李澤龍[9]通過引入基于樸素貝葉斯的糾錯器和關(guān)鍵語句塊加權(quán)模,建立了FastText長文本分類模型,保持高速訓(xùn)練和預(yù)測的同時還有著較好的分類效果。郭捷[10]提出FastText算法與分類器結(jié)合的方式進(jìn)行情感分類,建立情感分析系統(tǒng),在分類上有較好的表現(xiàn)。上述針對FastText的一些改進(jìn)點都做了相關(guān)工作并得到驗證,目前來看還沒有相關(guān)人員在不平衡數(shù)據(jù)對FastText的產(chǎn)生影響這一塊進(jìn)行相關(guān)的研究,本文針對這一問題主要研究不平衡語料下FastText分類效果。
不平衡數(shù)據(jù)集凸顯特征是其分布不平衡性,即多數(shù)類樣本的數(shù)量遠(yuǎn)多于少數(shù)類樣本,以致各類樣本比例出現(xiàn)極不平衡,即數(shù)據(jù)傾斜[11-12],會引起FastText在情感極性分析中的誤判。在大量數(shù)據(jù)下如果負(fù)樣本數(shù)在數(shù)量上是正樣本數(shù)的5倍以上,訓(xùn)練后的模型對負(fù)樣本的判斷比較準(zhǔn)確,對正樣本判別能力微弱。傳統(tǒng)的總體分類算法過分關(guān)注多類處理,卻忽略少數(shù)類樣本的分類的性能精準(zhǔn)度。面對不平衡的數(shù)據(jù)集,有兩種處理的策略,分別為過采樣和欠采樣。依據(jù)具體的業(yè)務(wù)場景與用例,在不影響原始數(shù)據(jù)的前提下,過采樣方式既能保證前提的存在,又能處理不平衡的情況。經(jīng)典的過采樣技術(shù)有簡單的隨機(jī)采樣技術(shù)和解決簡單復(fù)制少數(shù)樣本過擬合的基于線性直插方式的Smote[13]算法,通過在少數(shù)類樣本及其近鄰間線性插值合成新樣本。但實踐表明Smote在少數(shù)樣本合成新樣本時,還是有樣本重疊的存在,主要是在過采樣過程中沒有考慮鄰近樣本的分布特點、使類間發(fā)生重疊的可能性增大,以至于過度泛化問題的出現(xiàn)。Borderline-Smote是Smote的改進(jìn)算法,只對少數(shù)類的邊界樣本進(jìn)行過采,通過進(jìn)一步對邊界樣本加以區(qū)分,對不同的邊界樣本生成不同數(shù)目的合成樣本,讓合成的樣本更具合理性,進(jìn)而改善訓(xùn)練模型的準(zhǔn)確率[14-15]。
此外,中文文本的涉及領(lǐng)域廣會對文本分類的結(jié)果產(chǎn)生一定的影響[16],針對不平衡數(shù)據(jù)和涉及領(lǐng)域廣對FastText分析結(jié)果產(chǎn)生影響的問題,本文提出基于Borderline-Smote算法的改進(jìn)FastText中文情感極性分析模型,在由Kesci提供的25 000條極性電影評論訓(xùn)練集和25 000條測試數(shù)據(jù)集中進(jìn)行實驗對比,驗證了該模型的有效性。
本文針對涉及領(lǐng)域廣且不平衡的中文文本情感極性分析,在FastText基礎(chǔ)上,在輸入層引入Borderline-Smote、 pkuseg中文分詞等預(yù)處理方式,實現(xiàn)中文文本情感極性分析?;贐orderline-Smote算法的改進(jìn)FastText中文情感分析模型架構(gòu)設(shè)計如圖1所示。
圖1 改進(jìn)的FastText中文情感分析模型
FastText是Facebook在2016年提出的一種開源的基于Word2vec的一個文本分類器[16-17],引入了N-Gram特征和Hierarchical Softmax。相比SVM、RNN等模型,F(xiàn)astText既能保持好的分類效果的同時,又能大幅度加快分類的訓(xùn)練速度,該模型在多核處理器下10分鐘內(nèi)處理超過10億個詞匯,此特性適用于大數(shù)據(jù)下需要高效訓(xùn)練速度的場景。此外還適配了多種語言的形態(tài)結(jié)構(gòu),包括英語、德語、西班牙語、法語以及捷克語等;專注于文本分類,比目前最流行的詞態(tài)詞匯表征要好,在許多標(biāo)準(zhǔn)問題上表現(xiàn)較好。
FastText包含模型架構(gòu)、Softmax和N-gram三部分,通過將輸入序列轉(zhuǎn)化為特征向量,進(jìn)行特定的線性轉(zhuǎn)化后映射給隱藏層,隱藏層再進(jìn)行處理得到類別及其概率。該模型架構(gòu)是基于CBOW模型進(jìn)行優(yōu)化的,區(qū)別是CBOW是預(yù)測中間詞,F(xiàn)astText是預(yù)測標(biāo)簽,兩者都是基于Hierarchical Softmax。標(biāo)準(zhǔn)的Softmax計算類別的Softmax概率時,需要進(jìn)行耗時的歸一化的處理,因此通過研究采用類別的頻率來構(gòu)造Huffman Tree的Hierarchical Softmax來代替標(biāo)準(zhǔn)Softmax。FastText在對文本進(jìn)行預(yù)測Label時在隱藏層沒采用非線性激活函數(shù)處理,因此更高效。FastText的模型如圖2所示。
圖2 FastText模型
原生FastText直接應(yīng)用到情感極性分析上,輸出結(jié)果不佳。通過在輸入層采用重采樣策略,解決樣本數(shù)據(jù)分布不平衡的問題,從而提高算法的分類準(zhǔn)確性。隨機(jī)過采樣方法是重采樣中比較簡單實用的,但該方法不能給予樣本新的信息, 反而可能會導(dǎo)致過擬合。Chawla等提出了Smote,通過一定的策略進(jìn)行合成少數(shù)類樣本,從而達(dá)到平衡數(shù)據(jù)的目的。
Smote算法仍屬于是建立在相距較近的少類樣本之間樣本的假設(shè)基礎(chǔ)之上,還沒有充分考慮鄰近樣本的分布特點,會造成類間發(fā)生重復(fù)性的可能性較大,而采用識別少類種子樣本的Borderline-Somte算法可以避免這種重復(fù)性的發(fā)生?;谶吔缟蠘颖镜暮铣蓸颖驹砣鐖D3所示。
圖3 基于邊界上樣本的數(shù)據(jù)合成
假設(shè)S為樣本集,Smin為少類樣本集,Smaxj為鄰近的多數(shù)樣本集,m為鄰近樣本個數(shù),xi為該樣本的全部屬性,xij為鄰近樣本全部屬性,xn為鄰近樣本,Rij取0.5或1,合成算法步驟如下。
步驟1假設(shè)每一個xi∈Smin, 確定與其最鄰近的樣本集,其數(shù)據(jù)集為SNN,且SNN∈S。
步驟2對每一個樣本xi,判斷最鄰近屬于多數(shù)樣本集的個數(shù),即|SNN∩Smaxj|。
在實際企業(yè)生產(chǎn)場景中數(shù)據(jù)傾斜是普遍存在的現(xiàn)象。構(gòu)建平衡數(shù)據(jù)分為三步。
(1) 對樣本數(shù)據(jù)進(jìn)行清洗,去停用詞后進(jìn)行分詞等。
(2) 將清洗后的數(shù)據(jù)樣本用KNN算法對少類樣本進(jìn)行分類。
(3) 通過hij=xi+dij×rand(0,Rij)合成新樣本生成滿足需求的平衡數(shù)據(jù)集。
基于Borderline-Somte算法改進(jìn)的FastText中文情感極性分析模型的可以分為四層:數(shù)據(jù)預(yù)處理層、輸入層、隱藏層和輸出層。在數(shù)據(jù)預(yù)處理層將數(shù)據(jù)構(gòu)建為平衡數(shù)據(jù)并打上標(biāo)簽,將單詞的字符級別的N-gram向量作為額外的特征傳遞給輸入層,在隱藏層處理后通過Softmax進(jìn)行輸出得到改進(jìn)后的模型。
對比分析SVM+TF-IDF、TextCNN、Smote+FastText和Borderline-Smote +FastText(本文)四種代表模型的準(zhǔn)確率、召回率、F1-measure和預(yù)測效率。
本文數(shù)據(jù)處理的分詞等技術(shù)是基于Python實現(xiàn),其中FastText算法使用Facebook的0.8.3版,訓(xùn)練與測試階段的環(huán)境由VMware Workstation Pro虛擬機(jī)搭建的Ubuntu環(huán)境運行,詳細(xì)環(huán)境配置,如表1所示。
表1 實驗環(huán)境配置
實驗數(shù)據(jù)由Kesci提供的25 000條極性電影評論作為訓(xùn)練集,另外25 000條用于測試數(shù)據(jù)集,還有包含其他尚未標(biāo)記的數(shù)據(jù)集、原始的文本和已處理的單詞袋,其內(nèi)容涉及領(lǐng)域十分廣泛。數(shù)據(jù)預(yù)處理的分詞處理由pkuseg負(fù)責(zé),主要是其在第二屆國際漢語分詞比賽中擁有中文領(lǐng)域的廣泛性,All Average表現(xiàn)最好;預(yù)處理的去停用詞借助哈工大實驗室1 213個停用詞,剔除沒明確感情傾向的語氣詞等,最后將潛藏的詞向量為零進(jìn)行隔離,具體的評論格式,如表2所示。
表2 電影評論樣本格式
本文實驗采用3種文本分類領(lǐng)域常用的指標(biāo),分別為準(zhǔn)確率、召回率和F1-measure,來對實驗結(jié)果進(jìn)行科學(xué)的評價。準(zhǔn)確率就是對于預(yù)測結(jié)果,預(yù)測中文文本情感樣本中有哪些是真正的正向評價,則準(zhǔn)確率P的計算式表示為:
(1)
召回率R是相對原始樣本的,表示樣本中的正類多少能被預(yù)測,存在兩種情況,第一種就是將的正類預(yù)測為正類,記該預(yù)測的樣本數(shù)為Tp,另外一種是將原始的正類預(yù)測為相反的,記該類的樣本數(shù)為Fn,因此召回率的計算式表示為:
(2)
F1-measure稱為F1值,用來評價分類效果的綜合指標(biāo),是綜合了準(zhǔn)確率和召回率,F(xiàn)1值的計算式表示為:
(3)
本文采用Python語言實現(xiàn)傳統(tǒng)SVM+TF-IDF、TextCNN、Smote+FastText和基于Borderline-Smote算法的改進(jìn)FastText情感分析四種模型進(jìn)行對比。為了充分發(fā)揮FastText的優(yōu)勢,在本次實驗前將原始的50 000條數(shù)據(jù)集拆分為 5 等份,其中訓(xùn)練數(shù)據(jù)集占4份,剩余1份歸測試數(shù)據(jù)集所有,利用交叉檢驗的方式,經(jīng)過多次的單一變量控制法進(jìn)行實驗。實驗結(jié)果表明FastText在train_supervised模式下,詞向量維度為100,上下文窗口為 4,迭代次數(shù)為4,詞語的最小出現(xiàn)次數(shù)為 2,損失函數(shù)loss選用Softmax,此時準(zhǔn)確率達(dá)到94.767%,其模型調(diào)參結(jié)果為最優(yōu),該模型準(zhǔn)確率較高,因此,從輸入層優(yōu)化的方向顯然是正確的。在相同的不平衡的極性語料中進(jìn)行實驗,對比不同模型下分類的準(zhǔn)確率、召回率和F1值和訓(xùn)練與預(yù)測的效率,實驗結(jié)果如表3和圖4所示, FastText簡寫為FT,其中Borderline-Smote+FastText、SVM+TF-IDF、TextCNN和Smote+FastText分別用簡寫為BS+FT、S+TI、TC和S+FT。
表3 模型預(yù)測效果評價值(%)
圖4 不同數(shù)據(jù)集規(guī)模下模型訓(xùn)練時間比較
從表3以及圖4中可以看出,使用原始數(shù)據(jù)的SVM分類器+TF-IDF詞向量模型的訓(xùn)練與預(yù)測效果有偏差,深度學(xué)習(xí)的TextCNN模型的中文文本情感極性分析是較好的,均接近80%左右的F1-measure,但耗時最長,原因在于該模型雖然在池化層通過TOP-K保留了全局序列信息,因數(shù)據(jù)集不同最佳狀態(tài)不唯一,模型的可解釋性不強(qiáng),很難根據(jù)訓(xùn)練的結(jié)果去針對性地調(diào)整具體的特征來得到特征重要度,導(dǎo)致訓(xùn)練和學(xué)習(xí)過程耗時?;诰€性直插的Smote+FastText因為預(yù)先通過Smote對傾斜數(shù)據(jù)進(jìn)行了預(yù)處理,通過引入N-grams思想,在中間層僅進(jìn)行簡化運算,在輸出層采用層次的Softmax方法,計算復(fù)雜度從O(V)降到O(logV),最后利用label頻次建立哈夫曼樹,進(jìn)行樹節(jié)點向量點乘,快速定位目標(biāo)label節(jié)點,有效解決少類樣本簡單復(fù)制造成的過擬合現(xiàn)象,因此相比前兩者表現(xiàn)較為優(yōu)秀。但是在數(shù)據(jù)傾斜明顯的情況下,Smote仍不能友好地應(yīng)對此類情況,與預(yù)估的期望會有些偏差,因此,引入更具適應(yīng)性的Borderline-Smote算法改進(jìn)輸入層的FastText模型,其所表現(xiàn)的準(zhǔn)確率、召回率和F1-measure值均達(dá)到88%左右,并且訓(xùn)練預(yù)測時間較短,因為在輸入層上做了充足的預(yù)處理方案,有效提升了準(zhǔn)確率、召回率和F1值,從實驗數(shù)據(jù)中證明該模型的改進(jìn)在中文文本情感極性分析上有一定的優(yōu)越性。
本文針對現(xiàn)有情感分析模型對涉及領(lǐng)域廣泛、數(shù)據(jù)集極易傾斜場景的中文文本情感極性分析的適應(yīng)性表現(xiàn)差的問題,提出基于Borderline-smote算法的改進(jìn)FastText中文情感分析模型。該模型在輸入層做停用詞、pkuseg分詞隔離零向量和語料傾斜處理,通過實驗驗證了該模型對中文情感領(lǐng)域廣泛和數(shù)據(jù)傾斜問題上有著良好的適應(yīng)性,在中文情感極性分析的整體表現(xiàn)上有一定的提升,但也存在轉(zhuǎn)折語句情感分析的準(zhǔn)確率不高的問題。下一步計劃引入自注意力機(jī)制,獲取轉(zhuǎn)折詞背后情感的更多語義,讓模型獲取更多的中文情感特征信息,進(jìn)一步提升分類的準(zhǔn)確率。