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