摘 要: 以網絡評論為研究對象,試圖把隱馬爾科夫模型從已經成功應用的模式識別領域推廣到語義傾向性分析系統。與傳統傾向性識別系統不同的是,此理論通過建立隱馬爾科夫分類模型,將未知文本進行狀態序列化,得到文本中所有的詞語所對應的傾向性,然后選定多數詞的傾向性來作為文本的總體語義傾向。實驗表明,當訓練數據越全面、規模越大時,識別率越高。
關鍵詞: 語義傾向性;隱馬爾科夫模型;序列化
網絡媒體被公認為是繼報紙、廣播、電視之后的“第四媒體”,成為反映社會輿情的主要載體之一。人們希望能快速高效地在浩如煙海的網絡信息中提取對于諸如人物、事件、傳媒、產品等有價值的評價信息。如何有效地提取文本信息,推斷其語義傾向,已經成為當前自然語言與信息安全研究領域的熱點問題[1]。
當前流行的語義傾向性分析系統可以分為兩個步驟:首先是識別詞匯的語義(短語)傾向性[2],然后利用不同的策略根據詞匯(短語)的傾向性給出整個文本的語義傾向評價。目前主要有三種研究思路:(1)對所有詞匯的傾向性評分進行統計求和,根據最終的得分正負來評價文本的傾向性[3]。(2)采用機器學習的方式根據詞匯的傾向性訓練出語義傾向分類器[4],這是目前比較流行的思路,總體效果比統計求和要好。這兩種思路是基于概率統計的,領域性限制小。(3)基于“格語法”分析的思路。該思路很難全面反應樣本空間規律,具有一定的領域限制性。
本文利用隱馬爾科夫模型HMM(Hidden Markov Models)在文本處理方面的優勢,首先對其理論進行介紹,然后根據現有學者對HMM在文本分類中的應用和文本分類技術在傾向性分析中應用的研究結果,提出將HMM應用于文本傾向性研究的理論,并用實驗證明此理論的可行性。
1 理論基礎
1.1 隱馬爾科夫模型
隱馬爾可夫模型[5]作為一種統計模型,非常適合處理時變信號,用于動態過程時間序列建模并具有強大的時序模式分類能力,理論上可處理任意長度的時序。HMM是一個雙重隨機過程,其中之一是Markov鏈,其基本隨機過程為描述狀態的轉移;另一個隨機過程描述狀態與觀察值之間的統計對應關系,只能看到觀察值,而不能看到狀態,即通過一個隨機過程去感知狀態的存在及其特性。
1.2 HMM在文本分類中的應用
羅雙虎[6]把待分類文本描述成一系列狀態演化的隱Markov過程,其中狀態以特定的概率產生代表文本的特征項。用序列模式來描述文本類,文本序列通過與隱Markov模型的匹配,求出其對應狀態序列和最大輸出概率,以比較各個文本類的結果,達到文本分類的目的。
龍麗君[7]對關鍵字所在的句子構成的詞序列建立HMM,以判斷句子所屬的類別。為了建立HMM,將詞語所屬的類別理解為狀態,將所選擇的關鍵字理解為輸出值。這樣就把要判定一個觀測序列(一個句子)的整體所屬的類別轉換為己知模型和觀測序列,求出全局最優的整體序列。觀測序列的整體所屬類別即為關鍵字所屬類別,或者說觀測序列的整體類別即為狀態序列中居多數的狀態對應的類別。
1.3 文本分類技術在傾向性分析中的應用
1997年,Hatzivassiloglou和McKeown嘗試使用監督學習的方法對詞語進行語義傾向判別,通過對訓練語料的學習進行語義傾向判別,準確率約82%,在加入篇章中形容詞之間的接續信息后,準確率提升到約90%[2]。2003年,Turney在其論文[8]中提出了利用統計信息對單詞進行語義傾向判斷的新方法。文本的語義傾向判別也可被看作一個褒貶的分類問題,因此,文本分類中的方法同樣被應用到了語義傾向判別研究中。
2 HMM在語義傾向性研究的應用
本文是針對網絡評論,判斷其表達的是支持(褒義)、反對(貶義)還是中立(中性)的語義傾向性。
(4)A為狀態轉移概率矩陣,即從一種詞語類別轉移
2.2 實驗系統框架
系統整體框架如圖1所示,整個系統分為訓練階段和識別階段。
2.2.1 語料庫準備
訓練語料庫是國內還沒有公開的文本傾向語料庫。本實驗全部由人工收集,然后對所提取的所有的句子進行分詞、標注之后,去掉連詞、助詞和代詞等不具傾向性的無用詞,得到最終的語料庫。
否定詞表:帶否定意義的詞,如:不、不是、非等。
2.2.2 訓練階段
首先根據初始參數建立初始模型,然后使用Baum-Welch算法[5]對參數進行訓練,得出最終分類模型。
2.2.3 識別階段
將未知評論文本經預處理得到字串(W1,W2,W3,…,Wn)作為上文中訓練得到的HMM分類模型的觀察序列,通過維特比(Viterbi)算法[5]得到最優狀態序列S,然后使用以下算法得出整個語句的語義傾向性,如圖2所示。
Array<Word> W;//字串
Array<State> S;//最優狀態序列
Dictionary Deny;//否定詞表
Integer Length;//字串長度,即字串中詞語的數目
Procedure getOrientation ()
//句子傾向性為狀態序列中具有傾向(非中立)的狀態占多數的狀態所對應的傾向
//由于網絡評論中作者的傾向多數是在句首,取首個具有語義傾向的狀態對應的傾向為整個句子的語義傾向性
Orientation orientation=“中性”;
Integer numP=0;//S1(支持)的數量
Integer numN=0;//S2(反對)的數量
Orientation firstOrientation;//記錄句子中首個非中性的狀態
For i ← 0 to Length-1 do
If S[i]!=S3 then
If i>0 and W[i-1] ∈Deny then
//此狀態不是句首且此狀態對應的觀察值是否定詞時
//狀態類別以相反類別計數
S[i]==S1?numN++;numP++;
Else
S[i]==S1?numP++;numN++;
End If
If firstOrientation==NULL then
firstOrientation =(S[i]== S1?“支持”:“反對”);
End If
End If
Repeat
If numP>numN then
orientation=“支持”;
Else If numP<numN then
orientation=“反對”;
Else
orientation=firstOrientation;
End If
end getOrientation
2.3 應用舉例
例句:“我同意你的觀點”。
經分詞結果為:“我/r 同意/v 你/r 的/u 觀點/n”。去除無用詞得到觀察值序列為:“同意/v 觀點/n,最后經過識別得出最優狀態序列為:S1,S3。由于S1出現1次,而沒有出現S2,故這個句子的傾向性為S1的傾向類別:支持。
3 實驗結果及分析
實驗文本是來自不同網站上下載的各種評論共2 000條,所有的評論都經過分詞、標注和去無用詞處理,然后手工分為:支持(褒義)、反對(貶義)和中立(中性)3個類別。然后在每個類別中分別取200、300、400、500條,共600、900、1 200、1 500條作為本實驗的訓練數據,進行封閉測試并對剩余的評論進行開放測試。實驗結果如表1、表2所示。
從表中結果可以看出,封閉測試可以達到很高的識別率,可見訓練語料庫的規模將直接影響分析結果。當語料更全面、覆蓋面更廣泛時,識別率將大大提高,因此建立一個良好的訓練語料庫的識別方法將有很好的應用前景。
本文從單個句子出發,研究其傾向性分析方法,從實驗結果數據可以看出,此方法有很好的識別率,但需面對兩個問題:(1)網絡文本的復雜性:如語句的語氣、具有傾向性的詞語所針對不同的評價對象和網絡新詞的頻繁出現等情況;(2)語料庫的整理:語料庫的完整性和準確性將直接影響分析方法的準確率,而國內還沒有公開的文本傾向語料庫。這些問題將做進一步地研究和改進。
參考文獻
[1] 來火堯,劉功申.基于主題相關性分析的文本傾向性研究[J].信息安全與通信保密,2009(3):77-78.
[2] HATZIVASSILOGLOU V, MEKEOWN K R. Predicting the semantic orientation of adjectives[A]. In: Proceedings of the 35th Annual Meeting of the Association for Computational Liguistics and the 8th Conference of the European Chapter of the ACL, 1997:174-181.
[3] PETER T. Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews[A]. In: Proceedings of the 40th Annual Meeting of the Association for Computational Liguistics, 2002.
[4] 徐琳宏,林鴻飛,楊志豪.基于語義理解的文本傾向性識別機制[J].中文信息學報,2007,21(01):98-102.
[5] 宗成慶.統計自然語言處理[M].北京:清華大學出版社,2008.
[6] 羅雙虎,歐陽為民.基于隱Markov模型的文本分類[J].計算機工程與應用,2007,43(30):179-181.
[7] 龍麗君.網絡內容監管系統中基于局部信息的語義傾向性識別算法[D].南京.南京理工大學,2004.
[8] PETER T,MICHAEL L. Measuring praise and criticism: Inference of semantic orientation from association[J]. ACM Transactions on Information Systems, 2003,21(4):315-346.