劉祉燊,張倩,周菠,汪志霖,顧永昊
(山東石油化工學(xué)院,山東 東營 257000)
隨著網(wǎng)絡(luò)的發(fā)展和技術(shù)的提高,人們的精神需求也向更高層次發(fā)展,大眾表達自我的意愿更為強烈,自媒體平臺成為大眾表達感情,發(fā)表言論的重要渠道。尤其是大學(xué)生群體具有勇于表達自己觀點,熱衷表達自己態(tài)度的特點。2021年2月3日中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的第47次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》顯示:截至2020年12月,我國網(wǎng)民規(guī)模達9.89億,手機網(wǎng)民規(guī)模達9.86億,互聯(lián)網(wǎng)普及率達70.4%。其中,學(xué)生網(wǎng)民最多,占比為21.0%[1]。因此,學(xué)生網(wǎng)民在網(wǎng)絡(luò)上的情感表達和輿論觀點更值得關(guān)注。通過爬取網(wǎng)絡(luò)大數(shù)據(jù)中學(xué)生的言論并以此文本為依據(jù),挖掘當(dāng)今大學(xué)生的關(guān)注話題和情感傾向,分析大學(xué)生的所思所想,對于及時掌握高校大學(xué)生的思想動態(tài)和疏導(dǎo)大學(xué)生的不良情緒有重要作用。同時,對高校在學(xué)生管理方面具有重要意義。
當(dāng)今社會已進入大數(shù)據(jù)時代,手動獲取數(shù)據(jù)已不適合現(xiàn)在的發(fā)展趨勢,網(wǎng)絡(luò)爬蟲可以很好解決這類問題。網(wǎng)絡(luò)爬蟲是一種能夠自動抓取互聯(lián)網(wǎng)信息的程序或者腳本,廣泛應(yīng)用于網(wǎng)頁或網(wǎng)站內(nèi)容的檢索。網(wǎng)絡(luò)爬蟲的實現(xiàn)形式多樣,其工作原理也各不相同。典型的網(wǎng)絡(luò)爬蟲有通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲2類。本文采用通用網(wǎng)絡(luò)爬蟲,其實現(xiàn)基本原理及流程如圖1所示。
圖1 通用網(wǎng)絡(luò)爬蟲的工作原理
首先,根據(jù)初始爬取的網(wǎng)頁得到初始統(tǒng)一資源定位系統(tǒng)(uniform resource locator,URL),接著由初始URL爬取網(wǎng)頁內(nèi)容并存儲數(shù)據(jù),在爬取數(shù)據(jù)過程中可獲得新的URL地址,然后將新的URL地址加入URL列表。根據(jù)新URL地址重復(fù)以上步驟繼續(xù)爬取數(shù)據(jù),最后直到滿足條件的數(shù)據(jù)爬取完后結(jié)束整個過程。
詞語是一句話中能夠體現(xiàn)獨立含義的最小單位,通過詞語分析理解文本含義是情感分析和數(shù)據(jù)挖掘的重要方法。對中文文本的情感分析需要將語句按照一定邏輯關(guān)系劃分為詞語后再進行分析。相比于英文單詞在句子中用空格間隔開的自然分割,中文詞語之間沒有明顯的區(qū)分標(biāo)志,因此對中文語句中的詞語劃分要更加復(fù)雜和困難。
對語句分詞時采用Python提供的第三方分詞庫——jieba庫,jieba分詞是一款開源工具,在中文文本分詞方面廣泛使用且分詞效果較好。jieba分詞工具對應(yīng)有3種不同模式:精確模式、全模式和搜索引擎模式。如:對“山東石油化工學(xué)院新增3個本科專業(yè)”這句文本用3種模式分詞,精確模式分詞后為“山東/石油化工/學(xué)院/新增/3/個/本科專業(yè)”,全模式分詞結(jié)果為“山東/東石/石油/石油化工/化工/化工學(xué)院/工學(xué)/工學(xué)院/學(xué)院/新增/3/個/本科/本科專業(yè)/專業(yè)”,搜索引擎模式分詞結(jié)果為“山東/石油/化工/石油化工/學(xué)院/新增/3/個/本科/專業(yè)/本科專業(yè)”。從分詞效果可以看出,精確模式可以對語句進行最精確的切分,并且不存在冗余數(shù)據(jù),適合做文本分析。
在大數(shù)據(jù)時代,對文本情感手工分類已無法滿足需要,當(dāng)下通常選擇機器學(xué)習(xí)算法對文本情感分類。常用的機器學(xué)習(xí)算法有:支持向量機、K近鄰算法、樸素貝葉斯和神經(jīng)網(wǎng)絡(luò)等。其中,樸素貝葉斯模型是基于貝葉斯定理和特征條件獨立假設(shè)的一種預(yù)測模型,主要應(yīng)用在文本分類、疾病診斷等領(lǐng)域[2]。該方法簡單有效,但在使用時假設(shè)屬性之間相互獨立,在實際應(yīng)用中往往是不成立的,影響預(yù)測結(jié)果。神經(jīng)網(wǎng)絡(luò)模型包括卷積神經(jīng)網(wǎng)絡(luò)、時間遞歸神經(jīng)網(wǎng)絡(luò)和結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)等不同模型,卷積神經(jīng)網(wǎng)絡(luò)在文本分析方面的優(yōu)勢不及在圖像領(lǐng)域,多模型組合是未來神經(jīng)網(wǎng)絡(luò)在文本分析領(lǐng)域的改進方向[3]。支持向量機(SVM)在求解過程中避開了局部收斂的缺陷致使所得解準(zhǔn)確率同比其他算法更高。因此,SVM算法回歸分析所得解具有全局性和高準(zhǔn)確性,該算法被廣泛應(yīng)用[4]。
支持向量機是機器學(xué)習(xí)算法的一種,于1995年由Vapnik等提出。該方法以訓(xùn)練誤差為優(yōu)化問題的約束條件,以置信范圍值最小化為訓(xùn)練目標(biāo),是一種基于結(jié)構(gòu)風(fēng)險最小化的學(xué)習(xí)方法,推廣能力優(yōu)于其他傳統(tǒng)學(xué)習(xí)算法。
支持向量機分類的基本思想是找到能夠正確劃分訓(xùn)練數(shù)據(jù)集并且使幾何間隔最大的超平面,同時有少許不能準(zhǔn)確分類的樣本點。假設(shè)(xi,yi),xi∈Rm,yi∈{-1,1},i=1,2…m,則得到最有超平面為ω·xi+b=0。要使超平面的分類間隔最大,即求2/||ω||最大的問題,轉(zhuǎn)化為(1/2)||ω||2最小。引入懲罰系數(shù)C表示樣本點與最優(yōu)超平面的距離程度。該問題可闡述為
式中:ω為權(quán)重向量;C為懲罰系數(shù);ξ為松弛因子。C越大,未落在正確分類的樣本對最優(yōu)超平面的懲罰越大。
SVM提供了不同的核函數(shù)。常用的核函數(shù)有線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)和Sigmoid核函數(shù)。核函數(shù)的選擇根據(jù)具體使用情境選擇,如:是否線性可分、樣本數(shù)量的多少等。所以,在使用SVM訓(xùn)練時,需經(jīng)過大量調(diào)試,在考慮準(zhǔn)確率、運算速度等問題的前提下選擇合適的參數(shù)。
本文中文文本情感分析的數(shù)據(jù)來源采用山東石油化工學(xué)院官方微博上的評論,用以分析該校學(xué)生在日常生活和熱點問題上的情緒表達。研究的整體思路如下:首先需要利用網(wǎng)絡(luò)爬蟲對網(wǎng)站數(shù)據(jù)進行采集,得到的數(shù)據(jù)集中包含了文字、符號和表情等多種信息,對無用信息進行剔除,并篩選出有效信息,將有用的語句作為文本情感分析的內(nèi)容,并根據(jù)文本的情感傾向標(biāo)注積極和消極情感標(biāo)簽。該文本為大多為語句式結(jié)構(gòu),接下來對文本預(yù)處理,將語句分詞處理,轉(zhuǎn)換為詞語的形式,并生成詞向量,形成機器學(xué)習(xí)的數(shù)據(jù)集和訓(xùn)練集。最后,將精簡數(shù)據(jù)集輸入SVM訓(xùn)練器進行分類訓(xùn)練,得到預(yù)測結(jié)果。中文文本情感分類過程示意圖如圖2所示。
圖2 中文文本情感分類過程示意圖
文本數(shù)據(jù)通過對山東石油化工學(xué)院官方微博下方評論數(shù)據(jù)的爬取獲得。除了用戶評論內(nèi)容外,還可得到相應(yīng)的用戶id、用戶昵稱和評論時間等相關(guān)信息。在爬取數(shù)據(jù)時,首先根據(jù)瀏覽器中的開發(fā)者工具查看抓包過程中的相關(guān)信息,接著使用Python編程模擬發(fā)出網(wǎng)絡(luò)請求,由于返回的數(shù)據(jù)是json數(shù)據(jù),還需要用Python自帶的json庫對其進行解析,最后將解析后的數(shù)據(jù)保存為.csv文件。數(shù)據(jù)爬取結(jié)果如圖3所示,為.csv文件中保存的微博評論區(qū)獲取的用戶id、用戶昵稱、用戶所在城市和評論內(nèi)容等相關(guān)數(shù)據(jù)。
圖3 數(shù)據(jù)爬取結(jié)果
直接從網(wǎng)頁爬取的數(shù)據(jù)中存在一定的無效信息,無法直接使用,如存在空白項、重復(fù)項和存在表情符號等問題,需先進行數(shù)據(jù)清洗,過濾掉無用信息。保留下來的中文文本的處理需將整個句子劃為單詞的形式,包括對中文的分詞、去停用詞和提取關(guān)鍵詞等。文本中含有標(biāo)點符號、介詞和語氣詞等,這些詞對理解文本沒有實際意義,應(yīng)從分詞結(jié)果中去除,這些詞稱之為停用詞[5]。利用哈爾濱工業(yè)大學(xué)創(chuàng)建的停用詞列表,過濾文本中的停用詞,減少停用詞對語句分析造成的干擾。過濾后的文本按照語意劃分分詞,采用開源的jieba分詞工具的精確模式切分。
文本向量化是自然語言處理的重要一步。文本向量化即將文本以向量的形式表現(xiàn)出來,這樣就把自然語言的分析問題轉(zhuǎn)化為機器學(xué)習(xí)的問題。通常,以詞為基本單位進行文本向量化。本文采用2013年由Google公司提出的生成詞向量的神經(jīng)網(wǎng)絡(luò)算法“Word2vec”[6]。該算法基于神經(jīng)網(wǎng)絡(luò)模型,通過對給定語料庫的學(xué)習(xí),生成維度不同的詞向量空間,由于該方法是基于上下文對詞語進行分析處理,因而能夠達到本文需要達到的情感傾向性分類目的。
本文將微博評論區(qū)爬取的評論文本經(jīng)過初步篩選和標(biāo)注,得到積極情感文本329條和消極情感文本406條,共735條。該文本信息作為情感分析的原始信息,將經(jīng)過處理的文本向量分為訓(xùn)練集和測試集2部分。采用支持向量機模型預(yù)測,將訓(xùn)練集和測試集輸入支持向量機分類器訓(xùn)練,得到預(yù)測的準(zhǔn)確率。由于支持向量機的分類效果與所選擇的核函數(shù)、懲罰因子等有一定關(guān)系,所以選擇合適的參數(shù)是達到良好分類效果的關(guān)鍵。
根據(jù)以上分析,經(jīng)過數(shù)據(jù)爬取、數(shù)據(jù)預(yù)處理等步驟,將生成的詞向量分為訓(xùn)練集和測試集輸入SVM進行訓(xùn)練,得到預(yù)測模型。SVM的懲罰因子選擇默認參數(shù)1,核函數(shù)分別選擇常用的線性核函數(shù)、多項式核函數(shù)和徑向基核函數(shù)進行測試。在不同核函數(shù)下的分類準(zhǔn)確率見表1。
表1 SVM選擇不同核函數(shù)的分類結(jié)果
由表1可知,當(dāng)核函數(shù)選擇多項式核函數(shù)時,分類效果最好,可達到91.2%,遠高于其他2種核函數(shù)下的準(zhǔn)確率。所以,選擇多項式核函數(shù)作為中文文本情感分類預(yù)測模型的核函數(shù)。除了核函數(shù)影響分類結(jié)果準(zhǔn)確率之外,懲罰因子與分類結(jié)果密切相關(guān)。在選擇多項式核函數(shù)的前提下,測試不同懲罰因子對分類結(jié)果的影響,見表2。
表2 SVM選擇不同懲罰因子的分類結(jié)果
由表2的分類結(jié)果可知,選擇懲罰因子為0.8,核函數(shù)為多項式核函數(shù)能夠達到較好的分類效果,分類準(zhǔn)確率可達到95.2%。由于本文所采用的文本數(shù)量有限,且選取學(xué)校官方微博下的評論作為數(shù)據(jù)集,數(shù)據(jù)集的內(nèi)容不夠全面,因此,測試結(jié)果具有一定的局限性。未來可在該方面繼續(xù)研究,得到更為廣泛適用的預(yù)測模型。
本文建立了基于支持向量機的中文文本情感分析模型,通過支持向量機訓(xùn)練對山東石油化工學(xué)院微博下的評論進行情感傾向分析,可以達到分類正確率95%以上。該模型的分析,可以得到負面情緒文本內(nèi)容,以及所對應(yīng)的用戶和話題等信息,可以針對性地分析學(xué)生的心理變化,對學(xué)校疏導(dǎo)和緩解學(xué)生負面情緒有一定的幫助。