方芳
摘要:該文基于Scrapy框架對京東網站上筆記本電腦的評論數(shù)據(jù)進行了爬取,共爬取了32種品牌,選取其中的“聯(lián)想(Leno-vo)拯救者Y7000P”筆記本電腦評論數(shù)據(jù)進行分析,通過pandas提供的模糊匹配方法提取數(shù)據(jù),并對數(shù)據(jù)進行去重、分詞和停用詞過濾等處理,使用wordcloud庫繪制詞云圖,呈現(xiàn)出的情感數(shù)據(jù)為商家和用戶提供進一步的決策。
關鍵詞:Scrapy框架;Python;數(shù)據(jù)預處理;數(shù)據(jù)可視化
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)06-0007-03
1背景
1999年底,隨著互聯(lián)網高潮來臨。中國網絡購物的用戶規(guī)模不斷上升。2010年中國網絡購物市場延續(xù)用戶規(guī)模、交易規(guī)模的雙增長態(tài)勢。智能手機的普及更使得網上購物越來越流行,足不出戶就能買到性價比高的商品,享受著帶來的各項便利和服務。
現(xiàn)在人們對于網上購物的需求變得越來越高,這讓京東,淘寶,蘇寧易購,當當網等電商平臺得到了很大的發(fā)展機遇。從近期的數(shù)據(jù)來看,天貓2017年“雙11”這一天的最終交易額就達到1682億,創(chuàng)下歷史新高。京東全球好物節(jié)從同年的11月1日到11月11日24時累計下單金額達1271億元。
巨大的交易額將產生大量的用戶評論數(shù)據(jù),多數(shù)消費者熱衷于在網站上留下對產品的真實看法和體驗,很多消費者也習慣于在購買產品之前先瀏覽下用戶的評論信息,從而幫助自己選擇合適的產品。而各大電商平臺也面臨著激烈的競爭的同時,除了提高商品質量,壓低商品價格外,也需要得到用戶的反饋,而反饋信息可以從商品的評論區(qū)的文本數(shù)據(jù)信息得到。
本文將京東電商平臺上的筆記本電腦評論信息作為研究對象進行相關文本分析研究,從中得到有用的情感數(shù)據(jù),這些數(shù)據(jù)反映了用戶對產品的整體意見和態(tài)度,具有很高應用價值。這些情感數(shù)據(jù)的獲取,有利于電商改進營銷策略和提升服務質量,促進產品銷量,也有利于對應商品的生產廠家產品質量的提升,也有利于消費者了解商品的好壞,是否值得購買。
2相關技術介紹
2.1python
如今,Python已經成為一種再主流不過的編程語言了。它天生麗質,易于讀寫,非常實用,從而贏得廣泛的群眾基礎,被譽為“宇宙最好的編程語言”。Python是一種跨平臺、開源、免費的解釋型高級動態(tài)編程語言。Python擁有大量的庫,且易于學習,可以用來高效的開發(fā)各種應用程序。Python語言目前廣泛應用于網絡爬蟲、計算與數(shù)據(jù)分析、人工智能、自動化運維、云計算等領域。
2.2Scrapy框架
Scrapy是用純Python實現(xiàn)的一個開源網絡爬蟲框架,是為了高效地爬取網站數(shù)據(jù)、提取結構性數(shù)據(jù)而編寫的應用框架。它是一個“5+2”結構,5個模塊是指engine,scheduler,item pipe-lines,spiders和downloader。2個模塊是engine和spiders以及en_gine和downloader之間的兩個中間件模塊。
Scrapy的優(yōu)點有以下幾點:
1)開發(fā)者在Scrapy框架中只需要將爬取規(guī)則添加到代碼中就會自動開始數(shù)據(jù)的采集。
2)開發(fā)者使用Scrapy框架開發(fā)并不需要接觸核心代碼。
3)Scrapy是一種跨平臺的框架。
3爬蟲模塊
3.1抓取模塊
3.1.1新建Scrapy項目
首先需要在配置Pvthon3.7的pycharm中安裝Scrapy庫。然后在pycharm終端進入建立Scrapy項目的目錄,輸入命令scrapy starpmjiect項目名稱,命令執(zhí)行后生成項目的完成目錄。
3.1.2明確爬取目標
本次爬蟲目標是獲取京東網站上筆記本電腦的評論信息,利用Chrome瀏覽器對目標網站的頁面源碼結構進行分析。首先打開京東網站首頁,在搜索框中輸入筆記本,點擊搜索,進入筆記本搜索一級頁面,根據(jù)網頁源碼信息得到每個店鋪的URL地址,根據(jù)URL地址進入商品詳情頁面(又稱為二級頁面),從頁面中獲取筆記本電腦品牌和相關評論信息。整個爬蟲的流程是,構造筆記本搜索頁面初始url→采集店鋪地址url→構造商品詳情頁面URL→抓取評論信息一通過循環(huán)模擬翻頁獲取下一頁的url。
3.1.3制作Spiders爬取網頁
制作spiders也就是負責爬取和提取數(shù)據(jù)的爬蟲。首先在工程中目錄下在終端中輸入命令創(chuàng)建一個爬蟲,在爬蟲中編寫代碼。具體定義的方法分別是start_requestsO、ProducturlO、Pro-ducrCommentO、ParseO。
3.2存儲模塊
數(shù)據(jù)爬取后通過Pipeline.Py將爬取到的數(shù)據(jù)用戶ID,產品,用戶評論三個字段存儲到CSV文件中,爬取結果的部分數(shù)據(jù)如下圖1所示。
4文本預處理
4.1數(shù)據(jù)篩選
通過對“產品”這列的統(tǒng)計,共爬取了32種品牌電腦。本文選取了32種品牌中的“聯(lián)想(Lenovo)拯救者Y7000P”電腦進行分析,通過pandas提供的模糊匹配方法提取數(shù)據(jù),另外使用map方法將產品劃分成“品牌”和“型號”兩列,并且去掉了“產品”列,同時調整了列的排放順序,依次為用戶ID,品牌,型號,用戶評價四列,最后另存為jdnew.csv,CSV如圖2所示。
具體代碼如下所示:
4.2去重
利用pandas的duplicated0方法檢查重復的數(shù)據(jù),經檢測,發(fā)現(xiàn)很多行中出現(xiàn)True標記,例如行索引74925,74926,74927,74928,74929對應的值都是True,表明這些行的數(shù)據(jù)都是重復的,需要進行處理。我們使用drop_duplicatesO函數(shù)完成去重。
4.3分詞
采用python中的中文分詞包“iieba”(結巴分詞),對CSV文檔中的用戶評論數(shù)據(jù)進行中文分詞處理?!敖Y巴分詞”提供分詞、詞性標注、未登錄詞識別等功能。經過相關測試,結巴分詞的精度高達97%以上。它支持三種分詞模式:1)全模式:把文中所有可能的詞語都掃描出來,存在冗余;2)精確模式:把文本精準的分開,不存在冗余;3)搜索引擎模式:在精準模式的基礎上,再次對長詞進行切分。此處通過lcutO函數(shù)進行分詞,共需要提供兩個參數(shù),第一個參數(shù)表示需要分詞的字符串,第二個參數(shù)用來控制是否采用全模式分詞,這里采用精確模式,代碼如下所示。
words=jieba.1cut(str(comment.values),cut_all=False)
4.4過濾停用詞
停用詞是指在信息搜索中,為了提高搜索效率和節(jié)約存儲空間,過濾掉某些沒有具體意義的字和詞,這些字或詞被稱為停用詞。對于中文的停用詞,常用的停用詞表有哈工大停用詞表、四川大學機器學習智能實驗室停用詞庫、百度停用詞表。本文采用的是哈工大停用詞表過濾。
5數(shù)據(jù)可視化
使用matplotlib庫完成數(shù)據(jù)可視化,同時結合了wordcloud庫繪制詞云圖。wordcloud模塊會將文本中出現(xiàn)頻率比較高的詞語進行放大顯示,而出現(xiàn)頻率比較低縮小顯示。本文在繪制詞云圖時使用了背景圖片,背景圖片是用PIL的庫里的imread(1函數(shù)來加載的。
從圖中可以看出,用戶評論比較多的是外形外觀,包裝保護,運行速度,畫面品質等等。圖中“不錯”,“開機流暢”,“喜歡”這幾個字證實用戶對此款電腦整體是比較滿意的,沒有出現(xiàn)負面評論的詞。
6結束語
本文使用Scrapy框架爬取了京東網站上的筆記本電腦評論數(shù)據(jù),使用Pandas庫提取了“聯(lián)想(Lenovo)拯救者Y7000P”筆記本電腦的評論數(shù)據(jù),通過Pyilion語言完成了去重,分詞,停用詞等數(shù)據(jù)預處理工作,最后利用matplotlib和wordcloud完成了詞云圖的展示,從圖可以看到用戶對此款電腦整體是比較滿意。