殷美桂
(河源職業技術學院電子與信息工程學院,河源 517000)
大數據時代下,隨著互聯網應用技術的成熟,越來越多的用戶使用社交平臺,其中微博作為一種非常流行的媒體平臺,成為人們自由表達觀點及社會交流的媒介。據2022 年9 月微博發布的三季報顯示,9 月的月活躍用戶數為5.84億,日均活躍用戶數為2.53億[1]。微博憑借龐大的用戶群體及實時的社交互動方式,成為社會熱點話題討論和輿情發酵平臺[2]。大學生群體具有思想獨立、上網時間長和獵奇心理強等特點,更愿意通過網絡媒體發聲;同時,大學生群體因思想不成熟,在面對真假難辨的消息時更容易受到他人蠱惑。近年來,高校頻頻成為網絡輿論場,根據人民網輿情數據中心統計,2020 年涉及高校全國重大輿情同比增加33%,與2018 年相比增幅達到133%[3]。高校管理者如何從互聯網海量的信息提取出針對本校的輿情數據,以及在網絡輿情的發展形成之際對網絡輿情進行正確的引導,顯得尤其重要。高校網絡輿情系統可以代替人工監測,輿情系統能對校園網絡輿情進行自動監控,從互聯網中挖掘出針對本校的輿情信息,并對輿情信息進行主題詞的統計和情感分析,幫助管理者了解學生關注的主題以及敏感事件的情感傾向,從而捕捉學生的思想動態情況,能維護學校的輿論安全穩定。
網絡輿情系統采用B/S模式,使用Django與Vue 框架實現前后端分離技術,數據存儲使用MySQL。系統后端采用Python 的Django 框架提供數據訪問的接口,前端框架通過Axios 訪問后端API 接口獲取數據,從而構建可以展示的網站平臺。
網絡爬蟲又名“網絡蜘蛛”,是建立在搜索引擎基礎上的信息收集技術,從網站的某一個頁面開始,按照指定規則循環讀取網頁的鏈接,以獲取網頁內容。網絡爬蟲按照實現技術,可分為通用網絡爬蟲和主題網絡爬蟲。Scrapy 是基于Python 語言開發的Web 數據采集框架[4]。Scarpy 是最受歡迎的爬蟲框架之一,面向用戶的多種需求,可進行定制爬蟲開發。Scrapy 爬取的網頁信息具體流程如下[5]:
(1)初始化爬取鏈接。調度器(Scheduler)將需要爬取的微博網頁URL傳遞給Scrapy引擎。
(2)發送請求。調度器負責接收Scrapy 引擎發送的請求(Request),并將請求加入調度隊列。調度器將處理好的Request返回給引擎。
(3)獲取響應。Request 由下載器(Downloader)獲取響應(Responses)信息,交給Scrapy引擎,引擎轉交給Spider處理。
(4)處理Responses 信息。 Spider(爬蟲)負責處理所有的Responses,使用Xpath 進行指定數據的提取或者將需要繼續處理的URL 提交引擎。Spider 將獲取的Item 字段由引擎交給Item pipelines 模塊。Item Pipelines 模塊會根據設置將數據儲存在CSV文件中。
Django 是一個開放源代碼的應用框架,基于MVC 的DjangoMVT 框架。Model 與MVC 中的M 功能相同,負責與數據庫中的進行交互[6]。View 與MVC 中的C 功能相同,負責進行業務處理。Template 與MVC 中的V 功能相同,負責封裝構造返回的html。程序員利用Django 快速、便捷地創建數據庫驅動的應用程序。Django 中嵌入對象關系映射(ORM)框架,采用類定義數據模型,并將模型與關系數據庫連接,獲得一個數據庫操作的API。ORM 的優點是以對象的方式操作數據庫,即使不懂SQL 語句的開發者也可以通過ORM輕松操作數據。
Vue.js用于構建用戶界面的漸進式框架,是目前應用較為廣泛的JavaScript框架之一[7]。Vue開發優勢主要表現在組件化開發,大大減少代碼編寫量;另外其最突出的優勢是可以對數據進行雙向綁定,采用v-model 指令對View 和Model層進行數據綁定,當視圖中的數據發生變化,同步更新后臺數據,后臺數據的變化也會反映在視圖中。
網絡輿情系統涉及的技術領域包括網絡輿情信息的采集技術、話題檢測與跟蹤技術、文本情感分析技術[8]。根據網絡輿情涉及的技術,系統分為后端功能模塊和前端結果展示模塊。系統功能結構圖如圖1所示。

圖1 系統功能結構圖
高校一般在新浪微博都有官方賬號用于發布學校資訊,而大學生喜歡在微博平臺發布個人看法及熱點事件的評論,系統主要采集新浪微博數據作為數據源。數據獲取主要分為三個步驟:向URL發送請求、數據爬取、數據存儲。本系統采用Python 語言中的Scrapy 爬蟲框架,調用新浪微博公開的應用程序接口(API)實現對特定網頁信息的爬取,其檢索策略是基于設定好的學校名稱關鍵詞。在采集工作開始之前,先在URL 隊列中初始化一個或幾個URL,爬蟲程序可根據設定的URL 依次去請求訪問對應網頁,因微博需登錄驗證后才可以訪問網頁,Request 中必須包含登錄驗證的Cookie 信息。爬蟲接收網頁端的Responses,使用Xpath 來定位爬取指定內容,儲存在CSV文件。
在進行輿情分析、熱詞發現和情感分析之前,要對數據進行預處理。數據預處理分為數據清洗、數據轉換和文本分詞。
(1)數據清洗。由于未經處理的數據含有噪聲,如數據中存在很多無意義的符號、連接、數字、圖片等噪音,并且還會有大量的缺失值,這對文本的數據分析沒有太大意義。去除“臟數據”的方法有很多,一般采用正則表達式進行規則匹配,利用正則表達式過濾掉無意義的詞語。系統對臟數據進行清洗主要包括:去除亂碼和填充空字段等。采集到的網頁源碼往往存在一定程度的亂碼和一些對文本分析無意義的信息,如廣告和注釋等,因此需要對其進行過濾操作去除亂碼,通過過濾對數據進行標準化處理。另外,由于采集到的微博字段有些為空,因此需要將空值進行填充。
(2)數據轉換。數據轉換就是將數據進行轉換或歸并,從而構成一個適合數據處理的描述形式。系統主要對一些屬性,如日期、評論、點贊等數據進行轉換,將其轉換為規格化的數據。如在抓取微博發布時間時會出現“2 小時前”“昨天”“剛剛”等字眼,這會導致數據庫中發布時間字段格式不統一,因此需要將時間格式統一為“年-月-日”。
(3)中文分詞。中文不同于英文,英文單詞之間使用空格連接,中文文本都是句子,需要將處理后的數據分割為詞語。中文文本的分詞軟件主要有中國科學院的ICTCLAS、jieba 分詞和北京大學語言計算與機器學習研究組研制推出的一套全新的中文分詞工具包pkuseg。用戶可以根據pkuseg待分詞文本的領域特點,自由地選擇不同的模型。系統采用網絡領域的分詞模型,更精確地對微博文本進行分詞,分詞后對數據去重、去停用詞、去無關詞、去除開頭末尾為數字或符號的分詞,如日期、錯誤分詞等。
微博文本的情感分析基于百度PaddleHub預訓練情感傾向分析模型(Senta)[9],針對中文文本,模型可自動判斷文本情感極性類別和置信度。Senta 開源一系列模型,如BOW、CNN、Bi-LSTM 等。PaddleHub 可以支持文本、圖像、視頻、語音、工業應用五大方向,提供高質量的預訓練模型,減少用戶訓練模型的工作量。本文采用Paddle_Senta 的BiLSTM 進行情感的二分類(積極、消極)任務。BiLSTM 模型是長短期記憶神經網絡模型(LSTM)的一種變體[10]。情感分析實質上是一個分類任務,系統對微博正文進行情感的分類,對數據進行標注,并將結果寫入數據庫中,為系統實現微博文章的輿論分析、輿情發展趨勢,以及正負面輿論占比等奠定數據基礎。
系統基于B/S采用前后端分離的技術,首先采用Scrapy 采集數據,使用Django+MySQL 搭建系統后端平臺,前端采用Vue+Element Plus+Echarts構建前端應用UI界面和圖表。
系統后端采用PyCharm 集成開發環境、程序開發語言Python,搭配Django 框架。使用Django 框架開發程序的流程包括:①首先創建Django 項目。②創建APP 子應用,為了提高代碼的利用率,將相同功能模塊的代碼放在同一個子應用,可實現代碼復用。③設計模型類并進行數據庫的遷移。系統定義數據微博文章類和微博文章情感類,模型的數據來源為爬蟲爬取的數據以及情感分析處理后的數據。④定義視圖view.py,在子應用的view.py 定義視圖函數,函數會返回包含被請求頁面內容的HttpResponse對象,該對象用于向客戶端Vue 返回json 數據,通過在Models 中定義類,采用objects.filter()函數過濾數據庫中數據。⑤創建模板,使用模板方法可以動態生成HTML。由于項目使用Django+Vue 前后端分離的技術,模板主要通過Vue 打包生成項目,打包完成后,生成dist 目錄,該目錄下包含index.htm。
系統前端采用Vue 3.0+Element Plus+Echarts開發框架。Element Plus 是一款基于Vue3.X的頁面結構框架,此框架提供一套完整的組件,包含導航、布局、表單、按鈕等功能豐富的組件。Vue 項目使用腳手架直接搭建,用Vue-router 實現前端路由的跳轉,用Axios 向后端服務器發起get 或post 請求。前端頁面主要包括以下幾個模塊:①用戶注冊和登錄模塊。②微博最新文章一覽表。該模塊的來源為經預處理后爬取的數據。③微博文章的情感分析表。該模塊能顯示文章的情感分類情況,負面情感的文章在最前面展示,以便第一時間發現敏感輿論信息,如圖2所示。④微博文章的情感趨向圖。系統采用柱狀圖、餅圖對微博文章情感趨向進行統計,如圖3所示。

圖2 微博文章情感分類表

圖3 文章情感趨向圖
本文采用Django+Vue 框架,快速搭建基于新浪微博的學校網絡輿情系統,采用Scrapy 框架爬取學校的新浪微博文章,微博文章經過預處理后采用BiLSTM 進行情感分類,情感分類的結果準確率較高。學校網絡輿情系統能對學校輿情進行監測,及時發現負面輿情,方便監管部門進行輿情的監管。系統設計達到預期目標,但是系統功能還需要完善,主要包括:一方面,系統爬取的輿情信息不夠全面,只針對指定的URL 進行搜索,尚未對信息進行全面采集;另一方面,目前只根據情感的正負方向進行分類,對情感強烈程度尚未區分。未來計劃擴大輿情信息的采集范圍,充分挖掘數據價值。