趙禛 程良倫
(
廣東工業大學計算機學院,廣東廣州 510000)
文本的情感傾向分析作為一個多學科交叉的研究領域,涉及包括自然語言處理、機器學習、人工智能等多個領域。情感傾向分析能夠自動判斷文本的情感極性類別并給出相應的置信度。能夠幫助企業理解用戶消費習慣,分析熱點話題和危情監控,同時提供有力的決策支持。
本文針對微博內容融合語意理解的機器學習分類器進行情感傾向分析,提高情感分析方法的適用性和準確率。
當前的情感分析方法分為基于情感詞典和基于機器學習這兩種。
2.1.1 基于情感詞典方法的研究
文獻[1]中設計了一個利用結構化語言學特征實現基于詞典的無監督類情感分析系統。優化在不同應用環境中的情感分析。文獻[2]提出了一種基于信息增益的有監督維吾爾文分析方法,避免傳統空格分詞方法造成的維數災難和特征項語義不完整等問題。文獻[3]提出在傳統情感分析模型基礎上引入模糊數學中的“直覺模糊集(IFS)”,分別建立形容詞、動詞、語氣詞等模糊情感特征詞庫。魏廣順,吳開超[4]等人提出詞向量疊加方法和加權詞向量方法進行文本特征的提取,從而更深層次的提出短文本特征。
2.1.2 基于機器學習方法的研究
基于機器學習方法在特定領域有著比較高的準確率。劉新星[5]等人提出一種離散特征和詞向量特征的開關遞歸神經網絡模型。首先直接循環圖為語句建模,采用開關遞歸神經網絡模型完成產品屬性情感分析任務,并在模型中集成離散特征和詞向量特征,最后分三種任務模型完成屬性提取和情感分析任務。錢凱雨等人[6]提出一種可融入習語信息的樹型-長短時記憶網絡模型,可以很好的對習語進行建模。文獻[7]中以詞向量維度、詞向量訓練規模、滑動窗口大小和正則化方法等作為不同模型的影響因素,設計單層卷積神經網絡處理中文情感分析。秦鋒王恒等人[8]提出一種結合上下文消息的情感分析方法,使用隱馬爾可夫支持向量機把微博上下文語境融入到情感分析問題中,更好的分析微博情感極性。
2.2.1 基于情感詞典的情感分析
例舉一條微博內容:“今天去看了吳京導演的新片‘戰狼2’,看得有點熱血沸騰,確實是一部非常優秀的好片,展現出了中華民族的氣勢,但是3D的電影戴眼鏡的看得時間久會有點不舒服?!?/p>
目前有情感詞典如下:
情感詞:
positive:期待、優秀、有趣、好片、熱血
negative:糟糕、失望、尷尬、傷心、不
程度詞:
level1:小、有點、稍微
level2:大、非常、很
設定情感詞positive詞+1,negative詞-1;程度詞level1*1,level2*2;
那么微博內容的情感值為:1*1+1*2+1-1=2
其中正向詞得分為3,負向詞的得分為1,可輸出結果為[review:2]或者[review:(3:1)]。
該方法的重點在于構建符合文本語意環境的情感詞典。
2.2.2 基于機器學習的情感分析
通常給予機器學習的情感分析方法分為以下五個步驟:
(1)中文分詞。中文預處理,常用方法:基于詞典、基于規則、基于統計、基于字標注、基于人工智能。
(2)特征提取。文本中拿什么作為特征,常根據詞性或者位置。
(3)特征選擇。從積極的數據中按詞來選擇積極的所有特征
(4)分類模型。選擇合適的算法訓練模型并測試數據集合。
本文選用微博數據文本集,數據文本沒有標注,若進行人工標注測需要消耗大量人力成本。而微博數據集采集相對簡單,所以我們首先選取部分文本,利用基本情感詞典粗略估計選取文本的情感傾向性。然后選取分值較高和分值較低的文本作為人工標注的訓練文本。為后續的機器學習訓練做數據準備。詳細過程如下:
因為給予情感詞匯的分析,字典的準確性和靈活性對結果至關重要。字典選取來自知網的情感詞庫,原始字典按照習慣將詞匯分為三大類:
(1)情感詞語。積極評價詞;積極情感詞;消極評價詞;消極情感詞。
(2)程度詞。從最重的level5以此降低到level1,五個等級。
(3)否定詞?;谝陨咸攸c,否定詞的存在可以用來判別是否進行詞匯的極性反轉,程度詞的存在可以給予不同的情感詞不同的分數,而情感詞可以整合積極詞和消極詞兩部分。
3.1.1 詞典修改
由于知網的詞典是針對所有領域,因此在微博內容詞匯的劃分會有失偏頗,前期采用人工的方法對辭典的三個分類進行略微調整。調整如下:
(1)積極詞中刪除“要,用,開通,需,向,應,欲,通,深,對,會,長,常,上,經濟,主要,紅,幽,靈,穎,硬,不變,是,明顯,約,剛,剛剛,到,事實上,基,基部”。
(2)消極詞刪除了‘大’,‘怊’‘,慳’‘,悱’,‘憒’‘,勝’‘,偏’。
(3)在否定詞增加了‘無’‘,不’‘,不是’。
(4)在程度詞中增加了‘百分之百’‘,非?!?重大’‘,大幅’‘,半點’‘,小幅’。
3.1.2 文本分塊
一條微博,通常由不同的部分的組成,而每個部分的重要程度不同。對于一條長微博來說,文本長度足夠的情況下,給定‘K1',‘K2'這兩個參數,分別代表[0:K1]句和[K2-1:]句。這兩部分分數的權重(Weight)相比于中間部分[K1:K2]的權重更高。
當一條微博過短時,認為夠長來進行分塊,即[0:K1]∩[K2-1:]≠,此時將忽視‘K1'‘,K2'這兩個參數,全文采用統一權重來計算分數。
為了減少首尾權重(Weight)對于文本整體的影響過大,以至于算法忽略文本[K1:K2]部分的分數,將首尾的部分得出的分數乘以對應的頻率,即:
s(i)是每部分對應的積極或者消極的分數,p(i)是每部分積極或者消極詞的頻率。
一些否定詞的使用會讓詞語的極性反轉,如‘不是’,‘不好’因此需要在詞語的位置前繼續搜索一到兩個位置,查找是否含有否定詞,然后進行極性反轉。-1的指數t取決于是否進行極性反轉,l表示程度詞的程度值,word(j)表示詞語的原始情感值。
通過對一百條微博的內容進行人工情感標注,計算每個設置權重weight選出最優weight參數,將比重設置為1.52,結果如圖1所示。
從圖1可見爭取率最高是90%,對應的權重weight為1.52。
3.1.3 情感詞典打分
至此,我們選擇微博文本數據集匹配情感辭典進行打分,定義高分數據集data1分值為(10~),低分數據集data2分值區間為(-10,-5)。盡量保持兩個數據集數量相同,以保證后續分類器訓練。
我們選擇向量空間模型(VSM)作為特征提取,即將樣本轉化為向量的形式,需要一下兩個步驟。
3.2.1 確定特征集
將data1和data2兩個訓練數據集使用分詞工具Iksegment(Java)進行分詞。
3.2.2 特征提取
選擇文本中的特征詞,構造詞袋模型,統計詞頻,形成詞頻矩陣。這里選用TF-IDF來計算詞苦衷最具有代表性的詞。
為了選出最能區分不同情感的分詞,因此這里對TF-IDF加入PMI點互信息來加強分詞關聯性。
pos表示文檔情感,word表示分詞。p(pos)*p(word)表示在pos情感同時出現word分詞的概率。
將data1和data2數據集個分為n份,其中n-1份作為訓練集,一份測試集,本文選用pathon從庫sklearn中載入logisticRegression,svm進行測試,可選用多種分類器進行測試擇優選用。
代碼如下:
1.train_set = data[1:n,:]
2.test_set = data[n:,:]
3.train = train_set[:,1:]
4.tag = train_set[:, 0]
5.
6.import sklearn
7.from sklearn.svm
8.from sklearn.linear_model import LogisticRegression 9.clf_lr = LogisticRegression()
10.clf_lr_res = clf_lr.fit(train,tag)
11.train_pred = clf_lr_res.predict(train)
12.test_pred = clf_lr_res.predict(test_set)...
通過測試集重復測試多次,使用交叉驗證測試分類器的準確度,比較不同分類器的準確率,選出最優分類器。
實驗使用pc機,內存16g,硬盤250g。實驗中的微博數據來自于新浪微博一萬條微博內容。
圖1 權重選擇折線圖
圖2 算法效果對比圖
本實驗選擇三種常用的分類器logistic Regression,樸素貝葉斯(Naive Bayes),支持向量機(SVM)等方法進行測試,結果顯示如下:
1. GaussianNB `s accuracy is 0.760000
2. LogisticRegression`s accuracy is 0.810000
3. SVM`s accuracy is 0.8000
我們來評測分類器效果時使用準確率(Accuracy),精確率(Precision)和召回率(Recall)來判斷。準確率反映了分類器統對整個樣本的判定能力——能將正的判定為正負的判定為負。精確率反應了被分類器判定的正例中真正的正例樣本的比重。召回率反應了被正確判定的正例占總的正例的比重。公式如下:
(1)真正類(True Positive,TP):被模型預測為正類的正樣本。
(2)假正類(False Positive,FP):被模型預測為正類的負樣本。
(3)假負類(False Negative,FN):被模型預測為負類的正樣本。
(4)真負類(True Negative,TN):被模型預測為負類的負樣本。測試結果如圖2顯示。
由實驗結果與三種機器學習單獨進行對比顯示,融合語意詞典方法的機器學習分類器效果更勝一籌,而且適合在不同領域中的應用,大量減少了人工標注消耗。
通過實驗結果可知,ben問題出的融合語義理解的機器學習情感分析算法在情感分析中具有一定的優勢。本文針對現在單一的情感分析手段進行了融合優化,結合語意理解情感詞的強關聯性和機器學習分類算法的高效準確性,從而改善了單一方法的應用領域局限性。在后續的研究中,我們將針對分詞器效率優化繼續更加深入的研究。
[1]蘇育挺,王慧晶.利用結構化特征解決面向社交媒體信息情感分析的研究[J].小型微型計算機系統,2017,(12):2625-2629.
[2]魏志遠,岳振軍.基于直覺模糊集的情感分析研究方法[J].通信技術,2017,(12):2692-2697.
[3]伊爾夏提·吐爾貢,吾守爾·斯拉木,熱西旦木·吐爾洪太.基于有監督分詞方法的維吾爾文情感分析[J].計算機工程與設計,2017,(11):3143-3146,3178.
[4]魏廣順,吳開超.基于詞向量模型的情感分析[J].計算機系統應用,2017,(3):182-186.
[5]劉新星,姬東鴻,任亞峰.基于神經網絡模型的產品屬性情感分析[J].計算機應用,2017,(6):1735-1740.
[6]錢凱雨,郭立鵬.融入習語信息的網絡評論情感分析研究[J].小型微型計算機系統,2017,(6):1273-1277.
[7]王盛玉,曾碧卿,胡翩翩.基于卷積神經網絡參數優化的中文情感分析[J].計算機工程,2017,43(8):200-207.
[8]秦鋒,王恒,鄭嘯,等.基于上下文語境的微博情感分析[J].計算機工程,2017,(3):241-246,252.