莫永華,王可,李 嘉
(桂林信息科技學(xué)院,桂林 541004)
由于近年來互聯(lián)網(wǎng)的飛速發(fā)展,自媒體網(wǎng)絡(luò)文章已成為互聯(lián)網(wǎng)輿論來源中體量龐大且不可忽視的一部分。由于新聞與社交平臺的篩選審查能力有限,其中惡意煽動負(fù)面輿論的文章極易影響社會穩(wěn)定。因此,一個可以甄別惡意輿論導(dǎo)向文章的系統(tǒng)已逐漸成為相關(guān)部門維護(hù)網(wǎng)絡(luò)空間與社會穩(wěn)定安全的重要方向。實(shí)現(xiàn)這一課題,旨在提供一個可以從短評論中分辨正負(fù)面情感的算法模型,并在該模型的基礎(chǔ)上提供一個功能多樣、操作便捷的Web 平臺,為輿情分析提供一個新思路。
機(jī)撰文稿的智能識別系統(tǒng)功能需求包括三個方面:數(shù)據(jù)采集、情感分析模型、業(yè)務(wù)和數(shù)據(jù)大屏展示。系統(tǒng)功能需求如圖1所示。業(yè)務(wù)和數(shù)據(jù)大屏展示包括系統(tǒng)信息監(jiān)控、今日新聞排行榜查看、分析任務(wù)管理、模型管理、數(shù)據(jù)大屏功能。情感分析模型模塊包括模型訓(xùn)練、數(shù)據(jù)預(yù)處理、數(shù)據(jù)清理、HTTP 接口提供功能。數(shù)據(jù)采集模塊為業(yè)務(wù)模塊提供數(shù)據(jù)支持,通過網(wǎng)絡(luò)爬蟲程序從新聞網(wǎng)站中采集系統(tǒng)所需的數(shù)據(jù)信息。系統(tǒng)和用戶之間的交互主要為用戶與Web 前端的交互。用戶在Web 前端中的今日新聞排行榜中選取所需要的進(jìn)行分析的新聞,或者直接輸入新聞網(wǎng)址來創(chuàng)建分析任務(wù)。業(yè)務(wù)模塊將和數(shù)據(jù)采集模塊進(jìn)行交互,來采集所需要的數(shù)據(jù),采集完畢之后,業(yè)務(wù)模塊負(fù)責(zé)將數(shù)據(jù)去重,并且存入數(shù)據(jù)庫中,并且與情感分析模塊進(jìn)行交互,用以分析評論的情感,然后將結(jié)果存入數(shù)據(jù)庫,最終Web 前端根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)來顯示相對應(yīng)的圖表。
圖1 系統(tǒng)功能需求
功能需求說明如下:
(1)業(yè)務(wù)模塊。通過可視化界面提供了系統(tǒng)信息監(jiān)控、今日新聞排行榜查看、分析任務(wù)管理、模型管理、數(shù)據(jù)大屏等功能,并直接與用戶產(chǎn)生交互。
(2)數(shù)據(jù)采集模塊。通過模擬瀏覽器訪問行為獲得對應(yīng)新聞的評論后,通過JSON 解析,為模型分析提供統(tǒng)一格式的文本數(shù)據(jù);在數(shù)據(jù)采集模塊中,包含以下功能:采集今日熱門新聞排行榜:向163 新聞網(wǎng)站請求數(shù)據(jù),對數(shù)據(jù)出力后按照所需格式返回;采集新聞評論:根據(jù)新聞ID獲取評論JSON,然后對其進(jìn)行解析并返回。
(3)情感分析模塊。用于判斷一段中文短評論的正負(fù)面情感的概率。在情感分析模型模塊中,包含以下功能:訓(xùn)練數(shù)據(jù)清洗:刪除特殊字符,空格,null 數(shù)據(jù)等;切分訓(xùn)練數(shù)據(jù):驗(yàn)證使用時的性能,將訓(xùn)練數(shù)據(jù)切分成訓(xùn)練集、測試集和驗(yàn)證集;模型創(chuàng)建:創(chuàng)建出模型的每一層;模型訓(xùn)練:實(shí)例化出數(shù)據(jù)加載器和模型,對模型進(jìn)行訓(xùn)練。
(1)服務(wù)器端環(huán)境。能夠運(yùn)行TensorFlow 等深度學(xué)習(xí)框架,且能夠支持Python 語言的計算機(jī)或服務(wù)器。
(2)前端環(huán)境。能夠支持基于Web 平臺的Spring Boot+Vue。
首先,使用已經(jīng)標(biāo)記好的36 萬條情感類別的評論數(shù)據(jù)集(微博)和深度學(xué)習(xí)框架(Tensor?Flow)訓(xùn)練出一個能從短評論中分辨正負(fù)面情感的文本識別模型;然后,通過網(wǎng)絡(luò)爬蟲抓取等手段分析新聞數(shù)據(jù)接口,使用Python 語言設(shè)計爬蟲,實(shí)現(xiàn)輿論數(shù)據(jù)采集功能;最后使用Spring Boot+Vue 框架編寫業(yè)務(wù)邏輯模塊和數(shù)據(jù)大屏展示,對用戶請求的新聞進(jìn)行判斷甄別,并返回可視化結(jié)果。
機(jī)撰文稿的智能識別系統(tǒng)功能設(shè)計主要分為三個模塊:情感分析模型模塊、數(shù)據(jù)采集模塊和業(yè)務(wù)模塊。系統(tǒng)主要任務(wù)有:①訓(xùn)練數(shù)據(jù)集清洗。②文本分類問題。③TextCNN。④Web前端平臺提供用戶友好的交互界面及相關(guān)功能服務(wù),包括系統(tǒng)模塊監(jiān)控、今日新聞排行榜監(jiān)控、分析指定鏈接新聞、模型管理、數(shù)據(jù)大屏功能。根據(jù)需求設(shè)計輿論文章智能識別系統(tǒng)需求具體如圖2所示。
圖2 系統(tǒng)設(shè)計
(1)情感分析模型模塊。后臺模型基于深度TextCNN 的情感分析模型,負(fù)責(zé)接收來自業(yè)務(wù)模塊的句子,經(jīng)過運(yùn)算分析后,返回結(jié)果給業(yè)務(wù)模塊用于最終結(jié)果展示。返回的結(jié)果有:正面情感概率和負(fù)面情感概率,用于為用戶提供結(jié)果參考。
該模塊的主要流程為:首先進(jìn)行對輸入句子的預(yù)處理,其中包括:數(shù)據(jù)清洗、文本分詞、映射詞向量等操作,從而得到輸入數(shù)據(jù)的矩陣形式,再利用已經(jīng)使用訓(xùn)練數(shù)據(jù)訓(xùn)練完畢的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分析,得出正面情感概率和負(fù)面情感概率,并將其返回到業(yè)務(wù)模塊。模型利用了CNN 的特征提取和識別的特性,可計算出互聯(lián)網(wǎng)短評論的正負(fù)面情感的概率。
(2)數(shù)據(jù)采集模塊。數(shù)據(jù)采集模塊用于給業(yè)務(wù)模塊提供所需的數(shù)據(jù)。該模塊的工作是根據(jù)業(yè)務(wù)模塊傳輸過來的請求,在指定新聞文章下采集該新聞的評論,并完成對數(shù)據(jù)的處理,使得每條數(shù)據(jù)具有相同的格式,方便后臺程序的讀取。數(shù)據(jù)采集模塊是基于Python 的網(wǎng)絡(luò)爬蟲程序?qū)崿F(xiàn),通過模擬瀏覽器訪問行為獲得對應(yīng)新聞的評論后,通過JSON 解析,為模型分析提供統(tǒng)一格式的文本數(shù)據(jù)。
(3)業(yè)務(wù)邏輯模塊。情感分析系統(tǒng)的業(yè)務(wù)邏輯模塊采用的是互聯(lián)網(wǎng)行業(yè)軟件開發(fā)中成熟的基Spring Boot和Vue的前后端分離架構(gòu)。前端平臺通過可視化界面提供了系統(tǒng)信息監(jiān)控、今日新聞排行榜查看、分析任務(wù)管理、模型管理、數(shù)據(jù)大屏等功能,并直接與用戶產(chǎn)生交互。用戶將通過相應(yīng)的圖形界面在Web 前端中進(jìn)行響應(yīng)功能的使用,業(yè)務(wù)模塊收到用戶的操作后依據(jù)觸發(fā)的功能調(diào)用數(shù)據(jù)采集模塊,采集完成之后將數(shù)據(jù)發(fā)給情感分析模塊,并負(fù)責(zé)接收分析,最后將得到的分析結(jié)果進(jìn)行圖表展示返回給用戶。此外,為提高用戶對該系統(tǒng)的信任,該系統(tǒng)同時提供在線測試功能。用戶可以自定義輸入一句話,讓系統(tǒng)進(jìn)行分析得到結(jié)果,進(jìn)一步提高用戶對分析模型的信任度。
(1)概念結(jié)構(gòu)設(shè)計,如圖3所示。
圖3 ER圖
業(yè)務(wù)模塊實(shí)現(xiàn)的任務(wù)邏輯結(jié)構(gòu)表設(shè)計如表1所示。
表1 任務(wù)Task邏輯結(jié)構(gòu)設(shè)計
業(yè)務(wù)模塊實(shí)現(xiàn)的評論邏輯結(jié)構(gòu)表設(shè)計如表2所示。
表2 評論Comment邏輯結(jié)構(gòu)設(shè)計
(2)物理結(jié)構(gòu)設(shè)計。任務(wù)Task SQL 如圖4所示。
圖4 Task SQL
評論Comment SQL如圖5所示。
圖5 Comment SQL
本系統(tǒng)開發(fā)實(shí)現(xiàn)環(huán)境在Linux 環(huán)境下進(jìn)行,具體的實(shí)現(xiàn)環(huán)境為Python 3.7 環(huán)境。核心模型環(huán)境:在Python 3.7 環(huán)境下完成相關(guān)工具包的部署,包括分詞庫jieba、開源第三方算法工具包Gensim、深度學(xué)習(xí)框架TensorFlow 2.1 等。業(yè)務(wù)模塊:運(yùn)用SpringBoot + Vue 的方案,PIP 環(huán)境下安裝HTML網(wǎng)頁解析庫BeautifulSoup等。
(1)數(shù)據(jù)集。模型的數(shù)據(jù)來源于GitHub 開源社區(qū)提供的已標(biāo)記的數(shù)據(jù)集,共包括4 種情感,其中約20萬條喜悅,約5萬條憤怒,約5萬條厭惡,約5 萬條低落。共35 萬條。在隨機(jī)打亂數(shù)據(jù)集使其分布平均后,將數(shù)據(jù)集按8∶1∶1分為訓(xùn)練集、測試集和驗(yàn)證集。
(2)模型設(shè)置。在測試實(shí)驗(yàn)中,使用了Adam 優(yōu)化器,模型的訓(xùn)練正面情感標(biāo)簽設(shè)置為0和負(fù)面情感標(biāo)簽設(shè)置為1,詞向量的模型使用Word2Vec 靜態(tài),詞向量的維度設(shè)置為300,模型batch 設(shè)置大小為64,輸入的文本詞數(shù)設(shè)置為64,如果文本詞數(shù)超過長度的被截斷,如果長度不夠的用詞向量0填充。
(3)測試結(jié)果。在經(jīng)過多次參數(shù)調(diào)整之后,本系統(tǒng)選擇了靜態(tài)詞向量、使用小卷積核、基于TextCNN 的模型作為情緒分辨模型。訓(xùn)練100輪之后,該模型在訓(xùn)練集中達(dá)到93%的準(zhǔn)確率,在驗(yàn)證集和測試集中達(dá)到79%的準(zhǔn)確率。項目模型準(zhǔn)確率測試如圖6所示。
圖6 模型準(zhǔn)確率測試
(1)系統(tǒng)信息監(jiān)控。系統(tǒng)信息監(jiān)控功能可以及時顯示情感分析模塊和爬蟲模塊的是否上線、以及系統(tǒng)負(fù)載狀況具體流程如圖7所示。
圖7 系統(tǒng)信息監(jiān)控過程
系統(tǒng)信息界面會顯示情感分析系統(tǒng)和評論采集系統(tǒng)狀態(tài)是否正常,如圖8所示。
圖8 系統(tǒng)信息頁面
(2)今日新聞監(jiān)控。通過對新聞網(wǎng)站的活躍評論新聞進(jìn)行采集,并將其反饋到排行榜。如圖9所示。
圖9 新聞排行榜過程
通過獲取新聞標(biāo)題和編號,對新聞進(jìn)行排序,獲得排行榜,如圖10所示。
圖10 今日新聞排行榜
(3)模型管理。通過使用模型來分析新聞評論的情感。選擇對應(yīng)的模型后,系統(tǒng)載入模型,通過對一些基本語句對模型進(jìn)行測試,如圖11所示。
圖11 模型管理界面
(4)數(shù)據(jù)大屏。數(shù)據(jù)大屏能及時顯示系統(tǒng)正在運(yùn)行的任務(wù)、系統(tǒng)負(fù)載、最近分析的評論情況等信息。如圖12所示。
圖12 系統(tǒng)數(shù)據(jù)大屏
該研究將惡意導(dǎo)向社會輿論文章作為互聯(lián)網(wǎng)信息的重要部分引入群眾的視線,互聯(lián)網(wǎng)中的自媒體為了吸引流量,該類型的文章數(shù)量會越來越多,情感識別模型和該系統(tǒng)使得惡意文章的負(fù)面影響得到最大化程度的降低,為維護(hù)社會穩(wěn)定與網(wǎng)絡(luò)空間安全做出重要貢獻(xiàn)。