彭德焰++胡欣宇



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