?

基于多分類器集成學習的中文反語識別技術?

2018-09-28 02:30李明峰賈修一
計算機與數字工程 2018年9期
關鍵詞:反語文法語料

李明峰 賈修一

(南京理工大學計算機科學與工程學院 南京 210094)

1 引言

隨著互聯網的快速發展,微博在社會生活中也扮演著越來越重要的角色。大量的微博數據具有巨大的潛在價值,對微博數據進行挖掘、整理和分析有著重要的意義。微博情感分析是微博數據挖掘和分析的一項重要的基礎任務,在輿論監測、社會調查、市場營銷、決策支持有著重要的意義。

近年來學者們開始關注一些特殊的修辭手法在社交媒體文本中的應用,如諷刺、反語、幽默等。一些特殊的修辭手法的運用往往會對微博情感分析的結果帶來一些錯誤和偏差,從而出現一些新的挑戰。反語修辭在微博文本中的應用就是一個典型的例子。反語是一種常見的修辭手法,它是一種非字面的表達方式,語句表達的真實觀點或情感傾向會與字面上的相反,例如“結婚紀念日買到了假貨,真是一個美好的紀念”,僅僅從字面上理解該語句可能會被認為是表達積極情感傾向的語句,但是該語句真正要表達的是一種無奈和嘲諷的消極情感傾向。如何自動識別反語語句開始變成了自然語言處理領域的一項挑戰。

2 相關研究

反語作為一種修辭現象,長久以來一直備受語言學家、心理學家、認知學家的廣泛關注[1~5]。隨著自然語言處理領域的發展,尤其是隨著觀點挖掘和情感分類技術持續深入的研究,自然語言領域的學者們也開始注意到非字面表達這種語言現象,對反語的自動識別技術開始愈加受重視。

在語言和心理學領域。Gibbs等從心理學角度解釋反語在口語中的形成和應用[2]。Utsumi從語言學角度分析了反語的本質,定義了反語的三大要素,提出了一個統一識別反語的計算模型[3]。在中文方面,劉正光通過對研究反語在對話中的產生條件和過程,從語言學和心理學的角度解釋反語的本質[4]。Li對漢語和英語在反語使用上的差異進行了比較分析[5]。

在自然語言處理領域,我們語料庫構建、特征選擇、分類算法三個角度介紹研究現狀。Filatova使用眾包策略從在線群體中獲得語句來構造反語語料庫[6]。Veale和Hao通過搜索引擎獲得含有諷刺意味的比喻句[7]。Davidov使用Mechanical Turk service獲取推特推文和亞馬遜評論然后使用#sarcasm標簽來篩選語句從而構造反語語料庫[8~9]。González-Ibá?ez同樣使用標簽從推特中獲取反語[10]。Reyes等利用用戶標簽#irony來選擇反語構造語料庫[11~13]。Tang等通過人工標注的方式構造了一個1000條語句級別的漢語微博反語語料庫[14]。人工標注相對于使用標簽進行篩選更具有準確性,但是會面臨語料庫樣本數量上的劣勢,但在準確性上有優勢。

在特征選擇方面 González-Ibá?ez利用情感字典、@user、表情符進行特征提?。?0],在實際應用中這種簡單特征往往面臨不足。Reyes等從不同角度研究了電商評論和社交媒體中的反語識別工作,構建了包含n元文法、POS的n元文法、滑稽程度、詞匯褒貶程度、情感復雜度和歡樂程度等抽象復雜的特征體系[11~13]。Burfoot等針對新聞語料,在基本詞袋特征基礎上討論了標題臟話和俚語等特征[15]。Vanin和Barbieri分別提出了葡萄牙文和意大利文的特征構造方法[16~17]。Carvalho 等提出了用戶評論中反語識別的一些線索[18],Katz和Li等提出了一些語法結構上的線索[19~20]。

在分類算法方面 González-Ibá?ez等使用支持向量機和邏輯斯蒂回歸兩種經典的分類算法識別反語,發現支持向量機算法表現普遍好于邏輯斯蒂回歸[10]。Reyes等使用了樸素貝葉斯、支持向量機和決策樹三種經典算法識別反語,研究了三種分類在不同數據集上識別反語的性能[11~13]。Tsur等提出了一種基于模式匹配的半監督學習方法識別反語[8]。

當前在計算機領域反語自動識別方面的研究相對較少,缺乏整體性和系統性,中文反語自動識別方面的研究更甚。目前反語的自動識別技術主要集中在機器學習的方法上,主要挑戰在于如何構造完備的語料庫和如何找到有效的特征。本文的目標在于提高反語識別準確性,同時減小反語自動識別技術對語料庫的依賴,提高技術的普遍適應性。

3 基于多分類器集成學習的反語自動識別技術

首先我們使用基于詞性篩選的改進型一元文法特征,通過不同的特征加權方法和不同的分類算法對一元文法在反語識別的效果進行研究。為了減少語料庫規模對反語識別的影響,我們提出了一種高抽象層次的特征體系。最后我們通過多分類器集成學習的方法,使反語識別的綜合效果達到最佳。

圖1 反語識別的一般流程

首先進行數據的獲取,然后進行文本預處理,利用選擇的特征對文本進行特征提取將文本轉換為特征向量,對特征向量進行特征篩選,提高空間效率,最后選擇分類算法訓練測試。

3.1 基于詞性篩選的改進型一元文法特征

不同的詞性在反語中的重要程度往往會有很大的不同,動詞、形容詞、副詞往往會比介詞、時間詞、人物名詞、地點名詞等在反語識別中更重要,因此我們的改進策略便是根據詞性的不同進行早期特征篩選。

與傳統的一元文法不同,我們在文本預處理后根據文本分詞和詞性標注的結果,依照中科院計算所的漢語詞性標記集,進行基于詞性標記的特征篩選,具體的步驟如下:1)將名詞中的人名、地名、機構團體名、其它專名、名詞性慣用語、名詞性語素都刪除,然后將剩余的名詞保留;2)將所有的動詞都保留;3)將所有的形容詞都保留;4)將所有的副詞都保留;5)將所有的連詞都保留;6)保留所有的嘆詞;7)將其他所有的詞都刪除。將上面的詞語進行整理,作為一元文法的特征詞,然后利用特征詞進行特征提取,得到特征向量,選擇分類算法進行訓練和測試。

3.2 高抽象層次的反語識別特征

1)詞性特征

前文中提到在反語識別任務中不同的詞性有著不同的重要程度,我們定義詞性特征為重要詞性的詞語在句子中所占比重。

首先統計名詞在句子中所占的比重,在這里需要對名詞進行一部份篩選。在對語料進行分詞和詞性標注后,將名詞中的人名、地名、機構團體名、其它專名、名詞性慣用語、名詞性語素都不考慮,只統計剩余的名詞在句子中所占的比率。然后統計動詞、形容詞、副詞、連詞、嘆詞在句子中所占的比重。

由于反語語句一般都有強烈的傾向性,這種傾向性往往可以表現在上面所提到的詞性在句子詞語比重上的增加。詞性特征作為輔助性特征,有助于提高反語識別的準確率,但關鍵特征是情感矛盾度,因為情感矛盾度從某一方面反映了反語形成的基本規律。

2)情感矛盾度特征

情感矛盾度特征的提取需要借助情感字典和情感分析工具。情感矛盾度用來度量微博文本字面情感和潛在的真實情感之間的矛盾。我們定義了兩種層次的情感矛盾度:句子級、分句級,下面將分別介紹這些級別的情感矛盾度。

計算句子級情感矛盾度時,首先將微博文本拆分為句子,分析每個句子的情感極性,統計不同情感極性的句子的個數和整個句子的個數。

在計算句子的情感極性時,采用了商用的情感分析工具BosonNLP。BosonNLP情感引擎提供行業領先的篇章級情感分析。它基于上百萬條社交網絡平衡語料和數十萬條新聞平衡語料的機器學習模型,結合自主開發的半監督學習技術,正負面情感分析準確度達到80%~85%。它的覆蓋范圍比較廣泛,在微博情感分析領域有著較好的效果。它能夠對句子、或短語的情感極性進行判斷,輸出的結果是正面情感和負面情感的概率。

在利用BosonNLP進行情感分析時,由于輸出的結果為正面情感和負面情感的概率,兩者概率之和為1。當正面情感概率大于0.8時我們將句子判定為正面情感,當正面情感概率在0.6和0.8之間時將句子判定為疑似正面情感,當正面情感概率在0.4到0.6之間時將句子判定為情感難以確定,當負面情感概率大于0.8時將句子判定為負面情感,當負面情感概率在0.6和0.8之間時判定句子為疑似負面情感。

利用BosonNLP完成情感分析后,還可以利用BosonNLP提供的情感字典對句子的核心詞匯進行情感計算。利用StanfordNLP平臺下的lex-parser句法分析工具,分析出句子的依存關系,找出句子的核心動詞,并且根據核心詞找出修飾核心動詞的詞語,我們將核心動詞和修飾核心動詞的詞語稱為核心詞匯。根據情感字典計算出核心詞匯的情感極性,將核心詞匯的情感分為3類:正類、負類、中立類。統計微博文本中句子的核心詞匯情感為正面負面或中立的個數。

由于很多微博文本往往只有單獨的一個句子,因此還需要計算分句級情感矛盾度。首先將微博文本劃分為單個的句子,然后將句子劃分為分句,分析和統計分句的情感極性。同樣我們可以利用BosonNLP來計算分句的情感極性,利用句法分析工具和情感字典計算分句的核心詞匯情感極性,并進行統計。

3.3 多分類器集成學習策略

上文中分別介紹了改進的一元文法特征和高抽象層次的特征,利用兩種特征分別進行特征提取,然后對一元文法特征提取之后的特征向量進行特征篩。采用不同的分類算法,對經過特征篩選的一元文法特征向量和高抽象層次特征的特征向量分別進行訓練和測試。最后我們可以利用上面得到的多個分類器進行投票決策。

圖2 多分類器集成學習結構

語料庫通過兩種特征選擇不同的分類算法后得到多個分類器,利用多個分類器進行投票決策。

介紹完了多分類器集成學習的策略后我們通過實驗進行驗證。

4 實驗

在實驗中我們從封閉測試的分類效果和在不同訓練語料規模下的分類效果這兩個方面來驗證方法的反語識別效果。

4.1 語料庫的選擇及文本預處理

本文使用的反語語料是臺灣國立大學Tang等標注的1005條反語語料,這些反語文本經過整理后已經去除了垃圾信息,非反語使用的是從COAE2014測試語料中進行篩選。由于反語語料中大量的語句含有“很好”“可以”“再”等詞,為了平衡這些詞語的影響,我們的非反語就從COAE2014中抽取的包含“很好”“可以”“再”等詞的語句,然后進行人工標注,從中選出2000條語句構成非反語語料。非反語預料中含有微博文本中常見的垃圾信息,如URL、@User、轉發微博、廣告等,因此需要對這些文本進行垃圾信息過濾。

分詞標注我們采用的是ICTCLAS,它支持用戶開發接口。首先過濾掉上面所提到的垃圾信息,然后通過將句子進行分詞和詞性標注將句子分割成了詞語的組合,得到每個詞語的詞性。完成了句子的垃圾信息過濾、分詞、標注后,可以通過對分詞標注后的句子進行后續的工作。

4.2 封閉測試實驗

由于一元文法是在語料庫的基礎上進行分詞,然后根據分詞的結果,利用選出的特征詞進行特征向量的提取,如果首先在整個語料庫上進行文本預處理和特征向量的提取,然后再劃分訓練集和測試集,這會導致測試集中的詞語也作為了特征詞的參與了模型的訓練,這與現實情況不符,因此我們需要先在整個語料庫的基礎上劃分訓練語料和測試語料。高抽象層次的特征則不會出現這類問題,因此我們可以在整個語料庫上進行高抽象特征的特征向量的提取,然后劃分測試集和訓練集。

1)實驗設置

對于一元文法特征,首先選取1000條反語樣本、2000條非反語樣本,用它們來構成我們的實驗語料。從實驗語料中的反語和非反語中分別隨機抽取500條和1000條樣本作為訓練語料,然后將實驗語料中剩余的樣本作為測試語料。測試語料和訓練語料的大小相同。然后利用訓練語料、測試語料進行文本預處理,選擇訓練語料中的詞語作為特征詞,利用TF-IDF特征加權算法分別對訓練語料和測試語料進行特征提取得到訓練集和測試集,并通過信息增益的方法進行特征篩選。接下來分別使用樸素貝葉斯、SVM、隨機森林算法進行模型的訓練和測試。最終我們重復進行5次實驗然后取平均值。

對于高抽象層次特征,可以直接利用經過預處理后的實驗語料進行特征提取,然后選擇與一元文法中訓練語料和測試語料樣本對應位置的特征向量分別組成訓練集和測試集,在五組訓練集和測試集上分別使用樸素貝葉斯、SVM、隨機森林算法進行模型的訓練和測試。

對于多分類器集成學習,根據一元文法和高抽象層次特征的實驗結果,選擇一元文法特征的SVM分類器和高抽象層次特征的SVM分類器和隨機森林分類器,進行投票決策。

2)實驗結果與分析

表1 一元文法特征的實驗結果

表1中A、B、C、D、E、F分別表示一元文法特征在不同算法下的分類結果,A、B、C分別表示沒有經過特征篩選的樸素貝葉斯、SVM、隨機森林算法下的分類效果;D、E、F分別表示在信息增益閾值為0.0、0.005、0.01時SVM算法下的分類效果。下標1表示反語,下標2表示非反語。約簡率是經過特征篩選后的特征維度與特征篩選前的特征維度的比值。從實驗的結果中發現一元文法特征在樸素貝葉斯算法下表現較差,在SVM算法和隨機森林算法下表現較好;通過特征篩選可以有效地降低特征空間的維度,提高空間效率和時間效率,如表1所示當實驗F時我們的特征只有189維。

表2 高抽象層次特征的實驗結果

表2中G、H、I分別表示高抽象層次特征在不同算法下的分類結果,分別表示為樸素貝葉斯、SVM、隨機森林算法下的分類效果。盡管在SVM和隨機森林算法下高抽象層次特征的方法F值下降了約3個百分點,但是高抽象層次特征的特征維度更低,同時它受語料規模的影響也更小,具有更好的穩定性和普遍適應性,后面會通過實驗來證明。

表3 集成學習的封閉測試效果

從表3的實驗結果可以發現在使用集成學習策略,反語樣本上相對于一元文法在F值上有接近7個百分點的上升,在非反語上F值有接近6個百分點的上升。使用集成學習在封閉測試的分類效果有明顯的提高。

4.3 不同語料規模下的實驗

前文中提到一元文法的效果受語料規模的影響較大,而高抽象層次特征可以減小語料規模對方法效果的影響,我們通過實驗來驗證。

1)實驗設置

與封閉測試的實驗設置類似,對于一元文法特征,在1000條反語樣本、2000條非反語樣本的實驗語料中分別隨機抽取500條和1000條樣本作為備選語料,然后將實驗語料中剩余的語句作為測試語料。從備選預料中分別隨機抽取100條反語樣本、200條非反語樣本,重復進行五次形成5組300條樣本的訓練預料;備選預料中分別隨機抽取200條反語樣本、400條非反語樣本,重復進行五次形成5組600條樣本的訓練預料;同樣的操作我們可以得到5組300條反語樣本、600條非反語樣本的900條樣本訓練語料和5組400條反語樣本、800條非反語樣本的1200條樣本訓練語料。然后利用訓練語料、測試語料進行文本預處理,選擇訓練語料中的詞語作為特征詞,利用TF-IDF特征加權算法分別對訓練語料和測試語料進行特征提取得到訓練集和測試集。在這里只需要進行SVM算法進行模型的訓練和測試,最終我們分別取5組不同規模訓練語料實驗的平均值。

對于高抽象層次特征,選擇與一元文法中訓練語料和測試語料樣本對應位置的特征向量分別組成訓練集和測試集,分別使用SVM算法進行模型的訓練和測試。

對于多分類器集成學習,選擇一元文法特征的SVM分類器和高抽象層次特征的SVM分類器和隨機森林分類器,進行投票決策。

如圖3所示,橫軸1、2、3、4分別表示不同規模的訓練語料下的測試結果,5表示封閉測試的結果。從圖中可以發現一元文法受語料庫規模影響最大,從封閉測試到實驗1,F值下降了10個百分點左右;高抽象特征方法受語料規模影響最小下降了約3個百分點;集成學習策略結合了兩種方法的優勢在取得較高的F值的同時,隨著語料規模的變化F值下降了約5個百分點。

圖3 語料庫規模對不同方法的影響

5 結語

本文提出了一元文法和高抽象層次特征的方法進行中文反語識別,通過高抽象層次特征減小了語料規模對方法效果的影響,并最終在多分類器集成學習的策略下,取得了較好的綜合效果。

猜你喜歡
反語文法語料
學前幼兒反語情緒加工特征及促進作用
面向低資源神經機器翻譯的回譯方法
基于Java的遞歸下降語法分析器的實現
OPG文法的語法分析優化策略
反語中的幽默現象探究
我就愛“反”著來
瀕危語言與漢語平行語料庫動態構建技術研究
文法學校見證英國兩黨爭斗
國內外語用學實證研究比較:語料類型與收集方法
英語教學中真實語料的運用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合