韋芬
(西安航空職業(yè)技術(shù)學(xué)院,陜西西安 710089)
隨著媒體技術(shù)與傳播形式的不斷演變,目前已進(jìn)入了數(shù)字化信息時代。數(shù)字化媒體基于互聯(lián)網(wǎng)及移動通信技術(shù),向互聯(lián)網(wǎng)用戶提供各種數(shù)字化形式的信息。當(dāng)前數(shù)字化媒體的種類繁多,例如信息流媒體、網(wǎng)絡(luò)社區(qū)、微博與門戶網(wǎng)站等,這類媒體可便于用戶交流意見和發(fā)表觀點,但也會引發(fā)輿情危機,導(dǎo)致謠言或不實信息病毒式蔓延。因此,進(jìn)行快速、精準(zhǔn)的網(wǎng)絡(luò)輿情數(shù)據(jù)分析及預(yù)警已成為當(dāng)前學(xué)校思政管理與網(wǎng)絡(luò)信息監(jiān)控部門的首要任務(wù)[1-3]。
分析網(wǎng)絡(luò)輿情數(shù)據(jù)的思路是將文本信息送入服務(wù)器后臺,由算法或人工對信息進(jìn)行判斷。其中,由于人工審核速度慢且成本高,所以無法滿足用戶在實時信息流平臺中進(jìn)行交流的需求;而傳統(tǒng)算法雖然審核速度快,但普通服務(wù)器有時難以承載當(dāng)前海量的信息流數(shù)據(jù),因此會出現(xiàn)宕機、服務(wù)器卡頓等現(xiàn)象。然而隨著大數(shù)據(jù)及云服務(wù)器技術(shù)的發(fā)展,海量數(shù)據(jù)的采集、存儲與分析也成為可能。因此,該文使用并行計算手段,依托于并行云服務(wù)器構(gòu)建網(wǎng)絡(luò)輿情數(shù)據(jù)分析平臺,進(jìn)而建立完善的輿情預(yù)警及引導(dǎo)機制。
Hadoop 平臺[4-7]是由Google 公司設(shè)計、基于Java語言開發(fā)的分布式數(shù)據(jù)處理架構(gòu)。其兼容性較強,且擁有良好的跨平臺屬性,使用者無需了解分布式計算架構(gòu)即可調(diào)用API 接口實現(xiàn)數(shù)據(jù)的分布式存儲與管理。Hadoop 平臺架構(gòu)如圖1 所示。

圖1 Hadoop平臺架構(gòu)
Hadoop 架構(gòu)主要由管理層節(jié)點與任務(wù)層節(jié)點組成。該平臺主要包含兩大核心模塊,分別為負(fù)責(zé)文件存儲的HDFS(Hadoop Distribute File System)及負(fù)責(zé)數(shù)據(jù)并行計算的MapReduce。
1)HDFS 分布式文件系統(tǒng)
HDFS 是一種分布式文件存儲系統(tǒng),該系統(tǒng)支持大吞吐量的數(shù)據(jù)交換及超大型文件的存儲。其成本較低、容錯率高,且支持?jǐn)?shù)據(jù)回滾,故可有效保證數(shù)據(jù)存儲的安全性。
HDFS 架構(gòu)通常使用主從機體系結(jié)構(gòu),由一個NameNode 和多個DataNode 混合節(jié)點組成,如圖2 所示。其中,NameNode 節(jié)點負(fù)責(zé)主機管理的任務(wù),其可管理文件命名空間,同時也能受理從節(jié)點的管理請求。而DataNode 節(jié)點則為從機存儲節(jié)點,該節(jié)點可將文件加以存儲,并與NameNode 節(jié)點進(jìn)行交互。

圖2 HDFS架構(gòu)
2)MapReduce 編程模型
MapReduce 是一種分布式的編程模型,該模型可對海量數(shù)據(jù)進(jìn)行并行處理,且其容災(zāi)率較高。MapReduce 解決分布式問題的思路是將大型的計算任務(wù)小型化、分解化,并將分解后的子問題進(jìn)行集中計算。此外,該算法主要依靠Map 與Reduce 函數(shù)來實現(xiàn)。
對于輸入系統(tǒng)的大型數(shù)據(jù)而言,MapReduce 會將數(shù)據(jù)分解成若干個小數(shù)據(jù)塊,并形成多個鍵值文件。同時,將其輸入至Map 子函數(shù)中,該函數(shù)便會對鍵值數(shù)據(jù)進(jìn)行過程處理與排序,形成的中間值能夠緩存至HDFS 系統(tǒng)中,然后再不斷送入Reduce 函數(shù)中進(jìn)行處理,最終便可得到處理結(jié)果。MapReduce架構(gòu)如圖3 所示。

圖3 MapReduce架構(gòu)
輿情數(shù)據(jù)的特點即情緒化和主觀化,因此該數(shù)據(jù)包含的文本信息通常存在較大的關(guān)聯(lián)。分析輿情數(shù)據(jù)的第一步是對該數(shù)據(jù)進(jìn)行分類,該文使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)對數(shù)據(jù)進(jìn)行訓(xùn)練,并得到分類結(jié)果。
CNN[8-11]是自然語言處理領(lǐng)域中常見的算法之一,該算法首先應(yīng)用于圖像處理領(lǐng)域。而在國外學(xué)者發(fā)現(xiàn)其可對文本數(shù)據(jù)進(jìn)行有效分析后,便被應(yīng)用至自然語言處理領(lǐng)域。CNN 算法由輸入層、卷積層、池化層及全連接層幾個部分組成,如圖4 所示。

圖4 CNN結(jié)構(gòu)
輸入層:當(dāng)使用CNN 模型處理文本數(shù)據(jù)時,首先需要將輸入數(shù)據(jù)轉(zhuǎn)換成為詞向量,再將詞向量轉(zhuǎn)化為二維矩陣。輸入層的輸入過程如下:
式中,xinput為文本輸入,w表示文本中的詞向量,youtput1表示該層的輸出結(jié)果。
卷積層:該層為CNN 中的數(shù)據(jù)處理結(jié)構(gòu),其主要是對詞向量進(jìn)行卷積計算,進(jìn)而完成詞向量特征的抓取。卷積的計算過程為:
式中,Mi為數(shù)據(jù)源,youtput1和youtput2分別為卷積層的輸入與輸出數(shù)據(jù),kij為卷積窗口,bj為卷積層的偏置量,f則為卷積層的激活函數(shù)。
池化層:該層對卷積層數(shù)據(jù)進(jìn)行下采樣,主要是對輸入數(shù)據(jù)進(jìn)行采樣,再對輸出特征值進(jìn)行削減,進(jìn)而增強網(wǎng)絡(luò)的特征判斷能力。池化過程可表征為:
式中,Pooling()為池化算法,youtput2和youtput3為池化層的輸入及輸出數(shù)據(jù),f為池化層的激活函數(shù)。
雖然CNN 模型具備的結(jié)構(gòu)可對文本特征進(jìn)行提取,但該結(jié)構(gòu)無法獲取上下文數(shù)據(jù)的含義。因此為了增強其數(shù)據(jù)處理能力,該文將CNN 模型與BiLSTM(Bi-directional Long Short-Term Memory)模型結(jié)合,使其具備雙向性,便可提取文本全局特征,從而提高分類的準(zhǔn)確性。
BiLSTM 也被稱為雙向長短時神經(jīng)網(wǎng)絡(luò)[12-13],該網(wǎng)絡(luò)能進(jìn)行雙向?qū)W習(xí),進(jìn)而得到文本的前后含義,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。基于CNN 與BiLSTM 的網(wǎng)絡(luò)結(jié)構(gòu)如圖6 所示。

圖5 BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)

圖6 CNN-BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)
由圖6 可知,模型首先對輸入的文本數(shù)據(jù)進(jìn)行分層,將詞向量轉(zhuǎn)換為矩陣;之后再使用CNNBiLSTM 算法進(jìn)行分類,即采用CNN 提取局部優(yōu)勢,利用BiLSTM 獲取文本全局特征;最終便可對特征加以合并,進(jìn)而輸出結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)與BP 神經(jīng)網(wǎng)絡(luò)的求解方式相似,也是串行的計算過程。該計算過程由三個步驟組成,分別為數(shù)據(jù)前向傳遞、更新權(quán)重后的后序傳遞及網(wǎng)絡(luò)權(quán)重值參數(shù)的調(diào)整。該文使用累計BP 算法[14]進(jìn)行數(shù)據(jù)的并行訓(xùn)練。數(shù)據(jù)訓(xùn)練的并行計算過程如圖7 所示。

圖7 并行計算過程
總體程序的主要執(zhí)行流程為:
1)數(shù)據(jù)經(jīng)過打包,形成DataSet 樣本數(shù)據(jù)包文件,同時從CNN-BiLSTM 為卷積神經(jīng)網(wǎng)絡(luò)模型接收數(shù)據(jù)[15-16]。
2)數(shù)據(jù)預(yù)處理,首先將DataSet 樣本存入HDFS并行存儲結(jié)構(gòu),同時將原始的CNN-BiLSTM 模型存入HDFS。
3)進(jìn)入MapReduce 進(jìn)行處理,且分多輪進(jìn)行,Map 算子的輸入和輸出均為鍵值,輸入鍵為文本的偏移量,輸入值為文本的實際內(nèi)容。輸出鍵則為占位符,輸出值為迭代后的CNN-BiLSTM 模型值。通過該算法程序,可大幅提升數(shù)據(jù)處理時的速度。
實驗在PC 機平臺進(jìn)行,使用四臺服務(wù)器搭建了具有四個節(jié)點的Hadoop 架構(gòu),其中一臺服務(wù)器為主節(jié)點,其余三臺則為從節(jié)點。服務(wù)器的具體配置如表1 所示。

表1 實驗軟硬件環(huán)境配置
數(shù)據(jù)集選擇清華大學(xué)的中文新聞數(shù)據(jù)集合THUCnews。該數(shù)據(jù)集包括財經(jīng)、游戲、房產(chǎn)、生活等10個類別的新聞數(shù)據(jù),且在每個類別中選擇10 000條文本,并按照3∶1 的比例將數(shù)據(jù)劃分為訓(xùn)練集與測試集。
文中對算法的分類性能進(jìn)行測試,分類所使用的指標(biāo)為準(zhǔn)確率、召回率及F1 值。對比算法選擇CNN、BiLSTM、SVM,所有算法對同樣的數(shù)據(jù)樣本進(jìn)行訓(xùn)練,之后在測試集中進(jìn)行驗證。測試結(jié)果如表2所示。

表2 測試結(jié)果
由表2 可知,各個算法在體育、政治、教育、游戲類目的新聞均能實現(xiàn)文本分類。但該文使用CNNBiLSTM 算法,在分類的同時加入了提升上下文含義的訓(xùn)練。故在分類結(jié)果中,該文算法的準(zhǔn)確率、召回率與F1 值在對比算法中均為最優(yōu),充分證明了該文算法的性能優(yōu)勢。
此外,該文將算法部署在Hadoop 并行計算集群中,為驗證Hadoop 集群對算法計算時間和速度的影響,分別將算法布置在單機,雙機及四機平臺中,以算法開始運行至迭代完成所耗費的時間為指標(biāo),計算結(jié)果如表3 所示。

表3 并行計算效果測試
從表3 中可以看出,當(dāng)數(shù)據(jù)量為1 000 條時,單機與集群的訓(xùn)練時間大致相當(dāng),這是因為訓(xùn)練數(shù)量較少時,集群計算的優(yōu)勢發(fā)揮并不突出;當(dāng)數(shù)據(jù)量增至5 000 條時,雙機與四機的集群優(yōu)勢逐漸顯現(xiàn);而當(dāng)數(shù)據(jù)量增加至10 000 條時,四機優(yōu)勢較為明顯,這說明在計算量較大時,并行計算集群能夠顯著提升數(shù)據(jù)訓(xùn)練速度。
該文研究了一種基于并行計算的網(wǎng)絡(luò)輿情數(shù)據(jù)分析方法。針對傳統(tǒng)輿情數(shù)據(jù)處理系統(tǒng)分析速度慢,準(zhǔn)確率較低的問題,設(shè)計了一套網(wǎng)絡(luò)輿情數(shù)據(jù)分析系統(tǒng)。該系統(tǒng)分為并行計算系統(tǒng)及文本分類算法。文本分類算法將CNN 網(wǎng)絡(luò)與BiLSTM 網(wǎng)絡(luò)相結(jié)合,使算法具備更強的分類能力。而并行計算系統(tǒng)使用Hadoop 集群,有效提升了輿情數(shù)據(jù)的訓(xùn)練速度。系統(tǒng)的整體綜合性能較好,部署在并行集群中有效地提升了運行速度。