任偉建,劉圓圓,計 妍,康朝海
(東北石油大學(xué) a.電氣信息工程學(xué)院;b.黑龍江省網(wǎng)絡(luò)化與智能控制重點實驗室,黑龍江 大慶 163318)
隨著社交媒體的快速發(fā)展,以微博為載體的新聞傳播途徑也受到了越來越多媒體人的青睞。2020年初發(fā)生新冠肺炎疫情后,以微博為代表的社交媒體實時記錄疫情蔓延情況和各地戰(zhàn)役情況的新聞報道,其在宣傳防疫措施等方面發(fā)揮了重要作用。各級政府紛紛選擇注冊官方微博賬號,及時發(fā)布疫情相關(guān)信息,網(wǎng)民在評論區(qū)發(fā)表個人的看法,表達個人的觀點和態(tài)度[1]。由于微博網(wǎng)民人數(shù)眾多,時效性強,可代表大多數(shù)人的觀點。筆者針對新冠肺炎疫情發(fā)生以來的相關(guān)微博話題以及評論進行情感分析,深度分析處于疫情不同期間,不同地點,網(wǎng)民們的情緒變化。
情感分析又稱情感傾向性分析或意見挖掘,是從用戶建議中提取信息的過程,通過文本、音頻、圖像獲取用戶的看法、態(tài)度以及情感等[2]。目前,情感分析方法可分兩大類:基于情感詞典與規(guī)則的方法和基于機器學(xué)習(xí)的方法。
基于情感詞典和規(guī)則的方法是利用構(gòu)建的情感詞典獲取文本中與情感相關(guān)詞的加權(quán)情感值,并通過該值確定文本的情感傾向。中文情感詞典應(yīng)用的比較廣泛的有知網(wǎng)詞典HowNet、臺灣大學(xué)的NTUSD(National Taiwan University School of Dentistry)和大連理工大學(xué)的中文情感詞匯本體庫[3]等。在數(shù)據(jù)缺乏的情況下,基于情感詞典與規(guī)則的方法可取得較好的分類結(jié)果[4],但情感詞典也存在一定的局限性,針對不同領(lǐng)域需要構(gòu)建不同的情感詞典,對不同領(lǐng)域,情感分類效果也有很大差距。
基于機器學(xué)習(xí)的方法,通過訓(xùn)練帶有標(biāo)簽的數(shù)據(jù),得到一個情感分類器,再預(yù)測測試集中句子的情感傾向,常用的機器學(xué)習(xí)算法有決策樹、樸素貝葉斯和支持向量機[5]等。李銳等[6]對公開的微博情感分析語料對詞向量進行加權(quán),利用SVM(Support Vector Machine)模型進行訓(xùn)練,得到情感極性分類評估指標(biāo)F1為89.35%。Britzolakis等[7]利用多個機器學(xué)習(xí)算法對推特上的新聞進行情感分析,都達到了較好的分類效果。與基于情感詞典與規(guī)則的方法相比,機器學(xué)習(xí)的方法更簡單,效果更好,但機器學(xué)習(xí)會忽略文本之間的相關(guān)性,分類效果一般。深度學(xué)習(xí)是機器學(xué)習(xí)的一種,含有多個隱藏層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。Collobert等[8]將卷積神經(jīng)網(wǎng)絡(luò)引入了自然語言處理中的許多任務(wù)中,并證明了其提出的模型在各項任務(wù)中都獲得了很好的表現(xiàn);但在傳統(tǒng)CNN(Convolation Neural Networks)深度模型中,卷積濾波器的詞容量有限,導(dǎo)致其無法捕捉到句子中的詞語間的長距離依賴關(guān)系。Socher等[9]提出使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN:Recursive Neural Network),對文本進行更細(xì)致的分析,通過實踐,傳統(tǒng)RNN在解決長序列之間的關(guān)聯(lián)時表現(xiàn)很差,原因是在進行反向傳播時,過長的序列導(dǎo)致梯度的計算異常,發(fā)生梯度消失或爆炸。
筆者提出一種聯(lián)合的模型架構(gòu),該模型將循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與長短期記憶(LSTM:Long Short-Term Memory)網(wǎng)絡(luò)連接,并在疫情語料庫上進行情感分析測試。經(jīng)過多次訓(xùn)練后,發(fā)現(xiàn)該模型在訓(xùn)練大語料時速度相比傳統(tǒng)的深度學(xué)習(xí)算法有了很大的提高。而且經(jīng)過RNN層處理后的文本大大的降低了詞向量的維度,彌補了單一的RNN模型在處理長序列問題時的不足,使LSTM層能更快速、更準(zhǔn)確地得出情感分析的結(jié)果。
為實現(xiàn)對微博文本的情感分析,筆者選擇Word-Embedding編碼方式[10],即詞向量模式,表示微博用戶的評論數(shù)據(jù)。自然語言處理中常用的編碼方式是one-hot編碼方式,但是這種方式每個詞都需要占用很多空間,并且無法反映詞匯之間的相關(guān)性。
FastText模型[11]是基于skip-gram基礎(chǔ)上加以改進,對輸入上下文的每個詞匯采用基于詞n-gram格式進行分解,并將分解處理后的所有單詞n-gram和原詞進行相加,代表上下文的語義信息,假設(shè)通過分解后得到n-gram的字典大小為G,對一個詞匯w,記gw∈{1,…,G}為出現(xiàn)在詞匯w中所有n-gram集合。對每個n-gram序列g(shù)使用向量Zg進行表示,因此評分函數(shù)為
(1)
其中vc是上下文詞向量序列。
FastText模型輸入一個詞的序列(一段文本或一句話),輸出這個詞序列屬于不同類別的概率[12-14]。序列中的詞和詞組組成特征向量,其通過線性變換映射到中間層,中間層再映射到標(biāo)簽。FastText在預(yù)測標(biāo)簽時使用了非線性激活函數(shù),但在中間層不使用非線性激活函數(shù)。采用FastText預(yù)訓(xùn)練模型對詞匯進行詞嵌入表示可以大大減少one-hot編碼帶來的冗余和稀疏問題。FastText模型如圖1所示。
圖1 FastText模型結(jié)構(gòu)Fig.1 FastText model structure
筆者首先利用jieba分詞,將整句的文本分成詞語和詞語之間的組合,再利用FastText模型轉(zhuǎn)化為詞向量。
為實現(xiàn)中文微博情感分析,筆者提出了對LSTM進行改進后的深度學(xué)習(xí)模型。該模型融合了RNN和LSTM模型。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)(包括CNN),輸入和輸出都是互相獨立的,不能很好地考慮上下文之間的聯(lián)系,但RNN引入“記憶”的概念,能記錄序列前的信息,簡單看,就是把序列按時間展開,如圖2所示。
圖2 典型RNN網(wǎng)絡(luò)Fig.2 Typical RNN network
其中Xt是時刻t處的輸入,St是時間t時的“記憶”,St=(UXt+WSt-1),f可以是tanh等激活函數(shù)。Ot是時間t處的輸出,比如在預(yù)測下個詞時,softmax輸出屬于每個候選詞的概率??梢园央[藏狀態(tài)St視作“記憶體”,捕捉了之前時間點上的信息。輸出Ot由當(dāng)前時間及之前所有的“記憶”共同計算得到。不同于CNN,這里的RNN其整個神經(jīng)網(wǎng)絡(luò)都共享一組參數(shù)(U,V,W),極大地減小了需要訓(xùn)練和預(yù)估的參數(shù)量。
在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,各個網(wǎng)絡(luò)層無法進行參數(shù)共享[15]。而在循環(huán)神經(jīng)網(wǎng)絡(luò)中,由于循環(huán)神經(jīng)網(wǎng)絡(luò)的每個步驟都是做相同的工作,僅是輸入不同,因此,每輸入一步各層之間參數(shù)共享,則在網(wǎng)絡(luò)中循環(huán)神經(jīng)網(wǎng)絡(luò)需要學(xué)習(xí)的參數(shù)就會減少,所需的訓(xùn)練時間會大幅減少。使用循環(huán)神經(jīng)網(wǎng)絡(luò)判別某句話的情感色彩,無需知道每個步長的輸出,僅需要知道最后步長的輸出,循環(huán)神經(jīng)網(wǎng)絡(luò)的核心是隱藏層能捕捉序列信息。
上面給出的RNN模型解決了對之前的信息保存的問題,但存在長期依賴的問題,隨著時間間隔不斷增大,儲存的信息會無法連接,也就是說記憶容量有限。LSTM其實是RNN的一種,RNN-LSTM相較于傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò),它從設(shè)計上就避免了時序數(shù)據(jù)預(yù)測過程中長短時依賴問題,而設(shè)計的關(guān)鍵就是隱藏層中獨特的記憶單元。圖3為 RNN-LSTM 隱藏層記憶單元結(jié)構(gòu),該結(jié)構(gòu)包含了3種門,分別是輸入門(Input Gate)、遺忘門(Forget Gate)和輸出門(Output Gate)。
圖3 RNN-LSTM隱藏層記憶單元結(jié)構(gòu)Fig.3 RNN-LSTM hidden layer memory cell structure
將RNN-LSTM 隱藏層記憶單元結(jié)構(gòu)比作一個記憶細(xì)胞(memory cell),該細(xì)胞控制著記憶單元中信息的傳播途徑。A區(qū)域表示遺忘區(qū),遺忘門(Forget Gate)接收來自上一時刻隱藏層的輸出(ht-1)和當(dāng)前時刻輸入(Xt)并決定丟棄當(dāng)前狀態(tài)下部分信息;B區(qū)域表示更新區(qū),其決定了當(dāng)前狀態(tài)需要存儲的新信息,并完成記憶細(xì)胞的信息更新;C區(qū)域表示輸出區(qū),輸出門(Output Gate)決定了當(dāng)前狀態(tài)下細(xì)胞輸出的內(nèi)容。
經(jīng)過上述分析,當(dāng)輸入的文本向量為X=[x1,x2,…,xn]時,LSTM的具體流程如下。
it=σ(Wi[ht-1,xt]+bi)
(2)
(3)
ft=σ(Wfxt+Ufht-1+bf)
(4)
(5)
第3步上述記憶狀態(tài)單元都更新完畢后,計算輸出門的值,具體公式如下
ot=σ(Woxt+Uoht-1+VoCt+bo)
(6)
ht=ottanh(Ct)
(7)
綜上,將RNN和LSTM進行融合,RNN-LSTM模型通過門的控制,解決了時序數(shù)據(jù)預(yù)測過程中長短時依賴問題,這對于長時段歷史數(shù)據(jù)預(yù)測研究有很大的幫助。結(jié)構(gòu)如圖4所示,主要由輸入層、RNN層、Dropout層、LSTM層和全連接層組成。
文化與旅游產(chǎn)業(yè)融合是指兩大產(chǎn)業(yè)之間相互交叉滲透而使產(chǎn)業(yè)邊界模糊化,出現(xiàn)新型交融業(yè)態(tài)的過程。旅游產(chǎn)業(yè)結(jié)構(gòu)升級是指產(chǎn)業(yè)結(jié)構(gòu)由低階向高階的演進過程,主要體現(xiàn)在要素資源的流動與配置所產(chǎn)生的生產(chǎn)率提升效應(yīng)。旅游產(chǎn)業(yè)結(jié)構(gòu)的變動通常與消費需求、技術(shù)水平、空間要素緊密相關(guān),而文化與旅游產(chǎn)業(yè)融合又是影響文化旅游消費、技術(shù)創(chuàng)新和空間集聚的重要因素。因此,本文主要從需求擴展路徑、技術(shù)創(chuàng)新路徑、協(xié)同集聚路徑來剖析文化與旅游業(yè)融合對旅游產(chǎn)業(yè)升級的作用機制。
筆者模型的整體流程如圖5所示,首先對輸入的文本通過FastText模型進行詞向量化,將句子轉(zhuǎn)換為詞向量后輸入到RNN-LSTM模型,得到情感分析結(jié)果。
Scrapy是Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)[16]。筆者利用此框架對微博上關(guān)于疫情的評論和話題進行爬取。
為了能爬取數(shù)據(jù),首先查看瀏覽器發(fā)送給微博服務(wù)器的Request請求和服務(wù)器返回給瀏覽器的Response響應(yīng),尋找Request請求中網(wǎng)址中的相同點并總結(jié)出規(guī)律,然后運用Scrapy爬蟲框架編寫多個Request請求模仿瀏覽器的請求,最終獲得數(shù)據(jù)。
筆者要針對全國網(wǎng)民在微博上發(fā)布的關(guān)于疫情的評論進行情感分析,所以分別對每個省的評論進行了爬取,共爬取全國34個地區(qū)關(guān)于疫情的微博評論。爬取的時間為2020年1月1日-2021年3月1日,總計爬取了3萬多條數(shù)據(jù)。
爬取到的評論,通過數(shù)據(jù)篩選、去除無效字符等數(shù)據(jù)清洗操作,共得到36 435條有效數(shù)據(jù),將數(shù)據(jù)分為兩大類:一類是積極的情感評論18 995條;另一類是消極的情感評論17 440條。數(shù)據(jù)標(biāo)簽的規(guī)定是:帶有開心、致敬、加油等字眼且句子整體是積極陽光的為積極評論,帶有失望、謠言等不滿厭惡的視為消極評論。樣本數(shù)據(jù)示例如表1所示。
表1 樣本數(shù)據(jù)Tab.1 Sample data
為驗證RNN-LSTM模型預(yù)測性能,該模型和基準(zhǔn)實驗在Windows10系統(tǒng)上進行,CPU為Intel(R)Xeon(R)Bronze 3204 CPU@1.90 GHz,GPU為Quadro P6000,使用Python3.6編程語言,采用FastText表示語義信息。
經(jīng)過多輪測試調(diào)優(yōu),具體模型超參數(shù)如下。
1) 迭代次數(shù)設(shè)置。通過多次實驗,模型在驗證集的準(zhǔn)確率大多在迭代50次之后基本不發(fā)生變化,所以將迭代次數(shù)設(shè)置為100。
2) Batchsize參數(shù)設(shè)置。實驗中多次增大Batchsize值,計算模型運行時間,選擇時間最為合適的Batchsize的值為64。
3) Dropout層參數(shù)設(shè)置。為避免模型過擬合,在模型中加入一層Dropout層,參數(shù)設(shè)置為0.2。
4) 損失函數(shù)設(shè)置。情感分析屬于一個分類問題,因此采用交叉熵作為損失函數(shù)。交叉熵公式為
(8)
5) 激活函數(shù)設(shè)置。實驗對比了Relu、Tanh、Sigmoid等激活函數(shù),發(fā)現(xiàn)Sigmoid激活函數(shù)效果最佳,得到的損失值更小。Sigmoid激活函數(shù)是極端情況下(二分類)下的Softmax。
6) 優(yōu)化器。選擇Adam作為優(yōu)化器優(yōu)化目標(biāo)函數(shù)。Adam使用動量和自適應(yīng)學(xué)習(xí)率加快收斂速度,其計算效率高,內(nèi)存需求少,非常適合數(shù)據(jù)或參數(shù)較大的問題。
筆者采用分類任務(wù)中常見的評估標(biāo)準(zhǔn):運用準(zhǔn)確率、召回率F1值和ROC(Receiver Operating Characteristic Curve)值對RNN-LSTM模型進行評估,混淆矩陣如表2所示。
表2 混淆矩陣Tab.2 Confusion matrix
具體評估方法如下:
1) 準(zhǔn)確率表示預(yù)測正確的樣本占總樣本的比重,計算公式如下
(9)
2) 召回率表示實際類別且預(yù)測類別都為正的樣本占所有實際類別為正的樣本比重,計算公式如下
(10)
3) F1值為準(zhǔn)確率和召回率的加權(quán)調(diào)和平均值,計算公式如下
(11)
筆者將訓(xùn)練數(shù)據(jù)的20%作為模型的驗證集,即29 148條數(shù)據(jù)作為訓(xùn)練集,7 287條數(shù)據(jù)作為驗證集。對比模型主要有3種,SVM模型、RNN模型和LSTM模型,利用這3種模型與筆者采用的RNN-LSTM模型進行訓(xùn)練結(jié)果進行對比。實驗中,對選定的數(shù)據(jù)集執(zhí)行相同的預(yù)處理步驟,此外,網(wǎng)絡(luò)初始參數(shù)相同,激活函數(shù)相同都為Sigmoid函數(shù)。評估指標(biāo)為準(zhǔn)確率、召回率、F1-score、ROC,實驗結(jié)果對比如表3所示。
表3 實驗結(jié)果對比Tab.3 Comparison of experimental results
通過表3可以發(fā)現(xiàn),筆者采用的模型框架RNN-LSTM模型較傳統(tǒng)的分類模型正確率更高,分類效果更好。較單一的RNN、LSTM模型,分類效果也得到了提升,以上實驗結(jié)果驗證了RNN-LSTM模型可以有效提高情感分類效果。
應(yīng)用RNN-LSTM模型得到情感均值作為情感指數(shù),然后對不同地區(qū)的微博話題及評論做了地域性分析,得到網(wǎng)民情感值分布如圖6,圖7所示。
由圖6可以看出,不同的省市在地圖上顯示的顏色都不一樣。顏色越深代表這個地區(qū)的情感指數(shù)越高。網(wǎng)友發(fā)表的關(guān)于新冠的疫情的言論越積極。其中在2020年西藏、湖北、江蘇、浙江以及臺灣情感指數(shù)較高,由于西藏的網(wǎng)民基數(shù)較少,故不具有代表性,但在湖北等地區(qū)可以看出雖然疫情嚴(yán)重,但話題的導(dǎo)向是積極陽光的,網(wǎng)民的評論也具有正能量。
如圖7所示,對2021年3月的話題和評論進行情感分析,可看出此時黑龍江等地區(qū)顏色較深,因為2021年初黑龍江疫情爆發(fā),這時話題的導(dǎo)向也轉(zhuǎn)變?yōu)榉e極陽光的,因此可得出結(jié)論,疫情越嚴(yán)重的地方情感指數(shù)越高,因為話題的導(dǎo)向是積極向上的,網(wǎng)民的評論也都是對抗擊疫情充滿信心和希望的。
圖6 2020年網(wǎng)民情感值分布圖 圖7 2021年網(wǎng)民情感值分布圖 Fig.6 Emotional value distribution Fig.7 Emotional value distribution of Internet users in 2020 of Internet users in 2021
筆者以新冠肺炎疫情為研究背景,研究使用Scrapy爬蟲框架對微博熱門話題以及評論進行爬取。針對爬取的話題及評論進行情感分析,基于FastText進行特征提取,提出了一種基于RNN-LSTM混合模型的情感分析的方法,且得到了較以往方法更優(yōu)的準(zhǔn)確率,證實筆者提出的模型能很好的對短文本進行情感分析。并將訓(xùn)練出來的情感得分與地圖相結(jié)合,得出了全國網(wǎng)民情感分布地圖。并且該地圖反映出的結(jié)果與疫情實際發(fā)生狀況相符。