彭德焰++胡欣宇
摘 要:各大電商的產(chǎn)品留言體現(xiàn)了消費者對商品的主觀情感,海量的評論信息要用人工來收集和處理是不可能完成的任務(wù),因此需要利用專門的情感分析技術(shù)來幫助解決這些問題,文中將屬性詞詞典,情感詞詞典以及程度詞詞典和否定詞詞典作為基礎(chǔ),通過SVM分類法對屬性詞和程度詞的搭配進行識別,以此構(gòu)造一個產(chǎn)品評論文本分析系統(tǒng),測試表明系統(tǒng)對產(chǎn)品評論的情感分析具有較高的準確率。
關(guān)鍵詞:產(chǎn)品評論;SVM;搭配識別;情感分析
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2016)11-00-04
0 引 言
隨著Web技術(shù)和電子商務(wù)的發(fā)展,越來越多的人在各大電商上對自己買過的產(chǎn)品發(fā)表評論,這些信息絕大部分代表著發(fā)布者的觀點或主觀情感。商家如果能夠得到用戶的這些反饋,將有助于商家的下一步生產(chǎn)和銷售決策。而其他準備購買該商品的顧客也可以根據(jù)這些反饋來更好地幫助自己決定該商品是否值得購買。因此對這些情感信息進行有效的自動分析并構(gòu)建相應(yīng)系統(tǒng)成了當(dāng)今的熱門研究問題之一。
產(chǎn)品評論的挖掘分析主要是基于句子級別的情感分析,其主要任務(wù)有識別并獲取產(chǎn)品的特征或?qū)傩裕ㄎ挥脩舻闹饔^性評論,抽取評論搭配,判別用戶評論的褒貶[1]。本文構(gòu)造的系統(tǒng)以屬性詞詞典,情感詞詞典以及程度詞詞典和否定詞詞典為基礎(chǔ),通過SVM分類法對屬性詞和程度詞的搭配進行識別,進而分析評論的褒貶。
1 相關(guān)研究
Probst等[2]利用監(jiān)督學(xué)習(xí)技術(shù)抽取屬性詞—評論詞關(guān)系對。Yohan等[3]基于LDA模型提出SLDA模型。實驗表明,該類方法在抽取產(chǎn)品特征中有一定的效果。栗春亮等[4]利用百度百科和分詞后相鄰的詞語同現(xiàn)比例來識別專業(yè)領(lǐng)域內(nèi)的生詞,在中文產(chǎn)品評論語料中設(shè)計詞性組合模板來得到候選屬性詞集,然后利用一定的規(guī)則對其過濾。Qiu[5]等通過研究評價詞和評價對象間的關(guān)系模式,提出用一種雙向傳播算法進行抽取。本文對產(chǎn)品屬性詞的抽取主要借鑒文獻[4]中提到的方法,得到1 500個屬性詞,作為屬性詞詞典。情感詞典的構(gòu)建方式主要有人工和基于詞典兩種。目前主要使用的詞典有董振東和董強編撰的HOWNET情感詞典和臺灣大學(xué)編撰的NTU情感詞典。Hassan等[6]使用馬爾科夫隨機游走模型計算詞語的情感權(quán)值。柳位平等[7]在中文詞語相似度計算方法的基礎(chǔ)上提出了一種中文情感詞語的情感權(quán)值計算方法,并以HOWNET情感詞語集為基準,構(gòu)建了中文基礎(chǔ)情感詞典。陽愛民等[8]選用若干個情感種子詞,利用搜索引擎返回共現(xiàn)數(shù),通過改進的PMI(Pointwise Mutual Information,PMI)算法計算情感詞的情感權(quán)值。李壽山等[9]借助機器翻譯系統(tǒng),結(jié)合雙語言資源的約束信息,利用標簽傳播算法(LP)計算詞語的情感信息。本文主要根據(jù)文獻[8]提出的方法,構(gòu)建一個在產(chǎn)品評論分析中使用的情感詞典,部分詞如圖1所示。程度詞和否定詞詞典使用王文華等[10]提出的相應(yīng)詞典。
詞集 極性 情感詞
P_set 正向 著名,好,積極,和諧,青春,成熟,善良,文明,出色,舒服,純真,得體,美麗,創(chuàng)造力,寬容,昌盛,感激,優(yōu)秀,美好,燦爛,誠實,給力,帥呆,霸氣,淳樸,漂亮,美妙,輝煌
N_set 負向 罪惡,詛咒,暴殄天物,郁悶,傻逼,變態(tài),慘不忍睹,痛苦,垃圾,失敗,委屈,毛病,扭曲,詭異,畸形,悲慘,崩潰,弱爆,狠毒,假冒,水貨,粗暴
對屬性詞和情感詞的搭配識別可以看成是一個分類問題,常用到的分類算法包括樸素貝葉斯分類器(Naive Bayesian Classifier)、基于支持向量機(Support Vector Machine,SVM)的分類器、k-最近鄰法(k-Nearest Neighbor,kNN)、決策樹(decision tree)分類法、最大熵模型(Maximum Entropy, ME)等,本文使用SVM作為搭配識別的分類器,搭配規(guī)則使用文獻[10]中提到的8條規(guī)則。
2 情感分析系統(tǒng)的需求分析和設(shè)計目標
2.1 需求分析
產(chǎn)品評論情感分析系統(tǒng)用來對電子商務(wù)網(wǎng)站上的產(chǎn)品評論進行搜集分析。
(1)該系統(tǒng)首先對某個站點進行頁面抓取、內(nèi)容提取,得到用戶對產(chǎn)品的大量評論信息;
(2)進行分詞、關(guān)鍵信息抽??;
(3)對這些評論信息進行分析,挖掘出用戶對產(chǎn)品各種屬性的情感傾向以及對整個產(chǎn)品乃至商家的褒貶傾向;
(4)將結(jié)果進行展示,從而有效輔助希望購買產(chǎn)品的用戶進行合理的消費判斷,同時也能夠幫助產(chǎn)品生產(chǎn)商做下一步生產(chǎn)和銷售決策。
根據(jù)這些需求,可以對本系統(tǒng)做出如下需求分析:
(1)能夠抓取產(chǎn)品評論頁面并能對頁面中的評論內(nèi)容進行提取。
(2)能夠從評論文本中抽取情感信息。
(3)能夠有效搭配識別分類。
(4)能夠準確進行屬性情感極性分析和文本情感的傾向判斷。
(5)預(yù)留開發(fā)接口,能方便的對搭配識別分類算法進行更改。
(6)能夠?qū)⒔Y(jié)果以用戶易于理解的方式展示出來。
由此可以得出圖2所示的產(chǎn)品評論情感分析系統(tǒng)的工作流程。
2.2 設(shè)計目標
通過需求分析,可以將系統(tǒng)功能劃分為網(wǎng)頁抓取及頁面內(nèi)容提取模塊、情感信息提取模塊、情感分析模塊。
(1)網(wǎng)頁抓取及頁面內(nèi)容提取模塊實現(xiàn)網(wǎng)頁抓取及頁面文本提取的功能。
(2)情感信息提取模塊負責(zé)從抓取到的頁面或者用戶自定義的文本中抽取出關(guān)鍵情感信息。
(3)情感分析模塊對情感信息提取模塊抽取出的關(guān)鍵情感信息進行情感分析,得出結(jié)論。
對中間信息以及最后的結(jié)論信息進行存儲,并通過用戶容易理解的方式進行結(jié)果展示。一個優(yōu)秀的軟件系統(tǒng)首先要實現(xiàn)系統(tǒng)需要的各個功能模塊,其次要達到系統(tǒng)的性能指標,最后還要為用戶提供高可靠性的服務(wù)。所以,系統(tǒng)設(shè)計時應(yīng)當(dāng)考慮到如下幾個方面:
(1)功能性。本系統(tǒng)該實現(xiàn)需求分析中提出的各項功能。
(2)有效性。能夠?qū)Ξa(chǎn)品評論進行有效的情感分析。由于使用現(xiàn)有語料進行的封閉性測試比直接采集互聯(lián)網(wǎng)信息所得的結(jié)果低一些,因此系統(tǒng)對產(chǎn)品評論文本進行情感分析后的準確率要比算法設(shè)計過程中的測試結(jié)果高。
(3)易用性。系統(tǒng)應(yīng)該操作方便,使用簡單,展示的結(jié)果容易理解。
(4)可維護性。系統(tǒng)應(yīng)該能夠方便的對內(nèi)置情感分析算法進行替換、維護,以便將來對算法進行改進。
(5)健壯性。系統(tǒng)應(yīng)該運行穩(wěn)定,出現(xiàn)意外后退出能重新啟動。
3 情感分析系統(tǒng)的設(shè)計與實現(xiàn)
根據(jù)上節(jié)對系統(tǒng)進行的需求分析和目標設(shè)計,本節(jié)對整個系統(tǒng)的功能進行了劃分,得出了圖3所示的系統(tǒng)功能模塊圖。
圖3將產(chǎn)品評論情感分析系統(tǒng)劃分成評論信息獲取模塊、信息預(yù)處理模塊、情感分析模塊。
3.1 頁面抓取
頁面抓取模塊主要用一個網(wǎng)絡(luò)爬蟲來完成。使用Apache的HTTP客戶端開源項目HttpClient,HttpClient提供HTTP的訪問主要通過GetMethod類和PostMethod類來實現(xiàn),它們分別對應(yīng)HTTPGet請求與HttpPost請求。具體抓取操作流程如圖4所示。
3.2 頁面內(nèi)容提取
頁面內(nèi)容提取的方法很多,有基于統(tǒng)計的、基于規(guī)則的、機器學(xué)習(xí)的,還有基于DOM樹的?;贒OM樹的方法將頁面中的內(nèi)容和結(jié)果看成是一棵樹。Java有一個非常實用的開源工具包HtmlParser,主要靠Node、AbstractNode和Tag等數(shù)據(jù)結(jié)構(gòu)來構(gòu)造HTML的樹形結(jié)構(gòu),包括RemarkNode和TextNode。單個頁面內(nèi)容提取的流程圖如圖5所示。
在不同的網(wǎng)站中,頁面內(nèi)容的HTML標簽不同,因此需要對不同網(wǎng)站設(shè)計不同的提取模板。在這里用正則表達式來區(qū)分不同的網(wǎng)站,首先將同一個頁面提取模板的一組URL構(gòu)造成一個或多個正則表達式,然后判斷網(wǎng)頁的URL與正則表達式是否匹配,進而選擇頁面提取模板。
3.3 分詞模塊
中科院計算所開發(fā)的ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)分詞系統(tǒng)是目前世界上較好的中文分詞系統(tǒng),本文使用其Java版本ICTCLAS4J。使用MyLexicon類描述分詞模塊,該模塊的成員如圖6所示。
addDictionary(fileName)方法使用ICTCLAS4J提供的ICTCLAS50類的ICTCLAS_ImportUserDictFile(usrdirb, n)方法,該方法返回導(dǎo)入用戶詞語個數(shù),第一個參數(shù)為用戶字典路徑,第二個參數(shù)為用戶字典的編碼類型。textProcess(str)方法使用ICTCLAS50類的ICTCLAS_ParagraphProcess()方法分詞。對得到的字符串按照空格分開,讀取存放屬性詞典和情感詞典的資源文件,對分割好的的每一個詞與資源文件中的詞語進行對比,提取出屬性詞和情感詞,構(gòu)成屬性詞集attrset和情感詞集sentset。
3.4 分析預(yù)處理
分析預(yù)處理模塊工作過程如下:
(1)在分詞的基礎(chǔ)上形成屬性詞集合和情感詞集合;
(2)將兩個集合作笛卡爾乘積得到形如<屬性詞,情感詞,情感權(quán)值>若干三元組;
(3)根據(jù)8條搭配分析規(guī)則,形成原始模板;
(4)得到帶有原始模板的擴展三元組。
用Preprocess類來描述分析預(yù)處理模塊,該模塊的成員如圖7所示。
屬性詞集合、情感詞集合、三元組、原始模板都用數(shù)組來描述,getTriple()、getPattern()為私有方法,該類只對外提供getNewtriple()方法。
3.5 搭配識別模塊
這里使用林智仁等開發(fā)的libsvm軟件包,在系統(tǒng)中,將該子模塊封裝成Classifier類,主要提供模型的訓(xùn)練和對新文本進行搭配識別的分類功能。該類的成員如圖8所示。
libsvm的數(shù)據(jù)格式為:<類別標簽> <索引序號 1>:
使用SVM分類器對文本進行分類,若返回值為1表示搭配,則將newtriple保存,用于下一步的情感分析判斷;若返回值為-1則表示不搭配。precise(datapath, percent)函數(shù)用來對算法的準確度進行測試,包含datapath和percent兩個參數(shù)。datapath表示訓(xùn)練數(shù)據(jù)所在路徑,percent表示訓(xùn)練數(shù)據(jù)占總數(shù)據(jù)的比例,默認的percent取0.5,即隨機取一半的數(shù)據(jù)作為訓(xùn)練,另一半數(shù)據(jù)進行測試。返回值為分類的準確率。
3.6 情感分析判斷
根據(jù)節(jié)文本情感傾向判斷過程進行的描述,得到圖9所示的情感分析判斷流程。
用Analysis類來描述情感分析判斷模塊。該類的成員如圖10所示。
judge()方法用以判斷sentiment的值,大于0為正向情感,小于0為負向情感。
4 結(jié) 語
整個系統(tǒng)操作界面由評論提取部分、輸入(導(dǎo)入)評論部分和情感分析部分組成。用戶在輸入框中輸入產(chǎn)品評論的地址,點擊“提取評論”按鈕后,系統(tǒng)自動將產(chǎn)品評論頁面抓取下來并將評論提取出來,保存到默認路徑下的文件中。點擊“保存”按鈕可以手動選擇路徑和保存的文件名。 用戶要想對提取的評論進行分析時,可以點擊“導(dǎo)入”按鈕,選取指定的評論文件,此時文件中的內(nèi)容將顯示在文本框中,輸入評論后,點擊“情感分析”按鈕即可將產(chǎn)品評論文本情感分析的結(jié)果顯示出來,如圖11所示。
對系統(tǒng)的準確性進行測試驗證,選取兩款不同的手機評論進行分析。分別從京東商城網(wǎng)站上的手機評論頁面抓取評論,從中各選出600篇評論進行人工情感傾向判斷,然后與系統(tǒng)的分析結(jié)果進行比對,統(tǒng)計分析正確的正負評論與計算準確率。計算結(jié)果如表1所示。
根據(jù)以上對兩款不同手機的評論進行分析統(tǒng)計的結(jié)果可知,準確率分別為91.2%和90.8%,滿足系統(tǒng)設(shè)計目標的準確性要求,表明系統(tǒng)能夠?qū)Ξa(chǎn)品評論進行有效的情感分析。
參考文獻
[1]魏,向陽,陳千.中文文本情感分析綜述[J].計算機應(yīng)用,2011,31(12):3321-3323.
[2]Probst K, Ghai M K R, Fano A. Semi-supervised Learning of Attribute- value Pairs from Product Descriptions[A]. IEEE Press, 2007, 2838-2843.
[3]Yohan Jo, Alice Oh. Aspect and Sentiment Unification Modelfor Online Review Analysis[A]. 2011.
[4]栗春亮,朱艷輝,徐葉強.中文產(chǎn)品評論中屬性詞抽取方法研究[J].計算機工程,2011,37(12):26-28.
[5] Liu G, Bu J, Chen C, et al. Opinion Word Expansion and Target Extraction Through Double Propagation[J]. Computational Linguistics, 2011, 37(1): 9-21.
[6]Hassan A, Radev D. Identifying text polarity using random walks [C]. Proceedings of Annual Meenting of the Association for Computational Linguistics(ACL-2010), Uppsala, 2010: 395-403.
[7]柳位平,朱艷輝,栗春亮,等.中文基礎(chǔ)情感詞詞典構(gòu)建方法研究[J].計算機應(yīng)用,2009,29(10):2875-2877.
[8]陽愛民,林江豪,周詠梅,等.中文文本情感詞典構(gòu)建方法[J].計算機科學(xué)與探索,2013,7(11):1033-1039.
[9]李壽山,李逸薇,黃居仁,等.基于雙語信息和標簽傳播算法的中文情感詞典構(gòu)建方法[J].中文信息學(xué)報,2013,27(6):75-81.
[10]王文華,朱艷輝,徐葉強,等.基于SVM的產(chǎn)品評論屬性特征的情感傾向分析[J].湖南工業(yè)大學(xué)學(xué)報,2012,26(5):76-80.