孫媛 張俊芳
摘 ?要:文章通過(guò)網(wǎng)絡(luò)爬蟲(chóng)數(shù)據(jù)采集方式獲取電商平臺(tái)《弟子規(guī)》書(shū)籍的評(píng)價(jià)數(shù)據(jù),利用Python的jieba中文分詞組件對(duì)電商評(píng)價(jià)文本數(shù)據(jù)進(jìn)行分詞、去除停用詞、詞頻統(tǒng)計(jì)等數(shù)據(jù)處理,采用詞云圖的形式將用戶評(píng)價(jià)信息進(jìn)行數(shù)據(jù)可視化展現(xiàn),試圖幫助人們了解數(shù)據(jù)背后的價(jià)值。從大量網(wǎng)絡(luò)評(píng)論中提取反映評(píng)論褒貶極性的特質(zhì)詞語(yǔ),避免消費(fèi)者所需信息被大量的評(píng)論噪音掩蓋,從而為消費(fèi)者的購(gòu)買(mǎi)決策和企業(yè)的營(yíng)銷(xiāo)策略提供支持。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng);弟子規(guī);數(shù)據(jù)可視化
中圖分類(lèi)號(hào):TP391.1;TP277 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)12-0095-03
Abstract:This paper obtains the evaluation data of the e-commerce platform “Di Zi Gui” through the data collection of web crawler,uses Python jieba Chinese word segmentation component to process the e-commerce evaluation text data,such as word segmentation,removal of stop words,word frequency statistics,etc.,and uses the word cloud chart to visualize the user evaluation information,trying to help people understand the price behind the data. From a large number of online reviews,the characteristic words reflecting the polarity of reviews are extracted. In order to avoid the information that consumers need to be covered by a large number of comments noise,it can provide support for consumerspurchase decisions and enterprisesmarketing strategies.
Keywords:web crawler;Di Zi Gui;data visualization
0 ?引 ?言
如今,網(wǎng)上購(gòu)物已成為大眾生活中的重要消費(fèi)途徑之一。人們?cè)陔娚唐脚_(tái)瀏覽、購(gòu)買(mǎi)商品,隨之產(chǎn)生的是海量用戶行為數(shù)據(jù),如對(duì)產(chǎn)品的評(píng)價(jià)數(shù)據(jù)。這些線上評(píng)論數(shù)據(jù)的根據(jù)是消費(fèi)者購(gòu)買(mǎi)并使用產(chǎn)品后的自身感受,數(shù)據(jù)間接地反映了所購(gòu)買(mǎi)的商品或服務(wù)的實(shí)用性、質(zhì)量、性?xún)r(jià)比、適用群體等內(nèi)容。面對(duì)這些碎片化、非結(jié)構(gòu)化、信息量密集的數(shù)據(jù),可利用網(wǎng)絡(luò)爬蟲(chóng)這種互聯(lián)網(wǎng)數(shù)據(jù)收集方式,爬取電商平臺(tái)的用戶評(píng)價(jià)數(shù)據(jù),為電商商品的評(píng)價(jià)情感分析提供數(shù)據(jù)支撐。
根據(jù)西安交通工程學(xué)院“思想品德優(yōu)、專(zhuān)業(yè)基礎(chǔ)實(shí)、實(shí)踐能力強(qiáng)、綜合素質(zhì)高、具有創(chuàng)新精神和社會(huì)責(zé)任感”的人才培養(yǎng)目標(biāo)定位,及中興通信學(xué)院大數(shù)據(jù)管理與應(yīng)用專(zhuān)業(yè)的建設(shè)需求,結(jié)合作者在數(shù)據(jù)可視化領(lǐng)域的發(fā)展方向,本文將以京東平臺(tái)《弟子規(guī)》書(shū)籍評(píng)價(jià)為例,闡述數(shù)據(jù)采集、預(yù)處理和可視化過(guò)程。希望通過(guò)本項(xiàng)目的研究,使作者掌握扎實(shí)的專(zhuān)業(yè)知識(shí),為更好地進(jìn)行教育教學(xué)做鋪墊。
1 ?背景與目標(biāo)
大數(shù)據(jù)技術(shù)是信息技術(shù)幾十年發(fā)展和積累催生的產(chǎn)物。目前,網(wǎng)絡(luò)購(gòu)物盛行、產(chǎn)品競(jìng)爭(zhēng)激烈、用戶體驗(yàn)度要求高、產(chǎn)品評(píng)論信息價(jià)值高,這是大數(shù)據(jù)時(shí)代對(duì)電商領(lǐng)域發(fā)起的挑戰(zhàn),也是電商領(lǐng)域發(fā)展的動(dòng)力和前進(jìn)的方向?!兜茏右?guī)》作為熱門(mén)國(guó)學(xué)經(jīng)典,講述了豐富深刻的人生哲理,可以潛移默化地培養(yǎng)孩子的文化修養(yǎng)。該書(shū)籍深受家長(zhǎng)和孩子們的喜愛(ài),因而在京東平臺(tái)的銷(xiāo)量高。作為銷(xiāo)售商,需要根據(jù)消費(fèi)者海量的評(píng)論文本數(shù)據(jù)更好地了解用戶的個(gè)人喜好,從而提高書(shū)籍質(zhì)量、改善服務(wù),獲取市場(chǎng)上的競(jìng)爭(zhēng)優(yōu)勢(shì)。而作為消費(fèi)者,需要在沒(méi)有看到書(shū)籍實(shí)體、做出購(gòu)買(mǎi)決策之前,根據(jù)其他購(gòu)買(mǎi)者的評(píng)論了解書(shū)籍的質(zhì)量、性?xún)r(jià)比等信息,為購(gòu)物抉擇提供參考依據(jù)。
本文對(duì)《弟子規(guī)》書(shū)籍評(píng)價(jià)數(shù)據(jù)的分析流程如圖1所示。
因此,本文研究的目標(biāo)是獲得產(chǎn)品評(píng)價(jià)數(shù)據(jù)、進(jìn)行數(shù)據(jù)處理并將結(jié)果直觀地展示出來(lái),為銷(xiāo)售商和消費(fèi)者們提供依據(jù)。通過(guò)網(wǎng)絡(luò)爬蟲(chóng)采集數(shù)據(jù),采集到的數(shù)據(jù)為文本形式的非結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)預(yù)處理包含中文分詞、去除停用詞和詞頻統(tǒng)計(jì),數(shù)據(jù)可視化利用詞云圖將用戶評(píng)論的文本數(shù)據(jù)中出現(xiàn)頻率較高的詞提取出來(lái),將用戶評(píng)價(jià)數(shù)據(jù)通過(guò)豐富的圖形或圖像進(jìn)行內(nèi)容展示。
2 ?數(shù)據(jù)分析實(shí)戰(zhàn)
2.1 ?數(shù)據(jù)爬取
《弟子規(guī)》書(shū)籍下的評(píng)價(jià)數(shù)據(jù)為網(wǎng)絡(luò)文本數(shù)據(jù),通過(guò)網(wǎng)絡(luò)爬蟲(chóng)采集數(shù)據(jù),過(guò)程即像蜘蛛一樣在互聯(lián)網(wǎng)上“爬行”,先“爬”至評(píng)價(jià)網(wǎng)頁(yè)上,然后把需要的評(píng)價(jià)數(shù)據(jù)“鏟”下來(lái),將數(shù)據(jù)存儲(chǔ)到本地。
在對(duì)網(wǎng)絡(luò)文本數(shù)據(jù)爬取的過(guò)程中,首先需要了解數(shù)據(jù)獲取方法,然后利用PyCharm編輯器編寫(xiě)代碼,通過(guò)網(wǎng)絡(luò)爬蟲(chóng)的方法模擬瀏覽器發(fā)送請(qǐng)求、提取有用信息、將提取到的數(shù)據(jù)存儲(chǔ)在本地,其數(shù)據(jù)獲取的具體過(guò)程如下。
2.1.1 ?了解數(shù)據(jù)獲取方法
(1)打開(kāi)京東商城,搜索《弟子規(guī)》,以銷(xiāo)量排名靠前的書(shū)籍為例,點(diǎn)擊商品評(píng)價(jià)。
(2)單擊右鍵,點(diǎn)擊檢查,借助谷歌瀏覽器的Web開(kāi)發(fā)者工具找到評(píng)論數(shù)據(jù)存放的位置。
(3)打開(kāi)網(wǎng)絡(luò)(Network)面板,可以看到從網(wǎng)絡(luò)上下載資源的實(shí)時(shí)信息。
(4)單擊商品評(píng)價(jià)信息并刷新,可看到網(wǎng)絡(luò)(Network)面板顯示加載出來(lái)的資源。
(5)單擊JS,通過(guò)name排序或size排序找到product-PageComments.action。
(6)在右側(cè)顯示Headers標(biāo)簽下的Request URL和Request Method。
(7)在右側(cè)顯示Preview標(biāo)簽下的comments資源具體內(nèi)容。
(8)右鍵點(diǎn)擊productPageComments.action,選擇Open in new tab,可在新標(biāo)簽頁(yè)更仔細(xì)地查看該資源。
上述數(shù)據(jù)獲取方法的具體操作過(guò)程,如圖2所示。
2.1.2 ?采集評(píng)論數(shù)據(jù)
(1)模擬瀏覽器發(fā)送請(qǐng)求。首先使用GET方法向url= f'https://club.jd.com/comment/productPageComments.action? callback=fetchJSON_comment98&productId=12349364&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1發(fā)送請(qǐng)求并添加表頭;然后將編碼方式修改為'gbk';再利用JSON將字符串轉(zhuǎn)換為鍵值對(duì)形式的字典。
(2)提取有用信息。獲得服務(wù)器響應(yīng)后,提取網(wǎng)站有用信息(用戶昵稱(chēng)、產(chǎn)品名、用戶評(píng)價(jià)和發(fā)布時(shí)間)并組成數(shù)據(jù)框。其代碼為:data_jd = pd.DataFrame ({'nickname': nickname, 'productColor': productColor,'content': content, 'referenceTime': referenceTime})。
(3)數(shù)據(jù)存儲(chǔ)到本地。采用逆向分析法,利用循環(huán)的方式爬取100頁(yè)(共1 000條)評(píng)價(jià)數(shù)據(jù),將數(shù)據(jù)保存到本地命名為“弟子規(guī)用戶評(píng)價(jià)數(shù)據(jù)”的Excel表格中,其代碼為:all_data.to_excel ('./弟子規(guī)用戶評(píng)價(jià)數(shù)據(jù).xlsx', index=None)。
2.2 ?數(shù)據(jù)預(yù)處理
需要對(duì)通過(guò)爬蟲(chóng)采集到的文本數(shù)據(jù)進(jìn)行預(yù)處理,具體流程如下。
2.2.1 ?中文分詞
在對(duì)數(shù)據(jù)進(jìn)行分析之前,需要對(duì)采集到的文本數(shù)據(jù)進(jìn)行分詞處理。所謂的分詞其實(shí)是將連續(xù)的詞句按照一定的規(guī)范重新排列組合并分割成單個(gè)詞序列的過(guò)程。本文采用基于詞典的分詞方法,即從左向右取待切分漢語(yǔ)句子的字符并查找詞典與之進(jìn)行匹配,若匹配成功,則將這個(gè)匹配字段作為一個(gè)詞切分出來(lái);若匹配不成功,則將這個(gè)匹配字段的最后一個(gè)字去掉,剩下的字符串作為新的匹配字段再次進(jìn)行匹配,重復(fù)匹配直到切分出所有詞為止。
(1)安裝Python第三方庫(kù)——jieba庫(kù),在https://github.com/fxsjy/jieba網(wǎng)站中下載jieba并安裝,jieba是目前常用的Python中文分詞組件。對(duì)于一長(zhǎng)段文字,首先要用正則表達(dá)式將中文段落粗略分成句子,然后尋求最佳切分方案將句子劃分為詞組。
(2)使用jieba.cut方法進(jìn)行分詞:data_cut = all_data ['content'].apply (jieba.lcut)。
2.2.2 ?去除停用詞
停用詞是指文本數(shù)據(jù)中使用頻率不高或?qū)Ρ疚奶卣鞯谋硎緵](méi)有價(jià)值的詞,如空格、回車(chē)、標(biāo)點(diǎn)符號(hào)等。本文首先下載停用詞表stoplist.txt,然后在已下載好的停用詞表中根據(jù)需要手動(dòng)建立新停用詞(空格和換行符號(hào)):stop = [' ', '\n'] + stop,進(jìn)行分詞后通過(guò)比較停用詞將價(jià)值不高的詞刪除。
2.2.3 ?詞頻統(tǒng)計(jì)
詞頻統(tǒng)計(jì)是對(duì)去除停用詞之后的每個(gè)詞組的頻率進(jìn)行統(tǒng)計(jì),為后續(xù)數(shù)據(jù)可視化做鋪墊。本文導(dǎo)入Tkinter自帶函數(shù)_flatten,對(duì)去除停用詞后的中文詞組進(jìn)行頻率統(tǒng)計(jì),其代碼為:num = pd.Series (_flatten (list (data_after))).value_counts ()。
2.3 ?數(shù)據(jù)可視化
數(shù)據(jù)可視化可讓京東《弟子規(guī)》評(píng)價(jià)信息中挖掘到的價(jià)值清晰呈現(xiàn)。本文利用詞云圖將預(yù)處理后的數(shù)據(jù)根據(jù)詞組的出現(xiàn)頻率直觀地展示出來(lái),生成的詞云圖中詞組字體的大小與詞組出現(xiàn)的頻率成正比。詞云圖生成過(guò)程如下。
(1)下載并安裝第三方庫(kù)——wordcloud庫(kù)。
(2)設(shè)置詞云,包括背景顏色、字體路徑及背景形狀等。
(3)根據(jù)詞頻統(tǒng)計(jì)結(jié)果,調(diào)用Matplotlib.pyplot繪制詞云圖,其中Matplotlib.pyplot是Python的繪圖庫(kù),包含了一系列類(lèi)似MATLAB中繪圖函數(shù)的相關(guān)函數(shù)。
詞云圖生成結(jié)果如圖3所示。
3 ?結(jié) ?論
本文以京東平臺(tái)《弟子規(guī)》書(shū)籍評(píng)價(jià)數(shù)據(jù)可視化為例,研究網(wǎng)絡(luò)爬蟲(chóng)的數(shù)據(jù)采集方式,安裝jieba和wordcloud庫(kù),實(shí)現(xiàn)文本數(shù)據(jù)的分詞、去停用詞、詞頻統(tǒng)計(jì),根據(jù)詞頻統(tǒng)計(jì)結(jié)果、繪制詞云圖,完成用戶評(píng)價(jià)文本數(shù)據(jù)的可視化分析、采用詞云圖展示用戶對(duì)該產(chǎn)品的評(píng)價(jià)。從詞云圖中可以直觀、清晰地看到用戶對(duì)該產(chǎn)品的評(píng)價(jià)的高頻詞語(yǔ),并能獲取以下有用信息。
(1)該產(chǎn)品為書(shū)。
(2)多數(shù)用戶評(píng)價(jià)為喜歡、質(zhì)量、不錯(cuò)。
(3)適用對(duì)象為寶寶、小朋友、孩子。
(4)多數(shù)用戶對(duì)京東平臺(tái)價(jià)格或物流表示滿意等。
總之,對(duì)《弟子規(guī)》評(píng)價(jià)數(shù)據(jù)進(jìn)行可視化展現(xiàn),可為消費(fèi)者提供購(gòu)買(mǎi)決策,協(xié)助商家指導(dǎo)客戶購(gòu)買(mǎi)產(chǎn)品,讓商家更好地發(fā)現(xiàn)用戶的需求,進(jìn)而改進(jìn)產(chǎn)品、提升用戶體驗(yàn)。
參考文獻(xiàn):
[1] 宋永生,黃蓉美,王軍.基于Python的數(shù)據(jù)分析與可視化平臺(tái)研究 [J].現(xiàn)代信息科技,2019,3(21):7-9.
[2] 韓寶國(guó),張良均.R語(yǔ)言商務(wù)數(shù)據(jù)分析實(shí)戰(zhàn) [M].北京:人民郵電出版社,2018:145-168.
[3] 馮與詰.詞云生成系統(tǒng)的構(gòu)建 [J].通訊世界,2019,26(3):190-192.
[4] 高宇,楊小兵.基于聚焦型網(wǎng)絡(luò)爬蟲(chóng)的影評(píng)獲取技術(shù) [J].中國(guó)計(jì)量大學(xué)學(xué)報(bào),2018,29(3):299-303.
作者簡(jiǎn)介:孫媛(1992—),女,漢族,陜西西安人,專(zhuān)職教師,助教,碩士,研究方向:計(jì)算機(jī)通信。