彭慶喜 張力 張瑞志
【摘 要】本文利用Java結(jié)合開(kāi)源機(jī)器學(xué)習(xí)工具Weka設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)輕量級(jí)評(píng)論抽取原型系統(tǒng)L-RES。首先設(shè)計(jì)了一個(gè)爬行子系統(tǒng),將評(píng)論從網(wǎng)站爬取下來(lái),然后對(duì)網(wǎng)頁(yè)進(jìn)行解析以及結(jié)構(gòu)化。進(jìn)一步,采用機(jī)器學(xué)習(xí)方法挖掘評(píng)論中的情感信息。最后將原型系統(tǒng)封裝撐API供開(kāi)發(fā)者是使用。實(shí)驗(yàn)證明該框架非常有效。
【關(guān)鍵詞】L-RES;評(píng)論;抽??;Weka
1 引言
隨著互聯(lián)網(wǎng)的發(fā)展,電子商務(wù)更廣泛的被使用。同時(shí),產(chǎn)品評(píng)論越來(lái)越引起人們的關(guān)注。據(jù)調(diào)查,在電子購(gòu)物網(wǎng)站上,當(dāng)產(chǎn)品的評(píng)分從4.5到5.0分(滿(mǎn)分5分),可以為用戶(hù)帶來(lái)25%的產(chǎn)品銷(xiāo)量增長(zhǎng)[1]。因此產(chǎn)品評(píng)論網(wǎng)站如Yelp,Resellerratings,Tripadvisor,中國(guó)的點(diǎn)評(píng)網(wǎng)(Dianping.com)等越來(lái)越多。然而,產(chǎn)品評(píng)論網(wǎng)站中的評(píng)論信息數(shù)量巨大,內(nèi)容龐雜,用戶(hù)很難從中獲取自己感興趣的信息。本文設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)Web評(píng)論抽取系統(tǒng)Lightweight Review Extraction System(L-RES),通過(guò)爬蟲(chóng)將Web評(píng)論抽取下來(lái)。進(jìn)一步的從,采用機(jī)器學(xué)習(xí)方法對(duì)評(píng)論按照情感進(jìn)行分類(lèi)。最后的結(jié)果設(shè)計(jì)成API供開(kāi)發(fā)者調(diào)用。
2 L-RES抽取子系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的抽取系統(tǒng)主要由以下模塊組成:(1)網(wǎng)頁(yè)爬行模塊;(2)網(wǎng)頁(yè)解析模塊。
2.1 網(wǎng)頁(yè)爬行模塊
為了獲取網(wǎng)頁(yè),爬蟲(chóng)必須像一個(gè)web客戶(hù)端那樣進(jìn)行工作。它首先向服務(wù)器發(fā)送一個(gè)http請(qǐng)求,并讀取返回的響應(yīng)。如果讀取到的http狀態(tài)碼為200,則表示本次請(qǐng)求成功,并建立了一個(gè)連接。為了讓爬蟲(chóng)系統(tǒng)能夠正常且自動(dòng)的爬取特定的網(wǎng)頁(yè),必須首先建立一個(gè)種子URL,作為爬蟲(chóng)抓取網(wǎng)頁(yè)的入口。當(dāng)連接建立之后,爬蟲(chóng)會(huì)獲取到連接到的網(wǎng)頁(yè),并提取特定的網(wǎng)頁(yè)鏈接加入到URL隊(duì)列,然后保存連接到的網(wǎng)頁(yè)文件到相應(yīng)的文件系統(tǒng),進(jìn)入到下一次爬取和鏈接抽取的狀態(tài),直到目標(biāo)URL全部抓取完成。Redis是一個(gè)基于C語(yǔ)言且開(kāi)源的內(nèi)存數(shù)據(jù)庫(kù),使用Redis中的Set集合可以實(shí)現(xiàn)爬蟲(chóng)隊(duì)列的功能,故本文使用Redis數(shù)據(jù)庫(kù)作為本文爬蟲(chóng)系統(tǒng)的URL隊(duì)列。
2.2 網(wǎng)頁(yè)解析模塊
本文爬蟲(chóng)的網(wǎng)頁(yè)解析模塊使用jsoup1.9.1和文檔型數(shù)據(jù)MongoDB [2]開(kāi)發(fā)。
jsoup是一個(gè)用于解析HTML標(biāo)簽的Java類(lèi)庫(kù),它提供了非常便利的API來(lái)操作和抽取HTML標(biāo)簽下的信息。
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++語(yǔ)言編寫(xiě),旨在為web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)方案。是非關(guān)系型數(shù)據(jù)庫(kù)中功能最豐富的數(shù)據(jù)庫(kù)產(chǎn)品。本文主要利用MongoDB存儲(chǔ)手機(jī)評(píng)論語(yǔ)句、評(píng)論人、評(píng)論時(shí)間、產(chǎn)品評(píng)分等信息。MongoDB與RDBMS(Relationship Database Management System)的最大區(qū)別在于,MongoDB中沒(méi)有表結(jié)構(gòu)的概念,存儲(chǔ)在數(shù)據(jù)庫(kù)中的最小單元為文檔,故本文中解析得到的信息在MongoDB中的存儲(chǔ)形式為:{
Comment: ,
Holder: ,
Time: ,
Score:
}
其中Comment是評(píng)論語(yǔ)句,Holder是評(píng)論人,Time是評(píng)論時(shí)間,Score是產(chǎn)品評(píng)分。
3 L-RES情感分析子系統(tǒng)
數(shù)據(jù)預(yù)處理是情感分析的前提,對(duì)于情感分類(lèi)任務(wù)而言,需處理的數(shù)據(jù)一般為非結(jié)構(gòu)化文本,故需要借助自然語(yǔ)言處理技術(shù)來(lái)處理此類(lèi)數(shù)據(jù)。
在情感分析之前需對(duì)數(shù)據(jù)完成諸如分詞、去除停用詞、詞干恢復(fù)、詞性標(biāo)注、句法分析、語(yǔ)義分析、句子依存關(guān)系分析等處理任務(wù),以便充分獲取特征詞,進(jìn)而提高情感分類(lèi)的召回率和精確率。
本文中的數(shù)據(jù)預(yù)處理模塊基于weka [3]開(kāi)發(fā)完成,主要實(shí)現(xiàn)了以下功能:
(1)中文情感句的依存關(guān)系分析;
(2)英文情感句的依存關(guān)系分析;
(3)英文句的詞性標(biāo)注;
(4)中文句子的分詞處理;
(5)向量空間模型的生成;
本框架主要實(shí)現(xiàn)了情感分類(lèi)算法:算法描述如下:
Step1:對(duì)待處理數(shù)據(jù)做去停止詞,分詞及詞性標(biāo)注等預(yù)處理;
Step2:將Step1 得到的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)訓(xùn)練簡(jiǎn)單貝葉斯分類(lèi)器;
Step3:對(duì)測(cè)試數(shù)據(jù)集執(zhí)行Step1并將得到的數(shù)據(jù)用于測(cè)試Step2中訓(xùn)練的模型。若測(cè) 試結(jié)果符合要求則執(zhí)行Step4,否則依次執(zhí)行Step1,Step2和Step3;
Step4:保存測(cè)試好的分類(lèi)器;
Step5:調(diào)用Step4得到的分類(lèi)器對(duì)未標(biāo)記數(shù)據(jù)執(zhí)行分類(lèi)任務(wù);
4 總結(jié)
本文研究了Web評(píng)論的抽取。設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)輕量級(jí)評(píng)論抽取系統(tǒng)原型系統(tǒng)L-RES。首先設(shè)計(jì)爬行系統(tǒng)從互聯(lián)網(wǎng)爬取評(píng)論信息,然后設(shè)計(jì)了網(wǎng)頁(yè)解析模塊對(duì)網(wǎng)頁(yè)進(jìn)行解析與結(jié)構(gòu)化,然后將評(píng)論持久化到Mongo DB數(shù)據(jù)庫(kù)。進(jìn)一步,調(diào)用Weka分類(lèi)算法對(duì)評(píng)論中的情感進(jìn)行分類(lèi)。最后將結(jié)果封裝給開(kāi)發(fā)者使用。該系統(tǒng)目前存在的問(wèn)題在于,針對(duì)管控比較嚴(yán)格的評(píng)論系統(tǒng)還不能有效抽取評(píng)論。另外一方面,系統(tǒng)的可擴(kuò)展性不強(qiáng),下一步我們打算針對(duì)這兩方面對(duì)其進(jìn)行改進(jìn)。
參考文獻(xiàn)
[1]Here's Proof That Yelp Rating Can Make Or Break A Retailer. "Here's Proof That Yelp Rating Can Make Or Break A Retailer." Businessinsider
[2]Tong Y M,Huang W,Dai-Wei L I,et al. Design and implementation of information integration system based on Mongo DB[J]. Information Technology,2015
[3] Hall M. The WEKA Data Mining Software: An Update SIGKDD Explorations[J]. Acm Sigkdd Explorations Newsletter,2010,11(1):10-18