李 鼎
(西安航空學(xué)院 人事處,西安 710077)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,尤其是自媒體(如微博、論壇、貼吧、社區(qū)等)的出現(xiàn),改變了傳統(tǒng)媒體一枝獨秀的局面。傳統(tǒng)媒體是通過廣播形式向用戶單方向傳播信息,而現(xiàn)代互聯(lián)網(wǎng)媒體時代,人們不僅是信息的被動消費者,更多的則是信息的生產(chǎn)者,人們主動參與網(wǎng)絡(luò)互動,比如就某一話題發(fā)表自己的觀點,參與時事討論等。隨著網(wǎng)民數(shù)量的急劇攀升,隨之而來的是海量數(shù)據(jù)的產(chǎn)生。能夠快速地從網(wǎng)絡(luò)海量信息中提取出網(wǎng)民的情感傾向,及時掌握網(wǎng)民對某一事件的態(tài)度和看法,已經(jīng)成為重要的研究課題。
現(xiàn)今的網(wǎng)絡(luò)數(shù)據(jù)來源多樣,我們可以通過諸如新浪微博、大秦論壇、百度貼吧等主流社交媒體獲得針對特定話題的語料信息,并對其進(jìn)行整理分析,從中得到有用的信息加以利用。然而,現(xiàn)存的情感分析技術(shù)存在著這樣或那樣的缺點,基于文本的情感分析方法往往對于特殊場景的判斷不準(zhǔn)確;基于機(jī)器學(xué)習(xí)的情感分析方法往往需要大量豐富的數(shù)據(jù)集,準(zhǔn)確率難以得到保證。
本文基于這樣的現(xiàn)實背景,研究了一種提高情感分類準(zhǔn)確率的方法,使情感分析的結(jié)果更加準(zhǔn)確。
采用五組不同的數(shù)據(jù)文本進(jìn)行實驗,數(shù)據(jù)來源于新浪微博、大秦論壇等知名微博和論壇,每組1000條數(shù)據(jù)。經(jīng)過程序自動運行結(jié)果和手工標(biāo)注不同數(shù)據(jù)組的結(jié)果進(jìn)行比較,對于不同數(shù)據(jù)組,使用基于情感詞典[1]的情感分析方法進(jìn)行情感分析[2-3]得到的結(jié)果準(zhǔn)確率如圖1所示。
圖1不同數(shù)據(jù)組情感分析準(zhǔn)確率表示
由圖1可以看出,第一組、第二組、第四組和第五組的實驗準(zhǔn)確率都在50%左右,而第三組的準(zhǔn)確率卻高出了很多,達(dá)到了65%。第三組數(shù)據(jù)是從網(wǎng)上下載的評論集中抽取的數(shù)據(jù),而其他數(shù)據(jù)都是爬蟲抓取的網(wǎng)絡(luò)數(shù)據(jù)。本文基于情感詞典的情感分析算法,采用切詞后對于得到的詞組進(jìn)行關(guān)鍵字匹配,并結(jié)合詞性權(quán)重分配的方法實現(xiàn),究其原因應(yīng)該是網(wǎng)絡(luò)評論集合中的評論句式不像爬蟲抓取的網(wǎng)絡(luò)數(shù)據(jù)那么雜亂無章,用到的評論詞傾向性比較明顯,大部分評論句式符合情感算法中考慮到的情況,所以準(zhǔn)確率相對提高了很多。然而對于網(wǎng)絡(luò)爬蟲抓取到的普通數(shù)據(jù),往往雜亂無章,用戶的遣詞用句并不是特別嚴(yán)謹(jǐn)準(zhǔn)確,所以很多句子并不滿足情感算法設(shè)計的句子結(jié)構(gòu),因此準(zhǔn)確率較低。從結(jié)果來看,使用本文實現(xiàn)的基于情感詞典的情感分析算法對于網(wǎng)絡(luò)爬蟲抓取到的數(shù)據(jù)進(jìn)行分析,準(zhǔn)確率較低,需要進(jìn)一步改進(jìn)。因此考慮到使用情感詞典構(gòu)建相關(guān)數(shù)據(jù)集的情感特征,并結(jié)合機(jī)器學(xué)習(xí)算法作為分類器進(jìn)行情感分類,看能否提高分析準(zhǔn)確率。
在基于機(jī)器學(xué)習(xí)的情感分析方法研究中,選擇研究KNN[4-6]和SVM[7-9]情感分析方法,實驗采用數(shù)據(jù)集包含且大于1-1數(shù)據(jù)集,并進(jìn)行初步的人工篩選[10-11]。篩選過程包括以下方面。
(1)過濾掉其中噪音較大的文檔。這里的噪音指的是句子中含有太多二義詞,或者文檔中有太多詞語的含義上下文相關(guān)。由于噪音過大會導(dǎo)致分類準(zhǔn)確率下降嚴(yán)重,故在此選擇中去除這部分文檔。
(2)剔除其中字?jǐn)?shù)極少的文檔。文檔中的字?jǐn)?shù)過少,比如只有一個字,這會導(dǎo)致對其通過向量空間模型后,向量表示中絕大部分維度的值為零,引起向量稀疏的問題,導(dǎo)致分類的準(zhǔn)確率下降。
(3)再進(jìn)行人工標(biāo)注文檔類別,要求標(biāo)注的質(zhì)量必須較高,即人工判定的準(zhǔn)確率要較高,以免引起過大的人工誤差。
最后,在實驗中,通過TF-IDF等文本向量化方法對標(biāo)注過后的文檔進(jìn)行向量空間建模,得出表示文檔的文檔向量。實驗中得到文檔向量如圖2所示。
圖2實驗文檔的向量空間模型表示
需要說明的是,由于篇幅有限,且為了將文檔向量表現(xiàn)清楚,實驗中過濾掉了向量計算中后面所有維值為零的那些維度,圖2中就展示了這種處理。然而在實際計算中,必須將所有向量統(tǒng)一維度,以方便后續(xù)計算處理,不夠維度的需補(bǔ)上在前期處理中故意略去的零值。
從不同訓(xùn)練數(shù)據(jù)集和不同訓(xùn)練數(shù)據(jù)量兩方面進(jìn)行基于機(jī)器學(xué)習(xí)的情感分析方法研究,因為訓(xùn)練數(shù)據(jù)對于機(jī)器學(xué)習(xí)方法影響較大,首先研究不同訓(xùn)練數(shù)據(jù)量下KNN和SVM情感分析方法的準(zhǔn)確率,實驗選擇同一組數(shù)據(jù)集進(jìn)行準(zhǔn)確率檢測。如圖3所示。
圖3不同訓(xùn)練數(shù)據(jù)量KNN和SVM情感分類準(zhǔn)確率
由圖3可以看出,隨著訓(xùn)練數(shù)據(jù)量的增大,KNN和SVM的準(zhǔn)確率都有明顯提高。在數(shù)據(jù)量小于10000時,KNN的準(zhǔn)確率稍好于SVM,且在數(shù)據(jù)量較小時,KNN的比較速度相對較快,效率更高。但隨著訓(xùn)練數(shù)據(jù)量的增加,SVM的準(zhǔn)確率提升更明顯。在訓(xùn)練數(shù)據(jù)量達(dá)到40000時,兩者準(zhǔn)確率幾乎一樣;而在訓(xùn)練數(shù)據(jù)量到達(dá)50000時,SVM的準(zhǔn)確率明顯高于KNN。由此得出結(jié)論:從準(zhǔn)確率和效率兩方面綜合考慮,在訓(xùn)練數(shù)據(jù)量小于10000時,KNN效果明顯好于SVM;在訓(xùn)練數(shù)據(jù)量大于50000時,SVM的效果明顯好于KNN。訓(xùn)練數(shù)據(jù)量在10000到50000,兩者準(zhǔn)確率相差不大,隨著訓(xùn)練數(shù)據(jù)量增大,SVM準(zhǔn)確率穩(wěn)步提高,而KNN準(zhǔn)確率提高的速度逐漸變緩。在此提出可將KNN和SVM的結(jié)果做線性結(jié)合看能否提高準(zhǔn)確率,而且隨著訓(xùn)練數(shù)據(jù)的增加,SVM占的比重應(yīng)該逐漸增大。
其次,使用不同的數(shù)據(jù)集來進(jìn)行情感分析算法的準(zhǔn)確率檢測。在此使用50000條訓(xùn)練數(shù)據(jù)得出的KNN和SVM情感分析方法對五組數(shù)據(jù)進(jìn)行傾向性分析,并檢測其準(zhǔn)確率,如圖4所示。
由圖4可以看出,使用SVM方法對不同數(shù)據(jù)組進(jìn)行情感分析,準(zhǔn)確率在64%到70%之間,平均在68%左右,比較穩(wěn)定。使用KNN方法對不同數(shù)據(jù)組進(jìn)行情感分析,準(zhǔn)確率在62%到百分之69%之間,平均在65%左右,也比較穩(wěn)定。說明機(jī)器學(xué)習(xí)方法在本文不同數(shù)據(jù)集上的情感分類準(zhǔn)確率較為穩(wěn)定。
圖4不同數(shù)據(jù)組情感分析準(zhǔn)確率表示
使用情感詞典進(jìn)行文本的情感分析,其主要特點是對文本的情感分析直接作用在了詞語的傾向性上,粒度細(xì),分析精準(zhǔn),但同時也受到了自然語言處理技術(shù)的限制,尤其是受到漢語中某些詞語的意思上下文影響較大的困擾,比如在一句話中某個詞語所表達(dá)的意思可能到另一句話中卻完全相反,這就增大了這種分析方法的誤差和難度。因此,總體來說,基于情感詞典的情感分析效果一般。然而漢語的句式變化多樣,很難把各種句式的表現(xiàn)形式都做出相應(yīng)的情感分析方法[12]。因此,對于符合基本句式的句子使用情感詞典分析方法,對于不符合基本句式的句子則使用機(jī)器學(xué)習(xí)情感分析方法,最終使用情感詞典與機(jī)器學(xué)習(xí)相結(jié)合的方法得出文本的情感傾向。
在機(jī)器學(xué)習(xí)方法的研究[13]中,KNN算法是一種無監(jiān)督的機(jī)器學(xué)習(xí)方法,具有領(lǐng)域無關(guān)性的特點,這對于跨領(lǐng)域的數(shù)據(jù)分類是個很好優(yōu)勢,然而其只是單純依靠向量間的相似程度進(jìn)行分類,沒有統(tǒng)計信息,而且初始化簇中心采用隨機(jī)的方式很容易造成誤差,這就導(dǎo)致KNN分類算法的準(zhǔn)確率不是很高。而SVM需要進(jìn)行模型訓(xùn)練,是一種有監(jiān)督的機(jī)器學(xué)習(xí)方法,具有統(tǒng)計特性,且具備領(lǐng)域相關(guān)性,但對于未在訓(xùn)練文本中出現(xiàn)的特征難以納入訓(xùn)練后的模型文件,也就是說其預(yù)測準(zhǔn)確率十分依賴于訓(xùn)練樣本,訓(xùn)練樣本的質(zhì)量和覆蓋率會很大程度上影響到SVM的預(yù)測準(zhǔn)確率,因此會出現(xiàn)預(yù)測不準(zhǔn)的問題。由此可見,單純使用一種機(jī)器學(xué)習(xí)方法分析難以得到十分高的準(zhǔn)確率,將KNN和SVM兩種方法相結(jié)合是一種提高情感分析準(zhǔn)確率的可選方案。
KNN基本沒有訓(xùn)練時間,采用一個新的樣本記住就可以了。但預(yù)測時間卻可能需要很久。如果一路上記了100萬個樣本,那就要和100萬個樣本算距離,再排序出前K個最近的樣本,即使用堆排序或者其他改進(jìn)過的排序算法,只在乎前k個順序不再往下排序,也還是需要k*log(n)數(shù)量級的排序運算,特別是預(yù)測大量樣本之后的樣例。
SVM訓(xùn)練時間相對久一些,不過是在可接受的時間內(nèi)。預(yù)測時需要對所有訓(xùn)練樣本做核函數(shù)運算,雖然不能在很短的時間內(nèi)計算出結(jié)果,但計算時間也在可接受范圍內(nèi)。另外,由于核函數(shù)的存在,有足夠量的大數(shù)據(jù),預(yù)測精度會稍高一些。
基于以上的實驗研究,本文通過研究各種情感分析方法的優(yōu)缺點,使用情感詞典方法以及KNN和SVM相結(jié)合的方式進(jìn)行情感分類,結(jié)合兩者的優(yōu)點,摒棄各自的缺點,將兩者優(yōu)化使用,以期提高情感分類的準(zhǔn)確率。然而這就涉及到兩者之間的加權(quán)方法,本文采用以下公式來計算兩者加權(quán)后的文本情感標(biāo)簽。計算公式如下:
EEE=σE1+(1-σ)E2
(1)
式中,E表示文檔的分類后加權(quán)值;E1表示基于SVM算法得到的分類標(biāo)簽;E2表示基于KNN算法得到的分類標(biāo)簽;σ表示加權(quán)系數(shù)。
通過以上分析,確定了結(jié)合KNN和SVM的加權(quán)公式,然而,公式中的參數(shù)加權(quán)因子 的取值還未知,結(jié)合上一節(jié)對情感分析算法準(zhǔn)確率的研究,并且考慮到KNN以及SVM的優(yōu)缺點,采用分段線性結(jié)合的方法改進(jìn)情感分類方法。當(dāng)訓(xùn)練數(shù)據(jù)量小于10000條時σ取0,即使用KNN的方法進(jìn)行情感分類,因為KNN基本沒有訓(xùn)練時間,采用一個新的樣本記住就可以了,數(shù)據(jù)量較小時預(yù)測也會較快。而SVM在數(shù)據(jù)量較小時準(zhǔn)確率較低,而且訓(xùn)練時間相對久一些。當(dāng)數(shù)據(jù)量大于50000條時σ取1,即使用SVM的方法進(jìn)行情感分類,因為數(shù)據(jù)量較大時,使用SVM方法的準(zhǔn)確率會稍高一些,而且預(yù)測時間會比使用KNN方法快。當(dāng)數(shù)據(jù)量在10000到50000之間,σ取(n-10000)/50000,這里n為訓(xùn)練數(shù)據(jù)量,即隨著數(shù)據(jù)量的增加,SVM方法的比重逐漸增大,KNN方法的比重逐漸減小。
公式(1)通過對KNN和SVM各自得出的分類標(biāo)簽進(jìn)行加權(quán)計算,結(jié)合兩個方法判斷出最終的結(jié)果分類,得出分類后的加權(quán)值E是一個小數(shù),還無法判斷最終結(jié)果分類標(biāo)簽,這就需要進(jìn)行下一步處理。
計算得出分類后的標(biāo)簽值E后,由于E是小數(shù),于是本文采用二次處理,再次根據(jù)公式(2)計算每個情感類別的類別標(biāo)簽和E的一緯歐式距離:
Distance(i)=||Labeli,E| |=|Labeli-E| (2)
Distancemin=mini(Distance(i) (3)
式中,Distance(i) 表示類別標(biāo)簽與加權(quán)后標(biāo)簽的距離;Labeli表示情感類別標(biāo)簽;E表示KNN和SVM分類結(jié)果加權(quán)后的標(biāo)簽值。
得出Distance(i)后,由于結(jié)果必然為正數(shù),這時我們可以采用比較Distance(i)與每個類別標(biāo)簽距離的相對大小來進(jìn)行類別指定,即如果算出的Distance(i)是所有E與類別標(biāo)簽距離中的最小值,則將結(jié)果標(biāo)簽賦值為i。本文根據(jù)公式(3)得到最小距離的類別標(biāo)簽作為文檔的情感分類標(biāo)簽,因為在這些距離中一定存在最小值,因此結(jié)果分類標(biāo)簽必然是唯一的。
經(jīng)過程序自動運行結(jié)果和手工標(biāo)注的結(jié)果進(jìn)行比較,得出不同訓(xùn)練數(shù)量不同的方法準(zhǔn)確率變化,如圖5所示。
圖5分類準(zhǔn)確率變化圖
顯然,由圖5可以看出,在訓(xùn)練數(shù)據(jù)量較少時,機(jī)器學(xué)習(xí)方法的準(zhǔn)確率較低,而情感詞典的方法可以適當(dāng)彌補(bǔ)機(jī)器學(xué)習(xí)方法準(zhǔn)確率較低的問題,提高準(zhǔn)確率。而隨著訓(xùn)練數(shù)據(jù)量的增加,其準(zhǔn)確率得到相應(yīng)提升,在訓(xùn)練數(shù)據(jù)量在10000到50000之間時,將SVM和KNN方法線性結(jié)合,相比于單獨使用KNN或者SVM方法,提高了機(jī)器學(xué)習(xí)方法準(zhǔn)確率3-4個百分點。同時結(jié)合基于情感詞典的情感分析方法,相比于單獨使用KNN或者SVM方法準(zhǔn)確率提高了5-6個百分點。當(dāng)數(shù)據(jù)量到達(dá)50000時,SVM的準(zhǔn)確率達(dá)到了較好的效果,同時與基于情感詞典的方法相結(jié)合,相比于單獨使用KNN或者SVM方法準(zhǔn)確率仍提高2個百分點。實驗結(jié)果表明,使用情感詞典以及SVM和KNN加權(quán)方式比單獨使用SVM和KNN方法得到的準(zhǔn)確率有一定提升。
實驗表明,本實驗較單獨使用領(lǐng)域無關(guān)性的KNN分類器所得到的準(zhǔn)確率平均提升達(dá)到4個百分點,提升效果明顯。
實驗表明,本實驗的分類準(zhǔn)確率較單獨使用SVM進(jìn)行訓(xùn)練預(yù)測的分類準(zhǔn)確率平均提升為3個百分點。
綜上所述,本文提出的結(jié)合情感詞典以及SVM和KNN加權(quán)方式來進(jìn)行情感分類的方式是有效的,在分類準(zhǔn)確率方面,比單獨使用SVM和KNN提升效果明顯。
結(jié)合實驗結(jié)果,筆者對本文提出的結(jié)合情感詞典以及SVM和KNN加權(quán)方式的改進(jìn)方法使準(zhǔn)確率得以提升的理論原因進(jìn)行分析,本文認(rèn)為準(zhǔn)確率提升的理由有以下方面。
(1)由于SVM是基于統(tǒng)計學(xué)習(xí)理論的分類方法,在預(yù)測前必須進(jìn)行模型的訓(xùn)練。然而,對于未在訓(xùn)練樣本中出現(xiàn)的特征便在訓(xùn)練結(jié)束后的模型中沒有體現(xiàn)。當(dāng)進(jìn)行預(yù)測時,如果出現(xiàn)模型中未出現(xiàn)的特征時,很大概率上會出現(xiàn)預(yù)測失敗,這就是單獨使用SVM時準(zhǔn)確率得不到提高的一個重要原因。而KNN沒有訓(xùn)練過程,不依賴已經(jīng)有的統(tǒng)計信息,恰好彌補(bǔ)了SVM的缺點。
(2)由于KNN是單純依賴文檔向量間的相似度距離來進(jìn)行文檔的分類,并且在做初始化簇心時采用隨機(jī)算法來進(jìn)行指定,這直接導(dǎo)致了分類結(jié)果的無法預(yù)測和準(zhǔn)確率的低下。而SVM沒有隨機(jī)化的過程,恰好彌補(bǔ)了KNN的部分缺點。
(3)在本文提出的加權(quán)公式中,可以通過加權(quán)系數(shù)的變化進(jìn)而調(diào)整SVM和KNN在分類方面的貢獻(xiàn)率,因此可以通過實驗獲得比較理想的加權(quán)系數(shù),得到最好的分類效果,并且將SVM和KNN相結(jié)合提高分類的準(zhǔn)確率。
(4)由于漢語句式的特殊性,能夠滿足情感詞典情感分析算法的簡單句式,因此通過情感詞典算法分析出的情感值會比較準(zhǔn)確,所以,采用情感詞典、KNN和SVM三者結(jié)合進(jìn)行情感分類的方法,可以使情感分析的準(zhǔn)確率明顯提高。
本文通過對采用情感詞典的情感分析方法以及基于機(jī)器學(xué)習(xí)的情感分析方法的情感分析準(zhǔn)確率的研究,發(fā)現(xiàn)使用傳統(tǒng)情感分析方法準(zhǔn)確率較低,分析其可能存在的原因后提出了結(jié)合情感詞典、KNN和SVM來進(jìn)行情感分類的方法,并提出KNN和SVM兩者的加權(quán)公式,然后對改進(jìn)的方法通過大量實驗來檢測其效果。實驗結(jié)果表明,改進(jìn)后的情感分析方法相比于單獨使用KNN或者SVM方法準(zhǔn)確率提高5%,因此通過情感詞典以及SVMT和KNN加權(quán)方式相結(jié)合的方式來提高情感分析的準(zhǔn)確率是可行的。