黃瑾娉,陶 杰
(安徽工業(yè)大學 計算機科學與技術(shù)學院,安徽 馬鞍山243002)
近年來,文本主客觀分類的研究工作逐漸成為熱門,研究方向從篇章級、段落級、語句級逐級微觀化。判斷句子是否為觀點句是區(qū)分句子主客觀的基本方法。但由于漢語以表意為主,不拘泥于語法規(guī)范的特性,往往在句子中省略了部分元素。例如“特別敬重你”,在句中省略了主語“我”,是主觀句。這使得語句不能使用固定的語法結(jié)構(gòu)來判斷其主客觀性。另一方面,上例的句子若不省略觀點主體且主體詞是“他”時,又是客觀句。由此看出,主客觀的判定需要結(jié)合詞性、詞匯等特性綜合判定。
主客觀句分類的常見方法有基于詞典規(guī)則和基于統(tǒng)計的兩大類,前者通過構(gòu)建特定的情感詞典等判定句子的主客觀性,后者則通過機器學習模型構(gòu)建主客觀分類器。其中后者是應(yīng)用的主流。以往的研究重心集中于語句的特征選擇,訓練階段則多數(shù)選用單一分類器。考慮到分類器在主客觀分類中的重要性,其優(yōu)化相關(guān)的研究也越來越得到重視。
該文提出了一種使用Adaboost 算法進行主客觀分類的方案,使用詞匯、詞性特征進行實驗,驗證方案的可行性。Adaboost 是集成學習算法[1],是一種迭代算法,有利于綜合各分類器優(yōu)勢,達到更佳的分類效果。
使用機器學習機進行主客觀句分類包括了分類模型建立和分類的實施兩個階段,主要流程如圖1 所示。與一般分類問題相似,包括了語料集的獲取、文本預(yù)處理工作、特征表示、機器學習模型的生成和分類等幾個步驟。在主客觀分類領(lǐng)域中,特征選擇和數(shù)據(jù)模型的生成有其特殊性,是研究的重點內(nèi)容。
除了一般分類的預(yù)處理過程,主客觀分類的文本預(yù)處理還包含了人工標注句子主客觀性的過程,一部分用于分類模型的訓練,另一部分用作測試。特征表示包括特征選擇和向量化表示。首先結(jié)合語句特點選取適當?shù)脑~匯、詞性特征,然后使之向量化。
特征選擇在語句集預(yù)處理完成后進行,其目的是通過選擇適當?shù)奶卣鳎崛ゲ恢匾卣鳎瑢⒄Z句看作是多個特征合成的一個合體。特征選擇的優(yōu)劣將很大程度上影響到最后機器學習的數(shù)據(jù)模型生成質(zhì)量。

圖1 主客觀句分類流程
主觀句、客觀句在語義和語法上都存在著一些隱含的特征。語義層面上主要通過詞匯特征體現(xiàn),語法特征主要通過詞性表達。由于詞匯、詞性特征非常多,這將導致向量化后的維度很高,在主客觀分類應(yīng)用中使用超高維度將使得訓練時間很長,同時也可能導致訓練結(jié)果精確度的降低。課題緊抓語句的詞匯、詞性特征,通過查閱相關(guān)文獻[2-3]總結(jié)了常見的主客觀特征并進行篩選。
詞匯特征以Hownet 情感分析詞典為準,包括了正負面情感詞2090 個、正負面評價詞6846 個、主張詞38個、程度級別詞219 個。另外還加入了人稱代詞作為特征。由上述可知,直接進行詞匯特征向量化導致了向量維度較大,在集成學習中運算量過于龐大的問題,因此結(jié)合哈工大同義詞詞林擴展版,在將語料向量化表示后進行維度的壓縮,按照近義詞詞典的第四級別進行詞合并操作,降低一定的維度,最終獲得的詞匯特征樣例如表1 所示。

表1 特征詞匯統(tǒng)計
N-POS(多元詞性特征)[4]指句子中N 個連續(xù)詞的詞性連續(xù)組合,各句子的長度不同可得到的N 值也不同,而現(xiàn)實應(yīng)用中取N 為較小整數(shù)時就可以較好的體現(xiàn)句子特征,例如N=2 或N=3,相反當N 較大時并不一定會提升分類效果反而導致了維度災(zāi)難。詞性在主客觀句分類中是重要的區(qū)分特征,例如在2-POS中,“副詞+動詞”的組合具有主觀色彩,而“名詞+數(shù)詞”的組合在客觀句中比較常見。
上述方法獲取到的特征使用統(tǒng)計CHI(統(tǒng)計)篩選,CHI 統(tǒng)計結(jié)果反應(yīng)了主客觀特征在的重要程度。計算方法如公式(1):

結(jié)合主客觀分類,公式中p 表示一種模式,例如在N-POS 中是一種詞性的組合形式;c 表示主客觀兩個類別,j 取0 或1;N 表示訓練集句子總數(shù);A 表示類中p 模式的頻度;B 表示中p 模式出現(xiàn)頻度;C 表示類中未出現(xiàn)p 模式句子數(shù);D 表示類中未出現(xiàn)p 模式的句子數(shù)。
Adaboost 是一種Boosting[5-6]集成學習算法,用于解決二分類問題。Adaboost 使用迭代思想,意圖在于將若干個弱分類器組合成一個強分類器,使得分類效果得到提升。Adaboost 算法在1995 年由Freund 和Schapire 提出。隨后,該算法在機器學習領(lǐng)域得到了廣泛應(yīng)用,應(yīng)用效果得到了認可。
Adaboost 算法的核心思想是對于給定大小為n 的訓練集合,其中,,…,。是訓練文本的向量化表示形式,是其對應(yīng)的類別標記。首先給予每個訓練樣本以相同權(quán)重1/n。然后進入了弱分類迭代學習過程,各個弱分類器產(chǎn)生自身預(yù)測函數(shù)和函數(shù)權(quán)重,最后更新樣本權(quán)重并指導下一輪弱分類器的學習。Adaboost 訓練完成后使用各弱分類器的預(yù)測函數(shù)以投票方式對新文本進行分類。
在分類過程中,分類錯誤的樣本將得到權(quán)重的加成。但當遇到某樣本在弱分類器迭代訓練中不斷分類錯誤時,就可能其導致權(quán)重過度擴張,而已分類正確的樣本將出現(xiàn)權(quán)重過低現(xiàn)象。最終導致整個分類正確率的降低,產(chǎn)生退化現(xiàn)象。在主客觀分類中,由于維度較高且訓練過程中確實可能遇到某些句子比較中性(主客觀特性均衡)的情況,為避免上述的現(xiàn)象,課題采用了改進方法。
以主客觀分類為例,為避免樣本的權(quán)重過度擴張,給持續(xù)分類錯誤的樣本以權(quán)重的調(diào)整,分類錯誤z 次的樣本在權(quán)重調(diào)整后乘以系數(shù)。訓練語料中的主客觀句數(shù)量成一定比例o:s,其中o+s=1。在訓練過程中,學習機產(chǎn)生的錯誤分類將導致主客兩類的總權(quán)重不再是o:s,甚至嚴重偏離此比例,將導致繼續(xù)迭代學習時某一類的權(quán)重過大的問題。為此在權(quán)重更新過程中對各樣本再次進行權(quán)重平衡,使之保持o:s 比例。通過以上修改,得到了改進的算法如圖2 所示。

圖2 Adaboost 改進算法
改進算法中,訓練語料D 增加錯誤次數(shù)z 標識并在迭代過程中動態(tài)變化,在步驟⑤中對權(quán)重更新進行調(diào)整;增加了步驟⑥調(diào)整了類別間的權(quán)重。這樣有效的防止了類別間和類別中各自的權(quán)重擴張過度現(xiàn)象。
實驗中的樣本取自COAE2014-任務(wù)4&任務(wù)5 的語料庫,提取的4000 條評論句并進行人工主客觀的標注,使用哈工大LTP 平臺進行分詞和詞性標注等一些預(yù)處理工作。詞匯特征使用表1 中列舉的特征,詞性特征選用了前50 維作為訓練特征,
使用Weka 作為試驗環(huán)境,弱分類器使用SVM、Native Bayes、C4.5 三種。隨機抽取3000 條作為訓練語料,1000 條作為測試語句。訓練并測試Adaboost 算法在主客觀分類中的有效性。
實驗結(jié)果使用計算精確率(P)、召回率(R)、平均值(F)最為評價標準。其中,語料初始分布情況如表2 所示:

表2 樣本初始分布情況
通過訓練,將SVM 訓練算法作為基線與Adaboost 算法的測試結(jié)果進行了對比,表3 中展示了Adaboost算法及其改進算法的訓練精確率P 的結(jié)果,改進算法中使用a=1.5。

表3 Adaboost 結(jié)果對比
表3 的實驗結(jié)果反映了Adaboost 在迭代15 次時達到頂峰,改進后的算法在迭代初期就有較好性能,達到頂峰后也比經(jīng)典算法穩(wěn)定性強。表4 是將SVM 作為基線與Adaboost 進行對比,結(jié)果表明Adaboost 作為主客觀分類的強分類器是有效的。使用了Adaboost 訓練算法后,分類結(jié)果分別在P 值、R 值、F 值上均有提高。

表4 Adaboost 與SVM 結(jié)果對比
該課題探索了Adaboost 集成學習算法在主客觀文本分類中的應(yīng)用。在運用Adaboost 方法時考慮到了權(quán)重過度擴張對分類性能的影響并作出了相應(yīng)的優(yōu)化。最后通過實驗,表明運用Adaboost 方法能夠有效地提高主客觀分類效果。中文語法、語義是相當復雜的,目前的研究成果中短文本主客觀分類成功率不高,還有許多努力方向,選擇性集成和半監(jiān)督集成學習在主客觀分類中的效率也是值得研究的方向。
[1] 李凱,崔麗娟.集成學習算法的差異性及性能比較[J].計算機工程,2008(6):35-37.
[2] 李光敏,許新山,張磊.微博中產(chǎn)品意見挖掘研究[J].情報雜志,2014(4):135-138.
[3] 姚旭,王曉丹,張玉璽,等.特征選擇方法綜述[J].控制與決策,2012(2):161-166,192.
[4] 張博,周延泉,毛昱,等.對中文主客觀分類特征選擇的研究[C]//中國人工智能學會第十三屆學術(shù)年會論文集,2009:601-608.
[5] 曹瑩,苗啟廣,劉家辰,等.AdaBoost 算法研究進展與展望[J].自動化學報,2013(6):745-758.
[6] 雷蕾,王曉丹.基于損失函數(shù)的AdaBoost 改進算法[J].計算機應(yīng)用,2012(10):2916-2919.