黃佳鋒,薛 云,2,盧 昕,劉志煌,吳 威,黃英仁,李萬理,陳 鑫,3
(1. 華南師范大學 物理與電信工程學院,廣東 廣州 510006;2. 廣東省數據科學工程技術研究中心,廣東 廣州 510006;3. 深圳職業技術學院 工業中心,廣東 深圳 518055)
隨著電子商務行業的發展,產生了大量的網絡評論文本數據。面對這些海量的網絡評論,消費者需要快速了解評論的情感傾向,優化自己的購買決策,而商家也需要從消費者的網絡評論情感傾向中總結得到商品的市場反饋信息,對商品進行改善。因此,如何對評論文本進行情感分類已經成為自然語言處理領域的一個重要研究課題。
文本情感分類常用的技術分為基于規則的方法和基于統計的方法。但是基于規則的方法所描述的語言規則非常有限,難以處理復雜的、非結構化的中文網絡評論文本[1];而基于統計的方法一般很難通過單個算法構造一個高準確率的分類模型,即某些模型可能只對一類或幾類問題有效,而在其他問題上的效果不好,泛化能力差。為了改善這些缺陷,集成學習技術應運而生,并在文本情感分類任務上驗證了集成學習的有效性[2]。
但是在針對中文網絡評論文本的情感分類任務上,目前還存在以下三個挑戰: 第一,中文網絡評論具有表達多樣化、句子長度不一致的特點,在特征提取時,以TF-IDF為代表的單詞權重計算方法[3-4],容易造成文本特征語義信息缺失、特征向量稀疏等問題。第二,由于中文網絡評論文本的復雜性,從中提取到的特征通常達到上千個,經典的Random Subspace集成學習方法[5]雖然可以解決特征繁多問題,但是由于特征子空間是完全隨機抽取的,難以保證基分類器的性能。第三,一個評論文本很可能包含多個產品屬性詞語,這些屬性共同決定著評論的情感傾向,以往的句子級情感分類方法通常把評論中的所有屬性都當成一個整體,沒有單獨分析每個屬性帶有的情感信息,容易造成情感類別誤判。
針對上述問題,本文提出一種針對中文網絡評論進行情感分類的集成學習框架,主要包括以下部分: ①采用詞性組合模式、頻繁詞序列模式和保序子矩陣模式作為輸入特征,使得特征攜帶更完整的語義信息和情感信息,并且利用語義相似度克服了特征向量稀疏的問題; ②基于信息增益的隨機子空間算法,解決了評論文本復雜多樣而造成的特征繁多的問題,并且根據重要度權值抽取特征子空間,盡量提高基分類器的分類性能; ③基于產品屬性構造基分類器算法,考慮不同產品屬性對應不完全相同的特征集合、相同的特征在不同產品屬性中可能產生的不同影響,使得最終的分類結果更加精確。文中的框架利用多種分類器在ChnSentiCorp-Htl-ba-4000中文酒店評論數據集[6]上進行對比實驗,結果表明該框架在情感分類任務中能達到更優的分類效果。
本文的內容安排如下: 第一部分介紹情感分類和集成學習的相關工作;第二部分介紹本文提出的框架具體內容;第三部分介紹本文提出的框架和其他經典方法的對比實驗;第四部分給出結論。
文本情感分類任務的目標是識別主觀文本的情感極性,即正面(positive)的贊賞和肯定、負面(negative)的批評與否定[7]。目前公認的情感分類研究工作始于Bo Pang等人[8]的工作,該方法以unigram等作為輸入特征,用樸素貝葉斯、最大熵、支持向量機等分類算法實現電影評論的情感分析,取得了較好的分類效果。目前主流的文本情感分類方法仍然是機器學習中的有監督學習方法,這種方法的關鍵步驟是特征提取和分類器設計。
在針對中文網絡評論的情感分類任務中,文本的特征提取和表示是關鍵步驟之一。Salton等人[9]提出了基于詞頻和逆文檔頻率的句向量表示方法,即TF-IDF方法。這種方法通常需要利用情感詞庫來篩選特征詞,然后用TF-IDF計算特征權重,已被廣泛應用于自然語言處理領域。隨著深度學習研究的興起,文本特征抽取和表示的研究聚焦在詞嵌入模型(word embedding)[10-11],這種方法使用原始語料訓練得到詞語的分散式表示(distributed representation),優點是可以用稠密、低維、連續的向量來表示詞語,并且語義相近的詞語在詞向量空間中彼此的位置也很靠近,即可通過詞向量的距離來衡量詞語的語義相似性。
另外,分類器設計也是文本情感分類任務的重要環節之一,機器學習中的BP神經網絡、K最近鄰、支持向量機等分類算法被廣泛應用到情感分類任務中[12]。為了提高文本情感分類的準確率,一些學者開始使用集成學習技術來融合不同的分類模型。集成學習可以組合多個精確度一般的分類模型,利用單個模型之間的差異性,來改善模型的泛化性能,提高分類的精確度。近年來,在文本情感分類、數據挖掘、模式識別等眾多領域的研究表明,大多數通過集成學習得到的模型要明顯優于單個模型[13]。根據個體學習器的生成方式,目前的集成學習方法大致可分為兩大類,即以Boosting為代表的個體學習器間存在強依賴關系、必須串行生成的序列化方法,和以Bagging和Random Subspace為代表的個體學習器間不存在強依賴關系、可同時生成的并行化方法。Wang Gang等人[14]基于五種基分類器,使用了三種經典集成學習方法,在十個公共情感分類數據集上,進行了大量對比實驗。實驗結果表明,在情感分類任務上,集成學習方法大大地提高了單個基分類器的性能。Deriu等人[15]利用大規模的Twitter微博文本數據進行弱監督學習,訓練兩個結構相同、參數和輸入不同的卷積神經網絡,然后將卷積神經網絡的輸出作為隨機森林元分類器的輸入,通過集成學習得到Twitter微博文本的情感極性,該方法在Semeval-2016任務4的評測中獲得了第一名的好成績。
在復雜多樣的中文網絡評論中,評論的整體情感傾向通常需要綜合消費者對評論中全部產品屬性的意見,而且在情感分類任務中不同的產品屬性對應的特征集合通常不會完全相同。因此,本文在對中文網絡評論進行情感分類時,首先提取評論中的產品屬性,然后再基于產品屬性對評論語料和對應特征集合做進一步劃分,并基于各屬性對應的評論語料和特征集合分別訓練分類器,最后再結合評論中每個產品屬性各自對應的情感分類概率,得到整條評論的句子級情感傾向。
在以往基于情感詞典和TF-IDF的特征提取、向量化方法中,情感詞典往往不能覆蓋語料中的所有情感特征。另一方面,中文網絡評論具有表達多樣化、句子長度不一致的特點。因此,采用傳統的TF-IDF方法提取特征,容易造成文本特征語義信息缺失、特征向量稀疏等問題。下文將闡述本文框架中三種特征提取方法,以解決上述問題。
2.1.1 詞性組合模式
在很多文本情感分類中,通常是將單個詞語作為分類特征,再根據TF、TF-IDF等方法生成評論的特征向量。但在處理中文評論的情感分類問題時,該方法存在著以下不足之處: 第一,在中文網絡評論中,該類方法不能刻畫詞語之間的語序信息;第二,在描述不同上下文語境時,同一情感詞有時可以表達不同的情感傾向,例如,詞組“水平高”和“價格 高”中的詞語“高”分別表達著積極和消極的情感傾向。
為了解決上述問題,本文把連續詞組作為分類特征,使得特征能攜帶更準確的情感信息。另外,在中文網絡評論中,大部分評論者通常使用形容詞來表達自己的主觀情感。因此,在第一種特征提取方法中,本文通過詞性組合模式來挖掘連續詞組特征。本文參考了文獻[16],并結合中文網絡評論的特點,總結歸納了八種詞性組合規則如表1所示,其中詞語的詞性表示參考中科院計算所漢語詞性標記集。
表1 詞性組合規則
綜上所述,本文首先對語料進行分詞和詞性標注,然后通過詞性組合規則挖掘得到詞性組合模式feature_pos,將其作為情感分類任務的輸入特征之一。
2.1.2 頻繁詞序列模式
面對表達口語化的中文網絡評論時,詞性組合模式存在一定不足: 一方面它依賴于先驗的語言學知識,必須事先由專家設定足夠多的規則;另一方面,詞性組合模式沒有考慮詞組特征中詞語之間可能出現的間隔,例如: 詞組“交通 方便”和“交通 路線 方便”,只有考慮詞語之間的間隔,才能提取出同樣的特征“交通 方便”。因此,本文根據頻繁序列模式和中文語言的特點,基于Matsumoto等人[17]提取頻繁詞語子序列的思想,進行了相應的改進。對于一個頻繁詞序列模式p={w1,w2,…,wm},其中wi為短語p中的詞語,m為短語p的詞語個數,它的定義描述如下:
(1)p在訓練集語料中的支持度必須大于最小支持度閾值,即sup(p)≥min_sup;
(2)p中任意兩個相鄰詞語wi和wi+1在評論中可以不連續,但是一定要在評論中按照先后順序出現;
(3)p中相鄰兩個詞語在評論中的最大間隔必須小于間隔閾值max_gap,即p中任意兩個相鄰詞語wi和wi+1在評論中的間隔gap(i)≤max_gap;
(4)p的區分度必須大于最小區分度閾值,即dist(p)≥min_dist,區分度dist(p)計算如式(1)所示。
(1)
其中,n為情感分類任務中的情感傾向類別數目,supi(p)為p在訓練集第i類語料中的支持度,sup(p)則為p在整個訓練集語料中的總支持度。
根據上述定義,本文采用了Pei等人[18]提出的PrefixSpan算法來挖掘頻繁詞序列模式feature_freseq,作為情感分類任務的輸入特征之一。
2.1.3 保序子矩陣模式
在中文網絡評論中存在著以下兩個特點: 第一,評論的表達多樣化,即不同詞匯表達相近語義;第二,評論的長度通常不一致,評論包含的詞語數量相差較大。由于這些特點,TF-IDF特征提取方法容易造成特征向量稀疏、不同評論之間權重相差較大等問題。因此,為了解決以上問題,本文結合基于詞嵌入的近義詞和保序子矩陣算法對該方法進行了改進。
(1) 基于詞嵌入的近義詞
本文對詞語進行相似度計算,把語義相近的詞語當成一個詞語處理,從而克服傳統TF-IDF向量的稀疏性問題。本文采用Word2Vec[11]訓練中文大語料,得到評論語料的詞嵌入矩陣We∈d×|V|,其中We的每一列代表一個詞向量。假設Xi和Xj是We中兩個詞向量,用余弦距離來衡量詞向量之間的相似性,計算如式(2)所示。
(2)
設定實驗參數相似度閾值SimT,如果Sim(i,j)≥SimT,則表示Xi和Xj對應的詞語是近義詞。接下來把近義詞都歸并成同一個簇,根據簇來計算TF-IDF向量,得到評論語料的矩陣表示Wtfidf,計算如式(3)所示。
(3)
其中,N表示語料庫中的評論總數;tfij表示近義詞頻,即在評論j中第i個簇中詞語出現的次數;dfi表示近義詞文檔頻率,即語料庫中含有第i個簇中詞語的評論個數。
(2) 保序子矩陣
由于網絡評論通常長度不一,假如直接使用Wtfidf進行分類的話,一方面會造成語義相近但句子長度差別很大的兩個評論向量之間的距離較大,對情感分類任務產生負面影響;另一方面Wtfidf中的特征是獨立的詞語,無法體現詞語之間的語義相互作用。為了解決這個問題,本文采用雙聚類中的保序子矩陣算法來挖掘Wtfidf中的保序子矩陣模式。
本文參考了Liu Zhiwen和Xue Yun等人[19]提出的方法,利用公共子序列挖掘得到Wtfidf的全部保序子矩陣模式,輸出滿足最小列閾值min_column和最小行閾值min_row要求,并且各行都來自于同一類情感標簽評論的保序子矩陣模式feature_opsm,并連同上文得到的詞性組合模式feature_pos和頻繁詞序列模式feature_freseq,一起作為情感分類任務的輸入特征。
由于中文網絡評論文本的多樣性和復雜性,經過上文三種特征提取方法得到有效的分類特征后,特征數目通常會達到上千個,如果直接使用的話,容易造成特征向量稀疏,導致分類效果不佳。因此本文借鑒了Ho等人提出的隨機子空間算法[5]。該方法是一種基于特征多樣性的集成學習方法,首先從原始特征空間中隨機抽取出若干個特征子集,然后基于每個特征子集訓練一個基分類器,最后集成所有基分類器的結果,得到最終的分類結果。但是在復雜多樣的評論文本中,不同特征對分類的貢獻是不一樣的,假如隨機抽取的特征子集都是一些相對冗余、不太重要的特征,將會嚴重影響基分類器的分類性能,從而影響最終的分類結果。為此,本文提出了一種基于信息增益的隨機子空間算法,在保證基分類器間獨立性的同時,盡量提高基分類器的分類性能。
基于信息增益的隨機子空間算法具體描述如算法1所示。
在中文網絡評論中,評論的整體情感傾向通常需要綜合消費者對評論中全部產品屬性的意見,而且不同的產品屬性在情感分類任務中對應的特征集合不完全相同,即使是相同的特征,它們在不同的產品屬性中也可能蘊涵著不同的語義信息,因此本文采用基于產品屬性構造對應基分類器的算法對評論進行情感分類。
算法1基于信息增益的隨機子空間算法
2.3.1 產品屬性提取
在本文框架中,采用基于類序列規則的方法來提取產品屬性集合,并利用詞語相似度將產品屬性劃分到不同的屬性類別中。
(1) 基于類序列規則的產品屬性提取
序列模式挖掘是數據挖掘中一個重要的分支,而類序列規則(class sequence rules,CSR)是傳統序列模式挖掘的變種,它在序列模式挖掘的基礎上考慮了類信息,通過將模式和類信息結合起來,找到與類信息具有高度相關性的序列模式。
為了提取出中文網絡評論中的產品屬性,本文參考了文獻[20]中觀點特征抽取的思想,采用基于類序列規則的方法提取產品屬性,即將訓練集中已知的屬性詞和情感詞搭配信息作為類序列規則中的類信息,將詞性搭配作為被挖掘的序列模式,利用類序列規則提取評論中的產品屬性。
本文以酒店領域為背景,從大眾點評網站上爬取了十萬多條酒店領域中文網絡評論作為實驗語料。具體地,首先將中文網絡評論語料進行預處理、中文分詞和詞性標注等操作后,得到序列標注的結果,并預先給定少數的屬性詞和情感詞作為種子詞,在評論語料中標注這些種子詞,使得少數樣本帶有類信息。然后去掉詞語,只保留詞性和類信息,得到帶有類信息的詞性序列。再通過改進的PrefixSpan算法來挖掘這些帶有類信息的詞性序列,本文在PrefixSpan頻繁序列模式挖掘算法的基礎上進行改進,加入由類信息所決定的置信度,得到滿足最小支持度和最小置信度的頻繁序列模式,同時篩選得出所有元素都在評論中同一分句的模式,作為提取產品屬性的詞性搭配規則。最后將語料中所有滿足詞性搭配規則的屬性詞提取出來,得到屬性詞語集合?;陬愋蛄幸巹t的產品屬性提取算法如算法2所示。
(2) 產品屬性類別劃分
通過基于類序列規則的產品屬性提取算法得到產品屬性詞語集合后,還需要將產品屬性集合劃分成若干個類別。本文首先確定產品屬性類別基準詞,然后再通過每個屬性詞語與基準詞的語義相似度來劃分該屬性詞語所屬的類別。
算法2基于類序列規則的產品屬性提取算法
通過對酒店語料和產品屬性集合的觀察,本文歸納得到“服務”“美食”“環境”“價格”“設施”“場館”這六個屬性類別基準詞。接下來,同樣采用Word2Vec對語料進行訓練,得到產品屬性集合的詞嵌入矩陣W∈d×|A|,并采用余弦距離來衡量各屬性詞向量和屬性類別基準詞向量之間的語義相似度。然后設定實驗超參數最小相似度min_Sim,如果屬性詞與多個屬性類別基準詞之間的相似度大于min_Sim,則選取與該屬性詞的相似度最大的屬性類別基準詞作為屬性類別標記;如果屬性詞語全部六個屬性類別基準詞之間的相似度都小于min_Sim,則將該屬性詞的屬性類別歸類為“其他”。最終將屬性詞集合劃分為七個屬性類別,分別為“服務”“美食”“環境”“價格”“設施”“場館”“其他”。
2.3.2 基于產品屬性構造基分類器
在中文網絡評論中,評論者對產品意見的表達多種多樣。而對于一個較長的評論,不能只通過其中某一個產品屬性來判別它的情感類別。另外,相同的特征對于不同的屬性可能起到相反的作用。為了解決上述兩個問題,本文采用基于產品屬性構造基分類器的算法對評論進行集成情感分類。一方面,根據上文得到的屬性類別將評論數據和特征集合進行劃分,使得不同屬性類別對應各自的特征集合,而且相同的特征可以在不同的屬性類別中起到不同的情感表達作用;另一方面,將根據屬性類別劃分好的評論數據和特征集合分別進行訓練得到基分類器,然后集成不同的基分類器來判別整個評論的情感傾向,使得分類器在判別評論的情感傾向時,能夠綜合評論中全部屬性的情感信息?;诋a品屬性構造基分類器的算法具體描述如算法3所示。
算法3基于產品屬性構造基分類器的算法
實驗部分將對數據集、實驗流程、實驗結果和分析進行詳細介紹,實驗的主要內容是采用本文的框架和評測數據集實現中文網絡評論情感分類任務,并和其他相關方法進行分析比較。
為了驗證文本所提框架的有效性,本文使用了中文情感語料庫ChnSentiCorp[6]中的中文酒店評論數據集ChnSentiCorp-Htl-ba-4000作為實驗評測數據,數據集包括2 000個積極情感評論文本和2 000個消極情感評論文本,過濾掉重復評論文本后,剩余共3 147個評論文本。另外,本文在大眾點評網站上爬取了102 268個酒店評論文本,作為提取酒店領域產品屬性的評論語料。在基于詞嵌入的近義詞、產品屬性類別劃分中,采用Sogou新聞語料[21]和大眾點評酒店評論語料作為Word2Vec訓練語料,語料大小為2.02GB。
在數據預處理中,本文采用中科院ICTCLAS[22]對評論文本進行中文分詞和詞性標注。
根據文中的集成學習框架,本文實現對中文網絡評論的兩類情感分類。在情感分類實驗中本文采用五折交叉驗證,語料的訓練集、驗證集和測試集比例為3∶1∶1,其中積極語料和消極語料數目基本平衡。實驗流程如圖1所示。
圖1 實驗流程
在上述實驗的集成學習框架中,采用機器學習常見的分類算法作為基分類器中的分類算法,包括Logistics Regression(LR),Decision Tree(DT),Support Vector Machine(SVM)這三種分類算法。
另外,本文的實驗框架存在一些超參數,如基于信息增益的隨機子空間算法中的特征子空間數目S,對于這些超參數的確定,本文使用控制變量法進行調參。在確定某個超參數時,首先設置一組該超參數的值,然后保持其他超參數不變,通過驗證集在實驗中的平均分類準確率確定最優值。
下面介紹頻繁詞序列模式中三個超參數對實驗結果的影響變化趨勢。
由圖2看出,當min_sup=30時,實驗的平均準確率達到最優值。
圖2 平均分類準確率隨最小支持度的變化趨勢
由圖3看出,當max_ gap=1時,實驗的平均準確率達到最優值。
圖3 平均分類準確率隨最大間隔閾值的變化趨勢
由圖4看出,當min_dist=0.65時,實驗的平均準確率達到最優值。
圖4 平均分類準確率隨最小區分度閾值的變化趨勢
由于超參數較多,本文只分析了上述三個超參數對實驗結果的影響。最終得到的最優超參數值如表2所示。
表2 最優超參數值
在下文的實驗結果中,超參數按照實驗得到的最優值進行設置。
本文在實驗方案中設置了三組對比實驗,第一組將本文的方法和單分類器進行對比,單分類器分別采用不同的輸入特征向量;第二組將本文的方法和經典集成學習分類算法進行對比;第三組將本文和深度學習算法進行對比。本文采用了Scikit-Learn[23]、WEKA[24]和Tensorflow[25]來實現方案中的對比實驗,參數統一取默認值。實驗使用文本情感分類領域常用的評價指標: 平均分類準確率(Average Accuracy),其計算如式(4)所示。
(4)
第一組對比實驗將不同輸入特征向量的單分類器和本文的方法進行對比,實驗結果如表3所示,其中不同的輸入特征向量分別如下:
(1) “lexicon+TF-IDF”: 表示輸入特征是基于情感詞典提取的詞語,再使用TF-IDF方法對評論文本進行向量化;
(2) “Word2Vec”: 表示采用Word2Vec對評論語料進行訓練,得到詞向量,再將詞向量相加求平均得到評論的輸入特征向量;
(3) “pos+freseq+opsm”: 表示將文中提到的三種特征進行合并,再根據特征是否在評論中出現生成0/1輸入特征向量。
表3 和單分類器的實驗對比結果(%)
第二組對比實驗將不同的經典集成學習算法和本文的方法進行對比,集成學習算法包括Bagging、Boosting、Random Subspace,“Random Subspace_IG”代表基于信息增益的隨機子空間算法,輸入特征向量采用“pos+freseq+opsm”形式,實驗結果如表4所示。
表4 和集成分類器的實驗對比結果(%)
第三組對比實驗將三種深度學習算法和本文的方法進行對比,深度學習算法包括Recurrent Neural Networks(RNN)、Long Short-Term Memory(LSTM)、Gated Rucurrent Unit(GRU),“our approach(LR)”代表本文框架在LR基分類器算法上的分類準確率,實驗結果如表5所示。
表5 和深度學習算法的實驗對比結果(%)
綜合表3、表4和表5的實驗結果可以看出: ①在單分類器實驗中,“pos+freseq+opsm”的分類準確率均高于“lexicon+TF-IDF”和“Word2Vec”,主要是因為前者采用三種特征模式作為輸入特征,考慮了句子語序信息、句子長度大小的影響、間隔詞組特征等因素,并且利用語義相似度克服了“lexicon+TF-IDF”的特征向量稀疏問題; ②Random Subspace的情感分類準確率均高于單分類器實驗中的“pos+freseq+opsm”,主要原因是“pos+freseq+opsm”將feature_pos、feature_freseq和feature_opsm三種特征模式簡單地進行合并,造成特征向量非常稀疏,而Random Subspace則采用隨機劃分特征子空間的方法解決了特征稀疏問題; ③“Random Subspace_IG”的情感分類準確率稍高于經典的Random Subspace,主要原因是“Random Subspace_IG”在Random Subspace基礎上考慮了特征的重要度權值,根據重要度權值抽取特征子空間,在保證基分類器之間獨立性的同時,盡量提高基分類器的分類性能; ④本文方法的實驗效果均好于三種經典集成分類算法和“Random Subspace_IG”,特別是在LR分類算法上達到了90.3%的平均分類準確率,主要原因是本文方法考慮了不同產品屬性對應不完全相同的特征集合、相同的特征在不同產品屬性中可能起到的不同作用,并且綜合了評論文本中不同產品屬性的輸出分類概率,使得最終的分類結果更加精確; ⑤本文方法在情感分類任務上的準確率比三種深度學習算法高,主要原因是本文方法考慮了更多中文評論語義信息和評論中不同產品屬性的情感信息。
本文提出了一種針對中文網絡評論情感分析任務的集成學習框架,該框架主要包含三個部分: 第一,采用詞性組合模式、頻繁詞序列模式和保序子矩陣模式作為輸入特征,使得特征攜帶更完整的語義信息和情感信息,并且利用語義相似度克服了特征向量稀疏問題;第二,采用基于信息增益的隨機子空間算法,解決了評論文本復雜多樣而造成的特征繁多問題,并且在保證基分類器之間獨立性的同時能盡量提高基分類器的分類性能;第三,采用基于產品屬性構造基分類器的算法,考慮不同產品屬性對應不完全相同的特征集合、相同的特征在不同產品屬性中可能起到的不同作用,并且綜合了評論文本中不同產品屬性的情感分類概率,使得最終的分類結果更加精確。實驗結果證明本文的框架和不同特征輸入的單分類器、經典的集成學習方法、一些深度學習方法相比,均可以獲得更好的情感分類效果。
在針對中文網絡評論的情感分類任務方面,未來還有很多工作需要深入研究。在隨機子空間算法中,利用中文語言學知識來選取特征子空間是一個可行的研究方向。另外,結合神經網絡中的注意力機制,更加細致地分析不同產品屬性與特征對評論情感分類的影響,也是今后的重點研究工作之一。