王思凡
摘要:“情感極性分析”是對帶有感情色彩的主觀性文本進行分析、處理、歸納和推理的過程,是文本情感分析的一個分類。目前廣泛用于產品評估、輿情預控與信息分析。本文將分別采用兩種目前常見的情感極性分析方法,即情感詞典的方法和基于機器學習的方法進行情感分析實驗。
關鍵詞:文本挖掘;情感字典;程度;極性分析
中圖分類號:TP391.1;TP181
文獻標識碼:A
文章編號:1672 - 9129(2018)12 - 0113 - 01
1 情感極性分析法
1.1 原理。
基于情感詞典的情感分析應該是最簡單最基本的情感極性分析方法。其主要判斷思路是:對文檔分詞,找出文檔中的情感詞、否定詞以及程度副詞。其中,找出否定詞是因為其會將評價的情感轉向相反的方向。
因此,在找出情感詞之后,要判斷情感詞之前是否有否定詞及程度副詞,將它之前的否定詞或程度副詞劃分為一個組,如果有否定詞將情感詞的情感權值乘以-1,如果有程度副詞就乘以程度副詞的程度值,最后所有組的得分加起來,大于O的歸于正向,小于0的歸于負向。在實驗中,我們使用的是BosonNLP的情感詞典。BosonNLP是基于微博、新聞、論壇等數(shù)據來源構建的情感詞典,其在處理以上來源的評價時比較準確。對否定詞的判斷我們使用了傳統(tǒng)模型中提供的情感極性詞典下載包,對于程度副詞我們使用了《知網》情感分析用詞語集(heta版)。詞典內數(shù)據格式可參考如下格式,即共兩列,第一列為程度副詞,第二列是程度數(shù)值,>1表示強化情感,<1表示弱化情感。
1.2 實現(xiàn)過程。
1)文本預處理,我們使用“結巴中文分詞”作為分詞工具,分詞并去除停用詞;
2)將分詞結果轉為字典,key為單詞,value為單詞在分詞結果中的索引,如果把單詞作為key的話假如一個情感詞在文中出現(xiàn)了多次,只記錄這個詞最后一次出現(xiàn)的位置;
3)對分詞結果分類,找出情感詞、否定詞和程度副詞;
4)計算得分。設置初始權重W為l,從第一個情感詞開始,用權重W*該情感詞的情感值作為得分(用score記錄),然后判斷與下一個情感詞之間是否有程度副詞及否定詞,如果有程度副詞,此時的W作為遍歷下一個情感詞的權重值,循環(huán)直到遍歷完所有的情感詞,每次遍歷過程中的得分sCore加起來的總和就是這篇文檔的情感得分。
5)返回結果。
1.2 運行結果
1.3 存在問題。
簡單使用情感詞典將常用詞打上了唯一分數(shù)的辦法存在許多不足之處:
1)不帶情感色彩的停用詞會影響文本情感打分。
2)文本中一些詞性的多變成為了影響模型準確度的重要原因。
一種情況是同一個詞在不同的語境下可以是代表完全相反的情感意義; 3)另外,同一個詞可作多種詞性,那么情感分數(shù)也不應相同,例如:“這部電影真垃圾”與“垃圾分類”,在第一句中垃圾表現(xiàn)強烈的貶義,而在第二句中表示中性,單一評分對于這類問題的分類難免有失偏頗。
2 改進——機器學習方法
2.1 原理。
主要通過輸入大量句子以及這些句子的情感標簽,訓練一個句子情感分類器,進而預測新的句子的情感。
機器學習方法的優(yōu)點包括:機器學習對情感分析會更為精準,深度神經網絡可以很好的分辨出一些反諷語氣的句子。機器學習的前饋過程接受固定大小的輸入,比如二進制數(shù);遞歸網絡可以接受序列數(shù)據,比如文本。
2.2 實現(xiàn)方法。
1)導入庫:tflearn是一個深度學習庫,他基于TensorFlow,并且提供了更高級的API。
2)數(shù)據導入:選擇pkl形式的數(shù)據進行導人(pkl:字節(jié)流形式數(shù)據,更容易轉換為其他python對象),取10000單詞,10%的的數(shù)據作為驗證集。將數(shù)據劃分為評論集和標簽集。
3)數(shù)據處理:由于不能直接將文本數(shù)據中的字符串輸入神經網絡,必須先進行向量化。將數(shù)據轉為向量表示。
4)利用pad_sequences把輸入轉換為矩陣的形式,并且對矩陣進行擴充。矩陣的擴充是為了保持輸入維數(shù)的一致性。
5)修改參數(shù)標明輸入的數(shù)列擴充到100的長度,擴充的部分數(shù)值為0。把評論集轉為二進制向量(表示評價是積極或消極)
2.3 構造網絡。
1)定義輸入層,輸人數(shù)據長度為100
2)定義嵌入層,第一個參數(shù)是這一層接受的向量,即上一層輸出的向量,共導入10000個單詞,輸出維度定義為128
3)定義LSTM( Long short term memory)層,使我們的網絡能夠記住序列一開始的數(shù)據,將把dropout設置為0.08,這是一種防止過擬合的技術。
4)定義全連接網絡層,激活函數(shù)使用softmax。
5)對于輸入做回歸操作,定義優(yōu)化方法,與學習率,還有損失值計算方法
2.4 訓練網絡。
(1)初始化神經網絡
(2)訓練神經網絡,輸入訓練集與驗證集,show_metric= True可以輸出訓練日志
2.2 運行結果。在本次實驗中,我們詳細研究了在文本挖掘中基于情感詞典與機器學習的情感分析技術與主流算法,并對這些算法的實現(xiàn)進行了實驗和總結。我們使用機器學習的方法將文本中輸入的大量句子添加句子的情感標簽,使用gpu建立出了一個句子情感分類器,進而預測新的句子的情感。在這個過程中,我們明白了,在對文本挖掘的研究的道路上絕對不能單純只學習理論和借鑒別人的成果,還要自己思考,從多方面分析當下模型,并對當下的已有模型進行創(chuàng)新。