李 琴,李宇航,定 會(huì)(通信作者)
(武昌首義學(xué)院 湖北 武漢 430064)
在網(wǎng)購競(jìng)爭(zhēng)激烈的環(huán)境下,電商行業(yè)各大企業(yè)既要提高產(chǎn)品質(zhì)量、降低產(chǎn)品價(jià)格,還要了解客戶的想法和需求,所以需要格外關(guān)注客戶購買商品后的評(píng)論,從客戶留下的評(píng)論文本中提取出有價(jià)值的信息進(jìn)行分析,以便進(jìn)一步調(diào)整或優(yōu)化經(jīng)營(yíng)策略。
客戶在購買產(chǎn)品后留下的評(píng)論能夠體現(xiàn)客戶對(duì)產(chǎn)品的情感、態(tài)度與建議,商家通過評(píng)論數(shù)據(jù)可以直觀地了解到客戶的需求以及產(chǎn)品的不足,利于對(duì)產(chǎn)品或服務(wù)進(jìn)行改進(jìn)。
因此,本文針對(duì)用戶在京東商城中美的電熱水器留下的評(píng)論數(shù)據(jù),進(jìn)行數(shù)據(jù)預(yù)處理以及可視化并最終根據(jù)結(jié)果得出結(jié)論,給出建議。
本文所述數(shù)據(jù)分析過程,主要運(yùn)用Python數(shù)據(jù)采集方法結(jié)合Python第三方庫共同實(shí)現(xiàn)。
Python在近年來快速發(fā)展,被廣泛應(yīng)用于Web開發(fā)、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)處理、人工智能、機(jī)器學(xué)習(xí)以及大數(shù)據(jù)等方面??偟膩碚f,Python語言特點(diǎn)可以歸納為以下幾點(diǎn)。
1.1.1 簡(jiǎn)單易學(xué)
Python語言簡(jiǎn)單易讀,與其他語言相比,在使用Python編程的過程中不需要使用大量的代碼就可以實(shí)現(xiàn)相同的功能。
1.1.2 免費(fèi)開源
用戶在使用Python完成開發(fā)后無需擔(dān)心版權(quán)問題,所有使用都是免費(fèi)的[1]。
1.1.3 面向?qū)ο笮驼Z言
Python是一種面向?qū)ο蟮恼Z言,因此Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)中。
1.1.4 強(qiáng)大的功能庫
Python中有強(qiáng)大的標(biāo)準(zhǔn)庫和第三方庫,編程過程中使用者只需要導(dǎo)入相關(guān)的庫,就可以快速、準(zhǔn)確地解決自己的問題。
利用Python進(jìn)行數(shù)據(jù)采集即網(wǎng)絡(luò)爬蟲,是一種按照一定的規(guī)則自動(dòng)抓取互聯(lián)網(wǎng)信息的程序或者腳本。爬蟲的基本流程為:發(fā)起請(qǐng)求-獲取響應(yīng)內(nèi)容-解析內(nèi)容-保存數(shù)據(jù)。利用爬蟲獲取數(shù)據(jù)主要有以下兩條技術(shù)路線。
(1)利用Python的第三方庫Requests庫中的相關(guān)方法進(jìn)行數(shù)據(jù)采集。Requests爬蟲是一種頁面級(jí)爬蟲功能庫,使用時(shí)非常簡(jiǎn)單,重點(diǎn)在于頁面下載,適用于少量、簡(jiǎn)單的數(shù)據(jù)獲取。
(2)利用爬蟲框架來獲得網(wǎng)頁數(shù)據(jù)。爬蟲框架主要有Scrapy爬蟲和Selenium爬蟲。Scrapy爬蟲框架在抓取靜態(tài)網(wǎng)頁數(shù)據(jù)時(shí)利于提升爬取效率,Selenium爬蟲框架主要用于抓取網(wǎng)頁中動(dòng)態(tài)加載的內(nèi)容。相對(duì)于Requests爬蟲,爬蟲框架使用時(shí)較難,重點(diǎn)在于爬蟲結(jié)構(gòu),適用于大量數(shù)據(jù)的采集。
在Python中進(jìn)行數(shù)據(jù)預(yù)處理和可視化需要導(dǎo)入Python的第三方庫。
1.3.1 Numpy
Numpy是Python中用于數(shù)組處理的第三方庫。雖然Python可以用列表靈活地處理數(shù)據(jù),但當(dāng)數(shù)據(jù)量太大時(shí),數(shù)據(jù)處理速度就會(huì)變慢。因此,在數(shù)據(jù)處理的過程中,Numpy提供了強(qiáng)大的數(shù)組功能和廣播機(jī)制,以及對(duì)數(shù)據(jù)進(jìn)行快捷處理的函數(shù)[1],進(jìn)而提高了對(duì)數(shù)據(jù)處理的速度。
1.3.2 Pandas
Pandas是基于Numpy開發(fā)的功能庫,用于對(duì)數(shù)據(jù)的預(yù)處理。利用Pandas處理數(shù)據(jù),首先要先讀取相關(guān)的數(shù)據(jù)文件,Pandas提供的方法可以快速讀取Csv、Excel、Json等類型的數(shù)據(jù)文件。讀取到數(shù)據(jù)文件之后,根據(jù)需求對(duì)數(shù)據(jù)進(jìn)行選擇、過濾、分組、分割、合并等操作,還可以對(duì)缺失值、異常值和重復(fù)值進(jìn)行處理。
1.3.3 Matplotlib
數(shù)據(jù)可視化是將數(shù)據(jù)以圖表的形式更清晰地展示出來,通過數(shù)據(jù)可視化可以得到數(shù)據(jù)間的關(guān)系等有效信息。在Python中提供了很多數(shù)據(jù)可視化的工具,但使用最廣泛的是Matplotlib庫。使用Matplotlib庫可以用少量代碼,快速將已處理的數(shù)據(jù)繪制成圖表進(jìn)行展示,并且根據(jù)不同的業(yè)務(wù)場(chǎng)景可以繪制出直方圖、折線圖、條形圖、散點(diǎn)圖等多種圖表。這些圖表能夠以PNG、PDF等多種格式保存。
1.3.4 Jieba和WordCloud
Jieba庫是對(duì)中文進(jìn)行分成處理,將一句話根據(jù)需要切割成不同的詞語。它支持3種分詞模式:精確模式、全模式、搜索引擎模式。3種分詞模式各有自己的特點(diǎn),使用的過程中根據(jù)不同的業(yè)務(wù)場(chǎng)景進(jìn)行選取。
WordCloud庫是對(duì)得到的文本信息進(jìn)行過濾,對(duì)文本中出現(xiàn)頻率較高的關(guān)鍵詞突出顯示,不同的關(guān)鍵詞采用不同顏色和字體大小[2],最終繪制成詞云圖,使讀者很快地從圖中得到文本中的關(guān)鍵信息。WordCloud庫中內(nèi)置函數(shù)可以快速地對(duì)文本信息進(jìn)行處理,繪制詞云圖,減少了代碼量。
對(duì)電商產(chǎn)品評(píng)論數(shù)據(jù)進(jìn)行分析主要經(jīng)過確定數(shù)據(jù)來源、進(jìn)行數(shù)據(jù)預(yù)處理、進(jìn)行評(píng)論分詞、可視化得到結(jié)果,最后再對(duì)結(jié)果進(jìn)行分析這一系列步驟。
利用Python網(wǎng)絡(luò)爬蟲技術(shù)可以對(duì)京東商城中美的電熱水器的評(píng)論數(shù)據(jù)進(jìn)行數(shù)據(jù)采集,但本文是利用已有的數(shù)據(jù)進(jìn)行處理和分析,此處不再詳細(xì)介紹數(shù)據(jù)采集的過程。
數(shù)據(jù)預(yù)處理是在可視化前將數(shù)據(jù)按照想要的數(shù)據(jù)結(jié)果進(jìn)行處理,本文主要對(duì)評(píng)論數(shù)據(jù)進(jìn)行了去重和清洗操作。
2.2.1 數(shù)據(jù)去重
評(píng)論中會(huì)出現(xiàn)大量系統(tǒng)自動(dòng)給出的評(píng)論,對(duì)于這種沒有分析價(jià)值的數(shù)據(jù)要進(jìn)行去重處理,以及不同用戶發(fā)布的相同評(píng)論,為了避免將相似評(píng)論刪除,在評(píng)論去重時(shí)僅保留第一條完全相同的評(píng)論。
因此,在評(píng)論去重的時(shí)候,筆者僅考慮將評(píng)論文本完全重復(fù)的數(shù)據(jù)刪除。主要步驟如下:首先導(dǎo)入Pandas庫,接著利用Pandas庫中的read_csv()方法讀取保存在本地的評(píng)論數(shù)據(jù)(筆者保存的是Csv類型的文件),再利用drop_duplicates()方法將指定的“content”這一列中完全重復(fù)地評(píng)論刪除。
2.2.2 數(shù)據(jù)清洗
獲取到的原始評(píng)論數(shù)據(jù)中不僅有重復(fù)評(píng)論,還有一些評(píng)論中包含了數(shù)字和英文字母,以及很多像“熱水器”“電熱水器”這種與商品名稱有關(guān)的詞,這些詞語對(duì)于后續(xù)的分析都沒有很大幫助。因此,要將這些數(shù)據(jù)進(jìn)行清洗,這里主要使用了正則模塊中的方法,先使用re.compile()方法將要清洗的數(shù)字、字母以及中文詞語編譯為字節(jié)代碼,再利用re.sub()方法替換其中需要匹配的字符串。
獲取到的評(píng)論數(shù)據(jù)是完整的句子或段落,需要在分詞處理后再進(jìn)行可視化。
2.3.1 對(duì)評(píng)論進(jìn)行分詞
Jieba庫自帶一個(gè)dict.txt詞典,包含兩萬多條注明了詞性和詞頻的詞語。在進(jìn)行分詞處理時(shí),根據(jù)給定的dict.txt詞典,基于true樹結(jié)構(gòu)進(jìn)行高效的詞圖掃描,將可以得到的分詞情況形成一個(gè)有向無環(huán)圖(DAG)。然后,采用動(dòng)態(tài)規(guī)劃查找頻率最大的路徑和基于詞頻的最大切分組合[3]。對(duì)于dict.txt詞典中不存在的詞,稱為未登錄詞,可以根據(jù)不同的業(yè)務(wù)需求自行定義詞典,但格式需要與dict.txt詞典一致。
2.3.2 去除停用詞
停用詞是指在信息檢索過程中,為了節(jié)省存儲(chǔ)空間和提高搜索效率,搜索引擎會(huì)自動(dòng)過濾掉的一些詞或者字。停用詞主要有兩類,一類是使用范圍比較廣泛的字詞,比如指代詞;另一類就是文本數(shù)據(jù)中出現(xiàn)次數(shù)比較多的字詞,比如語氣助詞、連詞、介詞等,這兩類詞語在信息檢索過程中沒有實(shí)際意義,會(huì)被自動(dòng)忽略掉。
在做停用詞處理的時(shí)候,可以從網(wǎng)上找一些權(quán)威的停用詞典,根據(jù)自己的業(yè)務(wù)需求,在此基礎(chǔ)上進(jìn)行添加或刪除,形成自己的停用詞典。
經(jīng)過分析,筆者對(duì)獲得的美的熱水器評(píng)論數(shù)據(jù)進(jìn)行了分詞,根據(jù)分詞結(jié)果判斷出評(píng)論詞中的停用詞,建立停用詞典(因信息太多,此處不做展示),并進(jìn)行了去除停用詞處理。
因?yàn)楸景咐罱K是想對(duì)用戶評(píng)論的情感進(jìn)行分析,所以在進(jìn)行可視化之前還需要篩選出評(píng)論中可以反映用戶情感傾向的詞語。經(jīng)過觀察,發(fā)現(xiàn)這些評(píng)論數(shù)據(jù)中屬于名詞類型的詞語更能表達(dá)出用戶對(duì)產(chǎn)品的情感傾向,篩選出評(píng)論中名詞的過程不再贅述。
在提取出可以反映用戶情感的名詞之后,就可以繪制可視化圖表了。由于此處是以文本信息來進(jìn)行分析,所以本文選擇繪制出詞云圖查看效果,繪制的詞云圖將評(píng)論中出現(xiàn)頻率較高的關(guān)鍵詞突出顯示。在本例中需要WordCloud模塊中的WordCloud庫繪制詞云,并且最終使用Matplotlib模塊中的Pyplot庫將結(jié)果顯示出來。首先進(jìn)行詞頻統(tǒng)計(jì)并將詞頻按照降序排序,最終選擇前100個(gè)詞進(jìn)行詞云繪制。繪制的最終結(jié)果見圖1。
由繪制結(jié)果可知,在評(píng)論中“安裝”“師傅”“速度”“服務(wù)”“產(chǎn)品”“服務(wù)態(tài)度”等詞出現(xiàn)的頻率較高,由此可初步判斷客戶對(duì)這些方面的關(guān)注較高,但從這個(gè)詞云圖中不能看出客戶對(duì)這些方面持有何種態(tài)度,因此,還需要對(duì)詞云圖進(jìn)行優(yōu)化。
探討客戶對(duì)產(chǎn)品是持有滿意、差評(píng)或者一般的態(tài)度是進(jìn)行情感分析[4],就是分析客戶是對(duì)產(chǎn)品各方面情況的情感傾向。分析客戶的情感傾向要對(duì)情感詞進(jìn)行匹配,本案例主要用了知網(wǎng)發(fā)布的“情感分析用詞語集(beta版)”進(jìn)行詞典匹配,將“中文正面評(píng)價(jià)”和“中文正面情感”兩個(gè)詞表合并[5],作為本案例的正向情感詞表,并在其中加入了“太棒了”“滿意”“給力”等適用于本例場(chǎng)景的詞。將“中文負(fù)面評(píng)價(jià)”“中文負(fù)面情感”兩個(gè)詞表合并[5],作為本案例的負(fù)向情感詞表,在其中加入了“廉價(jià)”“不好”“惡劣”等適用于本例場(chǎng)景的詞。
構(gòu)建好情感詞表后,編碼讀取正負(fù)面評(píng)論情感詞表,正向情感詞賦予權(quán)重1,負(fù)向情感賦予權(quán)重-1,使用merge函數(shù)按照已構(gòu)建好的情感詞表與分詞結(jié)果進(jìn)行匹配。
匹配完成之后還要考慮在評(píng)論中存在雙重否定的情況,若出現(xiàn)雙重否定,則表達(dá)的是客戶相反的情感態(tài)度。將本案例中使用到的否定詞構(gòu)建出一個(gè)否定詞表,再編碼讀取否定詞表,處理評(píng)論中的雙重否定情況。
最后,使用WordCloud函數(shù)分別對(duì)正向情感評(píng)論和負(fù)向情感評(píng)論繪制詞云圖,繪制結(jié)果見圖2和圖3。
從繪制出的正向情感評(píng)論詞云圖中看到“安裝”“師傅”“滿意”“很快”“物流”“服務(wù)”“態(tài)度”“質(zhì)量”等詞語出現(xiàn)的頻率較高,可以從中得到物流速度很快;產(chǎn)品質(zhì)量不錯(cuò),值得信賴;安裝師傅服務(wù)態(tài)度令客戶滿意等信息。
從繪制出的負(fù)向情感評(píng)論詞云圖中看到“安裝”“財(cái)務(wù)”“慢”“加熱”“實(shí)體店”“師傅”等詞出現(xiàn)的頻率較高,從中可以得出商家在財(cái)務(wù)處理的方面還有些欠缺,不能讓客戶滿意;部分客戶認(rèn)為熱水器加熱太慢;產(chǎn)品的使用感不如客戶在實(shí)體店購物的使用感。
總的來說,客戶對(duì)美的熱水器的安裝、物流速度、客服以及安裝師傅的服務(wù)態(tài)度、產(chǎn)品的售后保障和服務(wù)、產(chǎn)品的質(zhì)量、品牌以及各方面的收費(fèi)情況都比較在意,商家應(yīng)該在這些方面格外注意客戶的感受,逐步優(yōu)化經(jīng)營(yíng)策略。
通過分析,對(duì)美的熱水器提出以下建議。
(1)繼續(xù)保持物流速度快、外觀美觀這些優(yōu)點(diǎn),同時(shí)要提升產(chǎn)品質(zhì)量,優(yōu)化熱水器的加熱速度和容量,以此提升自身品牌的核心競(jìng)爭(zhēng)力,讓客戶更加信賴美的品牌的產(chǎn)品。
(2)雖然有客戶對(duì)安裝師傅的服務(wù)態(tài)度比較滿意,但需要提升財(cái)務(wù)處理的能力,及時(shí)為客戶開發(fā)票,合理收費(fèi)并將收費(fèi)細(xì)則向客戶公開。
(3)及時(shí)關(guān)注客戶的使用感受,對(duì)比實(shí)體店的產(chǎn)品與自身產(chǎn)品的差異,提升客戶使用的滿意度。
對(duì)美的熱水器的評(píng)論數(shù)據(jù)進(jìn)行分析后,商家要在業(yè)務(wù)需求、管理模式和經(jīng)營(yíng)觀念上做出轉(zhuǎn)變。為了更好地給客戶購買的體驗(yàn)感以及順應(yīng)電商行業(yè)的發(fā)展潮流,商家可采用直播和電商平臺(tái)結(jié)合的營(yíng)銷模式促進(jìn)熱水器的銷售。以此激發(fā)客戶購買產(chǎn)品的動(dòng)力,拉近與客戶的溝通,更有利于及時(shí)向客戶的需求進(jìn)一步調(diào)整。
基于Python的電商產(chǎn)品評(píng)論數(shù)據(jù)分析方法主要經(jīng)過數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)可視化以及對(duì)可視化的結(jié)果進(jìn)行分析的過程,但在數(shù)據(jù)處理和可視化的過程中則需要根據(jù)不同的業(yè)務(wù)場(chǎng)景對(duì)評(píng)論數(shù)據(jù)進(jìn)行去重、清洗、分詞等操作,并根據(jù)業(yè)務(wù)需求對(duì)可視化結(jié)果不斷進(jìn)行優(yōu)化。本文僅以已有的京東商城中美的電熱水器的評(píng)論數(shù)據(jù)為例論述了用Python進(jìn)行數(shù)據(jù)分析的方法,在實(shí)際生活中對(duì)不同數(shù)據(jù)進(jìn)行分析的方法還需要更深入的探討和研究。