王德廣, 黃丹婷
(大連交通大學(xué), 軟件學(xué)院, 遼寧, 大連 116028)
如今微博作為國(guó)內(nèi)主流的社交媒體產(chǎn)品,憑借迅速獲取實(shí)時(shí)資訊、簡(jiǎn)潔方便的操作等優(yōu)勢(shì),其用戶量從2009年成立至今增長(zhǎng)迅速。用戶們?cè)趯?shí)時(shí)熱點(diǎn)下面發(fā)表自己的意見和建議,在自己的空間分享對(duì)某些事務(wù)的看法。隨著這些評(píng)論文本越來(lái)越多,分析用戶評(píng)論中帶有的情感色彩,不僅可以幫助各類企業(yè)分析出用戶的消費(fèi)心理,也可以及時(shí)地幫助政府了解大眾對(duì)社會(huì)熱點(diǎn)和輿情的情感傾向,進(jìn)而快速準(zhǔn)確地制定出解決問(wèn)題的有效方法,以免造成社會(huì)恐慌。
情感分析(sentiment analysis)是人們對(duì)想了解的商品、社會(huì)提供的服務(wù)、自身所處的環(huán)境及其關(guān)系屬性的各種情緒、評(píng)價(jià)和一系列心理態(tài)度等綜合計(jì)算分析的一種研究。該研究的快速發(fā)展與社交傳播媒體的迅猛發(fā)展有著相輔相成的關(guān)系,如論壇、博客、微博等平臺(tái)的發(fā)展,讓人們的情感和體會(huì)能夠有機(jī)會(huì)表達(dá)?,F(xiàn)有研究表明,情感分析和多項(xiàng)工作的技術(shù)中監(jiān)督方法和無(wú)監(jiān)督的方法被廣泛應(yīng)用。在監(jiān)督方法中,早期論文使用所有監(jiān)督機(jī)器學(xué)習(xí)方法(如支持向量機(jī)、最大熵、樸素貝葉斯等)和特征組合。無(wú)監(jiān)督方法包括使用情感詞典、語(yǔ)法分析和句法模式的不同方法?,F(xiàn)有多本綜述書籍和論文,廣泛地涵蓋了早期的方法和應(yīng)用。大約10年前,深度學(xué)習(xí)成為強(qiáng)大的機(jī)器學(xué)習(xí)技術(shù),在很多應(yīng)用領(lǐng)域產(chǎn)生了當(dāng)前最優(yōu)的結(jié)果,包括計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、NLP 等。近期將深度學(xué)習(xí)應(yīng)用到情感分析也逐漸變得流行[1]。
Logistic模型回歸數(shù)據(jù)模型分析又稱之為L(zhǎng)ogistic模型回歸數(shù)據(jù)分析,是一種基于廣義的二維線性模型回歸數(shù)據(jù)分析模型,常被廣泛應(yīng)用于對(duì)數(shù)據(jù)挖掘、文本數(shù)據(jù)分類、社會(huì)經(jīng)濟(jì)學(xué)數(shù)據(jù)預(yù)測(cè)等基礎(chǔ)研究應(yīng)用領(lǐng)域。通過(guò)對(duì)Logistic的各個(gè)回歸輸出進(jìn)行取值分析,可以幫助計(jì)算和得出一個(gè)邏輯上的回歸給出輸入中各個(gè)元素自變量的取值權(quán)重,從而可以使我們理解有哪些因素對(duì)回歸輸出值有所影響。
決策樹是(decision tree)是機(jī)器學(xué)習(xí)領(lǐng)域中具備易實(shí)現(xiàn)、易解釋、應(yīng)用廣泛的一種算法,以數(shù)據(jù)的屬性為判斷依據(jù)來(lái)得到分類或回歸的結(jié)果。
樸素貝葉斯(naive bayes, NB)具有扎實(shí)的數(shù)學(xué)基礎(chǔ)、低時(shí)長(zhǎng)的分類條件、較簡(jiǎn)單的操作等優(yōu)點(diǎn),NB分類器對(duì)結(jié)果的說(shuō)明很清晰并且表現(xiàn)強(qiáng)度和數(shù)據(jù)健壯性都比較高。當(dāng)數(shù)據(jù)集屬性之間的關(guān)系相對(duì)比較獨(dú)立時(shí),樸素貝葉斯分類算法會(huì)有較好的效果[2-3]。
給定B1,B2,…,Bn表示數(shù)據(jù)點(diǎn),那么該類型的數(shù)據(jù)點(diǎn)被表示為來(lái)自類別Ai的概率分解公式為
(1)
支持向量機(jī)(support vector machine, SVM)的一個(gè)基礎(chǔ)精度模型就是通過(guò)它來(lái)尋找在一個(gè)特征精度空間上同樣能夠?qū)⒕冗_(dá)到最好的一種分離超平面。SVM被廣泛用于處理二分類模型問(wèn)題。
隨機(jī)森林(random forest)是一種集成算法(integrated algorithm),簡(jiǎn)單來(lái)說(shuō)是將多個(gè)決策樹捆綁在一起就得到了一個(gè)隨機(jī)森林。將數(shù)據(jù)分出不同的結(jié)果,進(jìn)行投票得出平均值作為最終結(jié)果輸出。隨機(jī)森林的工作原理如圖1所示。
圖1 隨機(jī)森林原理
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是一種使用多個(gè)卷積核進(jìn)行計(jì)算操作的前饋神經(jīng)網(wǎng)絡(luò)[4]。CNN將神經(jīng)網(wǎng)絡(luò)的模型劃分為多個(gè)層級(jí),主要由輸入層、卷積管理層、池化管理層、全連接管理層和輸出管理層等5個(gè)部分共同完成。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)是一類以序列(sequence)數(shù)據(jù)為輸入,在序列的演進(jìn)方向進(jìn)行遞歸(recursion)且所有節(jié)點(diǎn)(循環(huán)單元)按鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network)[5]。
RNN對(duì)于短期記憶效果很好,但是結(jié)構(gòu)較為簡(jiǎn)單,難以勝任長(zhǎng)期記憶任務(wù),運(yùn)算效率低下。長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory, LSTM)[6]是RNN模型的改進(jìn),通過(guò)對(duì)“循環(huán)體”進(jìn)行刻意設(shè)計(jì)來(lái)克服RNN的缺陷。LSTM是一組特殊的分層記憶處理模塊,將單元直接自動(dòng)替換為基于遞歸記憶神經(jīng)網(wǎng)絡(luò)的多個(gè)隱藏和分層記憶神經(jīng)元,這些記憶模塊單元能夠直接用來(lái)自動(dòng)記憶整個(gè)隱藏層任何一個(gè)層的時(shí)間和梯度狀態(tài),從而有效解決時(shí)間梯度信息消失等復(fù)雜問(wèn)題。
循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(recurrent convolutional neural network, RCNN)將卷積神經(jīng)網(wǎng)絡(luò)的卷積層替換為內(nèi)部具有遞歸結(jié)構(gòu)的循環(huán)卷積層(recurrent convolutional layer, RCL),并按前饋連接建立深度結(jié)構(gòu)[7]。RCNN在文本表示上與RNN有所區(qū)別,不是直接使用最后時(shí)間進(jìn)一步的隱狀態(tài)作為文本表示,而是用max-pooling層進(jìn)行特征選擇。
數(shù)據(jù)來(lái)源于新浪微博網(wǎng)友對(duì)熱點(diǎn)事件的評(píng)論,用到的算法分別為機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法。機(jī)器學(xué)習(xí)算法包括:Logistic、Decision Tree、NB、SVM、Random Forest和集成模型,深度學(xué)習(xí)算法包括:CNN、RNN和RCNN算法。傳統(tǒng)機(jī)器學(xué)習(xí)模型準(zhǔn)確率低但效率高,深度學(xué)習(xí)模型可以有效提高準(zhǔn)確率等指標(biāo)但用時(shí)很久。為了將二者的性能取長(zhǎng)補(bǔ)短得到最優(yōu)的算法,將機(jī)器學(xué)習(xí)算法與深度學(xué)習(xí)算法分別進(jìn)行集成后得到各項(xiàng)指標(biāo)結(jié)果的對(duì)比,找出機(jī)器學(xué)習(xí)中準(zhǔn)確率最高的模型作為輸入,將深度學(xué)習(xí)效果最好的集成模型RCCR與之結(jié)合,得到的最優(yōu)分類器與其他分類器進(jìn)行各項(xiàng)指標(biāo)評(píng)估對(duì)比,以此實(shí)現(xiàn)對(duì)算法性能的改進(jìn)。模型設(shè)計(jì)如圖2所示。
圖2 模型設(shè)計(jì)圖
八爪魚網(wǎng)頁(yè)采集器是網(wǎng)絡(luò)爬蟲的一種。用戶可以設(shè)置從哪個(gè)網(wǎng)站爬取數(shù)據(jù),爬取哪些數(shù)據(jù),爬取什么范圍的數(shù)據(jù),什么時(shí)候去爬取數(shù)據(jù),爬取的數(shù)據(jù)如何保存,等等。八爪魚采集系統(tǒng)是一款免費(fèi)網(wǎng)絡(luò)爬蟲軟件,系統(tǒng)采用分布式云構(gòu)架,聯(lián)合客戶要求,整個(gè)系統(tǒng)部署在騰訊云平臺(tái)之上[8]。
采集的數(shù)據(jù)主要來(lái)源于熱點(diǎn)事件微博用戶評(píng)論,其中包括正向評(píng)論、中性評(píng)論和負(fù)向評(píng)論。情感傾向和語(yǔ)料分布見表1、表2。
表1 部分評(píng)論展示及情感傾向
表2 語(yǔ)料庫(kù)分布概況
接下來(lái),把所有的數(shù)據(jù)按順序進(jìn)行打亂和重排,并將所有的數(shù)據(jù)劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集,比例為0.7∶0.2∶0.1。
3.1.1 數(shù)據(jù)清洗
用戶在微博評(píng)論時(shí)內(nèi)容會(huì)存在重復(fù)、繁體字、特殊字體等情況。在進(jìn)行實(shí)驗(yàn)之前,需要對(duì)數(shù)據(jù)進(jìn)行處理。
(1) 數(shù)據(jù)去重,重復(fù)的評(píng)論只保留1條。
(2) 將繁體字用簡(jiǎn)體字替換,使用開源庫(kù)opencc來(lái)進(jìn)行繁簡(jiǎn)轉(zhuǎn)化。
(3) 正確標(biāo)注每個(gè)詞語(yǔ)的詞性,即確定每個(gè)詞是名詞、動(dòng)詞、形容詞或其他詞性。
(4) 去除停用詞,刪掉那些對(duì)情感分析沒(méi)有幫助的冗余詞匯。
3.1.2 分詞、詞性標(biāo)注及詞頻統(tǒng)計(jì)
主要使用jieba進(jìn)行中文分詞標(biāo)注,具有高性能、準(zhǔn)確率、可擴(kuò)展性等特點(diǎn)。針對(duì)詞頻的統(tǒng)計(jì)與分析,可以看出微博用戶對(duì)熱點(diǎn)事件評(píng)論時(shí)最常使用的話語(yǔ)。部分詞頻統(tǒng)計(jì)結(jié)果如圖3、圖4所示。
圖3 動(dòng)詞詞頻統(tǒng)計(jì)
圖4 形容詞詞頻統(tǒng)計(jì)
從圖3、圖4可以看出,用戶們對(duì)不同事件會(huì)發(fā)表不同的看法。積極的、中性的和消極的情緒可能會(huì)存在于同一熱點(diǎn)問(wèn)題上。
用gridsearch遍歷模型參數(shù),分別選擇最優(yōu)的Logistic、Decision Tree、NB、SVM、Random Forest模型。模型參數(shù)如表3所示。
表3 機(jī)器學(xué)習(xí)模型參數(shù)
分別訓(xùn)練CNN模型、RNN模型和RCNN模型進(jìn)行文本的情感分析。
CNN的卷積核大小分別為2、3和4,即CNN可以提取到bi-gram、tri-gram和four-gram的信息,卷積核數(shù)量為32。模型結(jié)構(gòu)如圖5所示。
圖5 CNN模型結(jié)構(gòu)
RNN中雙向LSTM的隱藏層大小為32,隱藏層層數(shù)為2層。將正向LSTM的輸出和反向LSTM的輸出拼在一起,經(jīng)過(guò)全連接層和softmax層后輸出結(jié)果。模型結(jié)構(gòu)如圖6所示。
圖6 RNN模型結(jié)構(gòu)
RCNN模型與經(jīng)典結(jié)構(gòu)有所不同。本項(xiàng)目采用LSTM隱藏層神經(jīng)元的個(gè)數(shù)為32,隱藏層數(shù)為2層,并將詞向量與LSTM輸出鏈接在一起,經(jīng)過(guò)max-pooling層提取特征后輸出分類結(jié)果。模型結(jié)構(gòu)如圖7所示。
圖7 RCNN模型結(jié)構(gòu)
三者都采用Adam優(yōu)化算法進(jìn)行優(yōu)化,學(xué)習(xí)率設(shè)置為1e-4,epoch設(shè)置為20。
3.3.1 分類算法評(píng)價(jià)指標(biāo)
為明確不同分類器的優(yōu)缺點(diǎn),應(yīng)先了解怎樣計(jì)算評(píng)價(jià)指標(biāo)。TP 代表將正類樣本判斷為正類的數(shù)量,F(xiàn)N代表將正類樣本判斷為負(fù)類的數(shù)量,F(xiàn)P 代表將負(fù)類樣本判斷為正類的數(shù)量,TN 代表將負(fù)類樣本判斷為負(fù)類的數(shù)量。通過(guò)計(jì)算得到相對(duì)應(yīng)的精確率、準(zhǔn)確率、召回率和f1值,計(jì)算公式分別如下:
(3)
(4)
(5)
(6)
為了驗(yàn)證本文提出的傳統(tǒng)機(jī)器學(xué)習(xí)模型與深度學(xué)習(xí)模型準(zhǔn)確率對(duì)比的結(jié)果,將單一的機(jī)器學(xué)習(xí)模型(邏輯回歸、決策樹、樸素貝葉斯、支持向量機(jī)和隨機(jī)森林)與集成模型1(決策樹+樸素貝葉斯+邏輯回歸)、集成模型2(支持向量機(jī)+邏輯回歸+決策樹)和集成模型3(支持向量機(jī)+邏輯回歸+決策樹+樸素貝葉斯)進(jìn)行測(cè)試結(jié)果比對(duì),結(jié)果見表4。
表4 機(jī)器學(xué)習(xí)模型和其集成模型測(cè)試結(jié)果
由表4可知,集成模型1的accuraty最高,樸素貝葉斯的precision最高,集成模型1和支持向量機(jī)的recall最高,決策樹f1的 score最高,基于準(zhǔn)確率高的前提下集成模型1的用時(shí)最短。
基于RNN和CNN單一分類器、RCNN分類器以及RCCR分類器進(jìn)行了4組實(shí)驗(yàn),分析深度學(xué)習(xí)模型各項(xiàng)指標(biāo),得到實(shí)驗(yàn)結(jié)果如表5所示。
表5 深度學(xué)習(xí)模型和集成模型測(cè)試結(jié)果
由表5可知,集成模型RCCR因?yàn)榫C合了RNN、CNN和RCNN的優(yōu)點(diǎn),準(zhǔn)確率有了明顯的提升,缺點(diǎn)是用時(shí)隨著準(zhǔn)確率的提升也明顯增加了。
選取機(jī)器模型中準(zhǔn)確率最高,用時(shí)最少的集成模型1與深度學(xué)習(xí)模型中準(zhǔn)確率最高,但用時(shí)最多的集成模型RCCR進(jìn)行結(jié)合,得到各項(xiàng)性能最優(yōu)的模型best1,結(jié)果見表6。
表6 best1測(cè)試結(jié)果
通過(guò)表6可以看出,將集成模型1和RCCR相結(jié)合之后的算法best1,不僅中和了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型的缺點(diǎn),而且提高了準(zhǔn)確率并且有效地縮短了用時(shí),新的模型相對(duì)機(jī)器學(xué)習(xí)算法準(zhǔn)確率提高了近20%,所用時(shí)長(zhǎng)相對(duì)于深度學(xué)習(xí)集成模型也縮短了近二分之一。
從評(píng)估結(jié)果的對(duì)比可以看出,深度學(xué)習(xí)的評(píng)估值均優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)模型,但是在效率性能方面深度學(xué)習(xí)模型卻遠(yuǎn)遠(yuǎn)不如傳統(tǒng)機(jī)器學(xué)習(xí)模型。在進(jìn)行了一系列的實(shí)驗(yàn)后,最終將深度學(xué)習(xí)模型與機(jī)器學(xué)習(xí)模型相整合,得到的best1模型不但有效提升了文本分類的準(zhǔn)確率而且可以中和深度學(xué)習(xí)耗時(shí)久的缺點(diǎn),這樣得出的分類器才可以更好地被應(yīng)用。
本文對(duì)數(shù)據(jù)的大小和復(fù)雜性沒(méi)有做出較為深入的研究,會(huì)存在其他因素影響到文本劃分的準(zhǔn)確度。利用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法及模型集成,可以對(duì)微博評(píng)論做出情感分析,判斷該條評(píng)論整體是呈現(xiàn)消極還是積極的情感態(tài)度,并且經(jīng)過(guò)反復(fù)對(duì)比優(yōu)化后得到準(zhǔn)確率高的分類器可以保存并運(yùn)用在其他微博評(píng)論中,達(dá)到智能、高效的輿情管控及情緒引導(dǎo)效果。