楊 源,馬云龍,林鴻飛
(大連理工大學 信息檢索研究室,遼寧 大連, 116024)
隨著網上購物的發(fā)展,網上產品評論的數量也急劇增多,產品評論的情感分析一直是一個熱點研究問題。在分析產品情感時,除了分析產品的整體情感外,也從更細的粒度上來分析,如產品的各個屬性。由于寫評論的人習慣各異,對產品的同一種屬性會用不同的描述,例如,手機的“外觀”和“外形”指的是同一種屬性。把這些屬性進行歸類,才能更好的進行情感分析。
手工進行屬性歸類雖然會很準確,但是這是一項耗費時間的工作,需要尋求一種自動的方法來解決這個問題。屬性的歸類也可以通過現(xiàn)有的同義詞資源,把同義的屬性歸為一類,但是這只能解決其中的一部分,還有很多同類的屬性不是同義詞,例如,手機的“外形”和“設計”。需要其他的方法更全面的解決這個問題。
Carenini等人[1]利用WordNet得到了幾個相似性矩陣,把一些屬性描述映射到一個特定領域的屬性分類上。Carenini等人是根據存在的資源來計算詞的相似性,這種方法的缺點是沒有考慮詞之間的分布相似性,而這是很有用的信息。分布相似性主要考慮了屬性周圍的一些詞,衡量相似性的方法有Cosine、Jaccard、Dice等[2]。
Guo等人[3]提出了mLSA算法,進行屬性歸類,mLSA將LDA運行了兩次,是一種無監(jiān)督算法。屬性歸類問題也與限制性聚類相關,限制性聚類中使用了兩種限制,一種是某些節(jié)點肯定在一類中,另一種是某些節(jié)點不可能在一類中。Andrzejewski等人[4]把這兩種限制引入到LDA中,提出了DF-LDA算法。
Zhai等人[5]針對屬性歸類,提出了一種半監(jiān)督的SC-EM算法,并把以上提到的幾種算法作為對比試驗,通過實驗證明了SC-EM算法對屬性歸類的結果要優(yōu)于以上幾種算法。SC-EM算法是對EM算法的改進,首先從語料中獲取每個屬性周圍的一些詞,作為屬性對應的文檔,然后把其中的一部分屬性進行標注,選用樸素貝葉斯模型作為分類器。SC-EM算法利用了兩條自然語言知識,一條是含有相同字的兩個屬性有可能是同類屬性,另一條是同義詞的兩個屬性有可能是同類屬性。SC-EM算法利用這兩條知識,得到了更好的初始化效果。
SC-EM算法既用到了存在的資源,又用到了分布相似性,但是有一個缺點,產品評論中含有豐富的情感信息,對于同類屬性,評論中往往會有一些相同的情感詞來修飾,例如,手機的“外觀”和“外形”常常和“小巧”搭配,而“聲音”是不與“小巧”搭配的,顯然這些情感詞對屬性的歸類是很有意義的。本文充分考慮了產品評論中的情感因素,從語料中抽取出屬性和情感詞的搭配對,利用這些搭配對形成二部圖,然后用權重標準化SimRank算法[6]來計算各個屬性之間的相似度,并把所得的結果與SC-EM算法中的貝葉斯分類器進行融合,得到了更好的分類結果。
本文的結構安排如下:第二節(jié)介紹相關術語,第三節(jié)介紹產品屬性和情感詞的搭配,第四節(jié)介紹權重標準化SimRank與SC-EM算法的結合,第五節(jié)介紹實驗結果和相關分析。
屬性:實驗語料選取手機評論,用屬性表示手機的一些具體特征,例如,屏幕、按鍵等,手機型號或品牌也屬于屬性的范圍。
屬性描述:同一類的屬性可能會有不同的詞或短語來描述,例如,手機的“外觀”和“外形”,這樣的詞或短語稱為屬性描述。
同類屬性:同類屬性是指意思相同的屬性,例如,手機的“外觀”和“外形”。
要進行產品屬性歸類,首先要獲取產品的屬性, Hu等人[7]和Liu等人[8]對屬性的抽取已經做了很多工作。本文所要解決的主要問題是產品屬性的歸類而不是抽取,所以預先準備了一個手機屬性表,用于屬性歸類。
情感詞的識別主要依據大連理工大學信息檢索實驗室的情感詞匯本體[9]。情感詞匯本體已經能夠識別絕大部分的情感詞,但是可能會出現(xiàn)例外的情況,例如,產品評論中有些情感詞沒有在情感詞匯本體中登錄,有些產品屬性周圍找不到情感詞。為了更好的解決情感詞缺失的問題,把形容詞作為情感詞的補充,很多形容詞都有情感,而且根據日常用語的習慣,形容詞也和產品屬性之間存在搭配關系。
產品評論是評論者對產品的評價,有很多都是主觀性文本,包含了豐富的情感。根據語言習慣,對不同的產品屬性進行評價時,會用不同的情感詞,例如,評價手機的“外觀”時,經常用“小巧”,而評價手機的“價格”時,經常用“低廉”。就像修飾名詞時要用相應的形容詞一樣,評價產品屬性時也會用相應的情感詞,屬性和情感詞之間自然地產生了一種搭配關系,如表1所示。
表1 屬性與情感詞搭配舉例
實驗中把離產品屬性最近的情感詞與產品屬性進行搭配,形成候選搭配對,然后通過式(1)計算情感詞與產品屬性的互信息。
(1)
公式(1)中PMI(PF,OW)是屬性與情感詞的互信息,P(PF,OW)是屬性與情感詞共現(xiàn)的概率,P(PF)是屬性出現(xiàn)的概率,P(OW)是情感詞出現(xiàn)的概率。
實驗沒有采用依存分析技術來確定情感詞和產品屬性的搭配關系主要考慮了兩點:一方面受目前依存分析技術準確率的影響,可能會帶來一定的誤差,另一方面由于產品評論來自網絡,其句法結構不是很規(guī)范,并不太適合對其進行依存分析。
在有限的語料中,情感詞和產品屬性的共現(xiàn)可能是不均勻的,致使互信息偏低或偏高,為了更好的適應這種不均勻性,先假設含有相同字的兩個屬性是同類屬性,同義詞的兩個屬性是同類屬性,計算互信息時,不是計算情感詞與單個屬性的互信息,而是計算情感詞與這類屬性的互信息。當然,所有屬性中,只有一部分是同義詞或含有相同的詞,其余的仍計算情感詞與單個屬性的互信息。實驗中主要通過《同義詞詞林》[10]判斷兩個詞是否是同義詞,只是進行簡單的判斷,并沒有利用《同義詞詞林》的層次信息,對多義的詞不進行處理,只利用屬性詞和情感詞的共現(xiàn)信息,避免為初始化引入更多噪音。
計算出所得搭配對的互信息之后,去掉一些互信息過低的搭配對,這些可能是抽取過程中引入的噪音。剩余的搭配對形成了一個二部圖的形式,如圖1所示。
圖1 屬性情感詞形成的二部圖
圖1是由屬性與情感詞的搭配對形成的二部圖,左邊是屬性,右邊是情感詞,有向的箭頭表示情感詞對屬性的修飾關系。由圖1可以看出同類屬性經常與相同的情感詞共現(xiàn),另外同類屬性并不都與同一個情感詞共現(xiàn),但是修飾同類屬性的若干個情感詞會與某個屬性共現(xiàn),使這些屬性和情感詞連接在一起,形成整個二部圖中的一個子圖,這個子圖中的屬性應該是同類屬性。
屬性與情感詞形成了二部圖,可以用Glen等人[11]提出的SimRank算法來計算屬性之間的相似度,SimRank算法的基本思想是:與相似節(jié)點相連的節(jié)點相似。這樣應用到本文中,被同一個情感詞修飾的屬性是相似的,修飾同一個屬性的情感詞是相似的。SimRank計算公式如下:
(2)
在圖GT={VT,ET}中,I(vt)表示節(jié)點vt的入邊源節(jié)點集合,Ii(vt)表示節(jié)點中第i個入邊源節(jié)點,|I(vt)|是節(jié)點vt的入度,Sim(va,vb)表示節(jié)點va和vb的相似度,常數C是取值從0到1的實數,表示相似度在沿有向邊傳遞過程中的衰減系數。
屬性與情感詞形成的二部圖中,不同屬性與情感詞的相關程度不一樣,它們的互信息也不一樣,經常共現(xiàn)的屬性與情感詞應該有較高的互信息,所以連接屬性和情感詞的邊是有權重的,實驗中把屬性和情感詞的互信息作為邊的權重,因為它能反映出屬性和情感詞的相關程度。
直接用SimRank計算二部圖中屬性的相似度會有一個缺點,SimRank在計算節(jié)點間相似度的時候僅利用了有向圖的結構信息,而沒有考慮有向邊的權重。也就是說直接用SimRank進行計算的話,會把相關程度較低的搭配對和相關程度較高的搭配對統(tǒng)一對待,而抽取搭配對的時候難免會引入一些噪音,如果把這些噪音搭配按照正常的搭配進行計算的話,會影響實驗結果。為了更好的降低這些噪音的影響,實驗采用了馬云龍等人[6]提出的權重標準化SimRank算法(Weight Normalized SimRank,WNS)。
WNS算法首先對圖中每個節(jié)點的入邊權重進行標準化,使之對于任意節(jié)點vt均滿足:
(3)
WNS的計算公式如下:
(4)
(5)
其中,ω(va→vb)表示由va節(jié)點到vb節(jié)點的有向邊上的權重,其他符號與基礎SimRank公式中同義。
用WNS算法計算二部圖中屬性的相似性時,既利用了有向圖的結構信息,又利用了有向邊的權重。假設抽取的搭配對中,有兩個屬性與同一個情感詞搭配,其中有一個是錯誤的搭配,如果用SimRank算法計算,這兩個屬性會有很高的相似度,而用WNS算法計算的話,錯誤搭配的有向邊的權重比較小,從而會降低這兩個屬性的相似度。
如引言所述,Zhai等人[5]使用半監(jiān)督的SC-EM算法,進行產品屬性的歸類,本文使用權重標準化SimRank對SC-EM算法進行了改進。SC-EM算法首先從語料中獲取屬性周圍左右各3個詞作為該屬性對應的文檔,然后對其中的一部分屬性標注類別,進行半監(jiān)督學習,選取貝葉斯分類器,用以下三個公式計算每個屬性屬于某個類別的概率。
(6)
(7)
(8)
其中,D是訓練文檔集,di是D中的一篇文檔,wdi,k是文檔di中的第k個詞,訓練集中的總詞表是V={w1,w2,…,w|V|},C={c1,c2,…,c|C|}是屬性的類別集合,Nti是詞wt在文檔di中出現(xiàn)的次數。
通過WNS算法可以算出測試集中每個屬性與訓練集中每個屬性的相似度,對應測試集中的每個屬性,訓練集每個類別的屬性中都會有一個屬性,使得測試集中的屬性與該屬性在對應類別中的相似度最大。本文把測試集中屬性與該屬性的相似度作為測試集中屬性與這個類別的相似度,這樣可以得到測試集中的屬性與各個類別的相似度。本文定義了式(9),從屬性與情感詞搭配的角度,計算屬性屬于某個類別的概率。
(9)
其中,fi是對應文檔di的屬性,WNS(fi,cj)是屬性fi與類cj的相似度。
式(8)是從屬性與周圍的詞共現(xiàn)的角度,式(9)是從屬性與情感詞搭配的角度,計算屬性的類別,把式(8)和式(9)相乘,所得的結果作為屬性類別判斷的依據更為充分,得到
(10)
通過式(10)得到測試集中每個屬性的類別,然后把訓練集和測試集作為訓練集進行迭代,完成半監(jiān)督學習。
實驗語料是來自IT168網站[12]的31 624句手機評論,其中包含159個屬性描述,共分為21類。選取SC-EM算法作為對比試驗,采用SC-EM中的三個評價標準,實驗采用的是半監(jiān)督學習,可以使用分類準確率作為一個評價標準,分類準確率采用宏平均的方式計算,另外兩個采用聚類的評價標準,標準熵和純粹度,數據集DS上的類別集合是C={c1,…,cj,…,ck},DS被分為k個子集DS1,…,DSi,…,DSk,熵的計算公式如下。
(11)
(12)
其中,Pi(gj)是cj類數據在DSi中所占的比例。純粹度的計算公式如下。
(13)
(14)
實驗采用六次交叉驗證的方式,本文主要考慮的是半監(jiān)督的學習模式,想用較少的標注來得到較好的結果,這些比較少的訓練集就像種子節(jié)點,而且主要思路是通過SimRank該進半監(jiān)督學習的模式,所以設計實驗時沒有與分類方法進行對比,只把選取SC-EM算法作為baseline,把SC-EM算法與WNS相結合的結果作為最終結果,交叉驗證的平均結果如表2所示。
表2 產品屬性歸并結果
如表2所示,把WNS算法融入到SC-EM算法中后,提高了準確率,得到更小的熵值和更大的純粹度,在產品評論中,屬性和情感詞經常搭配使用,針對不同的屬性,評論者會用不同的情感詞來表達情感,而同類屬性描述的是產品的同一個部分,可以用相同的情感詞來修飾,利用屬性和情感詞的搭配,以及屬性和情感詞的互信息形成的二部圖,用WNS算法利用二部圖的信息算出各個屬性的相似度,并與SC-EM算法中的貝葉斯分類器進行結合,所得的結果要好于只用貝葉斯分類的結果,兩者結合的方式既考慮了同類屬性周圍有相同的詞共現(xiàn),又考慮了評論句中屬性與情感詞的搭配,所以得到了更好的屬性歸類結果。
例如,手機的“設計”和“外觀”這兩個屬性詞,周圍共現(xiàn)的詞可能不太一致,但是都會被“時尚”這個情感詞所修飾,所以加入WNS算法后,會增加兩者之間的相似度。
隨著訓練集比例的增大,實驗結果增長的幅度越來越小,這一方面是因為有些屬性通過較小的訓練集就能得到比較準確的分類,另一方面是因為SC-EM算法通過同義詞和含有相同字的屬性優(yōu)化了初始化過程,新增加的訓練集有可能已經出現(xiàn)在優(yōu)化的過程中,所以這個優(yōu)化過程,比較有用,可以用較小的訓練集得到更好的結果。當然,更多的訓練集會帶來更好的結果,但是半監(jiān)督學習的初衷就是想減少訓練集的規(guī)模,所以表2中沒有顯示過多比例訓練集的結果。
實驗過程中也會有一些因素,影響實驗結果,分詞過程會產生一定的偏差,從而會影響產品屬性周圍詞的抽取,也會影響屬性與情感詞搭配對的抽取。有些屬性在《同義詞詞林》中未登錄,這也會用影響半監(jiān)督學習中初始化的優(yōu)化過程。
本文主要把產品評論中同類屬性的不同描述進行歸類。同類屬性雖然有不同的描述,但是在句中卻和相同的情感詞搭配使用。本文首先抽取評論句中屬性和形容詞的搭配關系,形成一個二部圖,然后用權重標準化SimRank計算不同屬性之間的相似度,并把所得的結果與半監(jiān)督學習中的貝葉斯分類器進行融合,得到了更好的分類結果。
本文進行產品屬性歸類時,仍存在一定的不足。在利用屬性與情感詞搭配構成的二部圖計算屬性之間的相似度時,難免會引入一些噪音搭配,本文主要通過互信息來降低噪音搭配中屬性與其他屬性的相似度,能更精確的發(fā)現(xiàn)搭配,會得到更好的分類結果。下一步的工作可以研究屬性與情感詞之間的搭配關系,在比較全面發(fā)現(xiàn)搭配的同時,保障搭配的精度。
[1] Carenini G., R. Ng, E. Zwart. Extracting knowledge from evaluative text[C]//Proceedings of International Conference on Knowledge Capture, Banff, Canada, 2005: 8-15.
[2] Lee L. Measures of distributional similarity[C]//Proceedings of ACL. Maryland, USA, 1999: 25-32.
[3] Guo H., H. Zhu, Z. Guo, et al. Product feature categorization with multilevel latent semantic association[C]//Proceedings of CIKM. Hong Kong, 2009: 1087-1096.
[4] Andrzejewski D., X. Zhu, M. Craven. Incorporating domain knowledge into topic modeling via Dirichlet forest priors[C]//Proceedings of ICML. Montreal, Quebec, Canada ,2009: 25-33.
[5] Zhongwu Zhai, Bing Liu, Hua Xu, et al. Grouping Product Features Using Semi-Supervised Learning with Soft-Constraints[C]//Proceedings of the 23rd International Conference on Computational Linguistics (COLING-2010), Beijing, China, August 23-27, 2010: 1272-1280.
[6] Y. L. Ma, H. F. Lin, S. Jin. A revised simrank approach for query expansion[C]//Proceedings of the 6rd Asia Information Retrieval Societies Conference(AIRS 2010). Springer, December, 2010: 564-575.
[7] Minqing Hu, Bing Liu. Mining and summarizing customer reviews[C]//Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD-2004), Seattle, Washington, USA, Aug 22-25, 2004: 168-177.
[8] Lei Zhang, Bing Liu. Extracting and Ranking Product Features in Opinion Documents[C]//Proceedings of the 23rd International Conference on Computational Linguistics (COLING-2010), Beijing, China, August 23-27, 2010: 1462-1470.
[9] 徐琳宏, 林鴻飛,潘宇,等. 情感詞匯本體的構造[J]. 情報學報,2008, 27(2):180-185.
[10] HIT-IRLab-同義詞詞林(擴展版),哈爾濱工業(yè)大學信息檢索研究室: http://ir.hit.edu.cn/[EB/OL].
[11] G. Jeh, J. Widom. SimRank: A measure of structural-context similarity [C]//Proceedings of SIGKDD. Edmonton, Alberta, Canada, 2002: 538-543.
[12] IT168網站http://pinglun.it168.com [OB/OL].