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