




摘 ?要:隨著國家對二胎、三胎政策的全面放開,新生兒出生數量有所增長,對嬰兒用品的數量和質量需求也發生著改變。本文主要研究嬰兒用品的商品評論相關信息的爬取,對目標網站的網頁進行分析,采集數據。獲取數據后,采用Python語言中的Pandas、Numpy等庫進行數據預處理。然后,使用Matplotlib、Nltk、Jieba庫對數據分析,去除重復評論,去除停用詞,詞頻統計后制作詞云圖等可視化數據結果,挖掘出大數據背后的隱含信息。
關鍵詞:Anaconda;嬰兒用品;數據采集;數據分析;數據可視化
中圖分類號:TP391 ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:2096-4706(2021)14-0090-04
Abstract: With the full liberalization of the national policy on the second and third children, the number of newborns has increased, and the demand for the quantity and quality of baby products has also changed. This paper mainly studies the crawling of information related to commodity reviews of baby products, analyzes the web pages of the target website, and collects data. After obtaining the data, the paper uses pandas, numpy and other libraries in Python language to preproces data. Then, uses Matplotlib, Nltk and Jieba libraries to analyze the data, removes repeated comments, removes stop words, makes word cloud and other visual data results after word frequency statistics, and mines the hidden information behind the big data.
Keywords: Anaconda; baby care; data acquisition; data analysis; data visualization
0 ?引 ?言
三胎政策的全面實行,在未來,將會有不少行業迎來爆發式的增長,而母嬰行業受益顯而易見。若一個家庭準備生養小孩,必不可少的是準備母嬰用品。小到奶嘴尿布,大到孕婦食品和兒童家具,這一系列的消費將隨著新生兒數量的增長而迎來井噴式的發展高峰。尤其在網絡購物方面,反映商品體驗感和觀點的評論詞匯,成為消費者了解商品及其質量的重要渠道。大數據、人工智能的發展則對嬰兒用品詞匯數據的處理帶來了更多便利。
構建嬰兒用品消費的詞匯數據,并進行有效分析和可視化處理,是各個地區商家經營母嬰用品,對商品的種類、材質、規格、銷量等參數進行有效控制的手段。同時,也對研究人口出生政策起到側面的支撐作用。
1 ?嬰兒用品數據采集
1.1 ?準備環境
Anaconda是一個基于Python語言的數據處理和科學計算平臺,已經內置了許多非常有用的第三方庫,裝上Anaconda,相當于把Python和一些如Numpy、Pandas、Scrip、Matplotlib 等常用的庫自動安裝好,比常規Python安裝更容易。
首先,進入官網,點擊下載對應安裝包,下載完成后,按照提示步驟,逐一點擊安裝。選擇安裝其他地址的,可以單獨新建一個文件夾來存放跟Anaconda相關數據,點擊結束后安裝完畢。然后,需要配置環境變量。找到安裝Anaconda的路徑,包含一個scripts文件,復制該路徑,通過右鍵“我的電腦”,選擇“屬性”,高級系統設置,環境變量,點擊環境變量,在系統變量中找到path,選中path,編輯好復制的路徑,粘貼在分號后面,點擊確定,保存后關閉就可以啟動Anaconda。
1.2 ?數據采集
1.2.1 ?分析網站頁面
爬取電商平臺的嬰兒用品數據之前,為更有效編寫代碼的邏輯,需要對該網站的域名結構和層次劃分清楚。本文以淘寶網為例,進入首頁,搜索輸入“奶瓶”,進入展示頁面,點擊第一個產品,進入“comotomo可么多么原裝進口硅膠奶瓶新生兒套裝韓國官方正品”的銷售頁面,該頁面包含了“累計評價”數據,其中,本次有效處理提取的數據是商品的評論內容、評論時間和商品分類類型。
爬取數據前,登錄淘寶網,查看可么多么原裝進口硅膠奶瓶的評論,建議選擇谷歌瀏覽器,選擇開發者工具或者按快捷鍵F12,找到Network選項,打開源代碼頁查找,發現源代碼頁沒有任何關于商品評論的信息,再去檢查頁進行查找,查找以“list_detail_rate.htm?”開頭的文件,在檢查頁的json數據里找到,然后需要向這些數據發送請求。該頁面的檢查頁信息和評論信息如圖1所示。
1.2.2 ?編寫代碼爬取數據
(1)導入需要用到的包,代碼如以下所示:
import requests ? # 導入第三方模塊requests庫
import csv
import re # 導入正則表達式庫
import numpy as np ? # 導入科學計算庫
import pandas as pd ? # 導入數據分析庫
import time
import random
(2)根據上面的網頁結構分析,找到真正的需要爬取的頁面URL和Headers頭部信息,包括referer、user-agent和cookie。評論頁面的地址很長,但是可以分析出規律,比如其中itemId是商品id,sellerid是賣家id,currentPage是頁面號,reply是評論回復等等。編寫的代碼以及運行結果是全部的頁面信息,如圖2所示。
(3)利用正則表達式對全部頁面信息進行提取,得到該款嬰兒用品的評論內容、評論時間和產品類型。多觀察分析幾個URL后,發現只有currentPage部分不同,表示評論頁碼。因為全部評論內容包含59頁多,需要用到循環結構實現。循環之前,先定義3個初始為空的列表,分別表示評論內容、評論時間和商品類型。編寫的關鍵代碼為:
for i in range(1,60):
url2 = ‘https://rate.tmall.com/list_detail_rate.htm?itemId=558660246338&spuId=878404666&sellerId=3296637765&order=3¤tPage=’+str(i)+’&append=0&content=1…’(說明:該url很長,此處省略了后面一部分。)
time.sleep(random.randint(3,9))
data = requests.get(url2,headers = headers).text
pat_content = re.compile(‘”rateContent”:”(.*?)”,”fromMall”’)
pat_time = re.compile(‘”rateDate”:”(.*?)”,”rateContent”’)
pat_type = re.compile(‘”auctionSku”:”(.*?)”,”anony”’)
content.extend(pat_content.findall(data))
content_time.extend(pat_time.findall(data))
type.extend(pat_type.findall(data))
data
dict = {
'評論':content,
'時間':content_time,
'類型':type
}
new_frame = pd.DataFrame(dict)
運行結果得到需要的評論數據,如圖3所示。
(4)存儲數據到csv文件,得到“嬰兒用品評論信息.csv”。Python提供了多種格式的數據存儲形式,由于本實驗數據量不大,選擇了csv文件格式。以可么多么原裝進口硅膠奶瓶為對象商品評論表,包含1210條原始評論數據。
2 ?嬰兒用品數據預處理
(1)導入相關包和嬰兒用品評論信息文件內容:
import nltk ? # 導入自然語言工具包
import nltk.book
file_path = open(‘D:/Python/嬰兒用品評論信息.csv’)
file_data = pd.read_csv(file_path)
(2)原始評論數據中有些是重復的,比如“此用戶沒有填寫評論!”,需要進行去重復處理。去掉重復評論剩余1086條數據。去除重復評論代碼為:
file_data = file_data.drop_duplicates()
(3)為了方便后期分別對評論內容進行詞頻統計,對商品的類型評論條數進行展示,將文檔分解成評論內容和產品類型兩個csv文件。
3 ?嬰兒用品數據分析及可視化
(1)對文本內容的評論分析需要導入Python中的自然語言工具包ntlk,利用jieba庫進行中文分詞。導入代碼為:
import jieba#導入jieba庫
from nltk.book import *
cut_words = jieba.lcut(str(file_data[‘評論’].values),cut_all=False)
(2)加載停用詞列表,對中文分詞去除停用詞,比如評論中的“你”“他”“的”“地”“得”等詞語,刪除停用詞后,從輸出的結果中可以大致看出評價的特征信息,不過后期還需要統計詞語出現的次數,才能進一步知曉用戶對該款嬰兒用品的喜惡。部分代碼為:
with open(‘D:/Python/停用詞表.txt’,encoding=’ utf-8’) as f:
stop_words = f.read()
new_data = []
for word in cut_words:
if word not in stop_words:
new_data.append(word)
(3)詞頻統計和產品分類評價統計。部分代碼如下:
import matplotlib.pyplot as plt ?# 導入模塊
import numpy as np
%matplotlib inline
%config InlineBackend.figure_format = ‘svg’
freq_list = FreqDist(new_data)
most_common_words = freq_list.most_common()
most_common_words
plt.figure(“分類統計”,figsize=(10,7))
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
plt.rcParams[‘axes.unicode_minus’] = False
new_x = np.linspace(0,9,12)
plt.xticks(new_x)
plt.ylim(0,30)
movie_name = [‘十字嘴’,’丫字嘴’,’粉色’,’藍色’,’250ml+150ml大小套’,’250ml’,’150ml’,’含重力球’,’不含重力球’]
y = [11.92,12.97,13.42,12.07,3.45,19.96,1.48,20.14,4.58]
plt.xticks(range(0,9),movie_name,)
plt.xticks(rotation=45)
index = np.arange(9)
plt.bar(index,y,0.5,color=[“r”,”g”,”b”],align=”center”)
通過調用nltk庫中的FreqDist類,對評論內容中每個詞語出現的次數進行詞頻統計,再把主要詞語的次數以柱狀圖展示出來。同時,對評論數據中類型字段進行分類統計,如十字嘴和丫字嘴的類型評論次數相差不大,但是,有重力球和不含重力球、250 ml和150 ml的商品類型評論次數相差明顯。詞頻統計柱狀圖和商品分類評價百分比柱狀圖如圖4、圖5所示。
(4)制作詞云圖。根據上一步中用戶評價的特征信息,使用wordcloud模塊進行詞云展示。將出現頻率高的評價詞匯進行放大顯示,頻率較低的詞語縮小顯示。代碼為:
from wordcloud import WordCloud
from matplotlib import pyplot as plt
wc=WordCloud(font_path=’D:/simhei.ttf’,background_color=’white’,width=1000,height = 800).generate(“ “.join(new_data))
plt.imshow(wc)
plt.axis(“off”)
plt.show()
從詞云圖中可以直觀地看出,“寶寶”“質量”“喝”“牌子”和“不錯”等詞語最為突出,表明用戶對該款嬰兒用品的質量和品牌總體感覺不錯,以寶寶是否愛喝作為重要的評判點。運行得到的詞云圖如圖6所示。
4 ?結 ?論
首先,通過本文研究發現:該款嬰兒用品銷售量,在不同的產品參數方面有所不同,用戶對寶寶是否愛喝、商品質量、是否有重力球和品牌等方面有較強的體驗感。合理運用Python在Anaconda環境下的科學計算庫、文本分析庫以及數據可視化等庫,可以高效便捷地完成簡單數據的采集,并且對原始數據進行預處理和可視化展示,對嬰兒用品商家提供銷售數據支持,也從側面反映二胎、三胎政策影響下的嬰兒用品需求變化。
然后,為了完善嬰兒用品詞匯資源庫,后續研究尚需要對其他商品的評論數據進行補充,對評論內容的文本情感分析和相似度分析進行思考和探索。
參考文獻:
[1] 呂云翔,李伊琳,王肇一,等.Python數據分析實戰 [M].北京:清華大學出版社,2018.
[2] 陳紅波,劉順祥.數據分析從入門到進階 [M].北京:機械工業出版社,2019.
[3] 李培.基于Python的網絡爬蟲與反爬蟲技術研究 [J].計算機與數字工程,2019,47(6):1415-1420+1496.
[4] 章蓬偉,賈鈺峰,邵小青,等.基于文本情感分析的電商產品評論數據研究 [J].微處理機,2020,41(6):58-62.
[5] 聶晶.Python在大數據挖掘和分析中的應用優勢 [J].廣西民族大學學報(自然科學版),2018,24(1):76-79.
[6] 鄭晶晶.融入Python應用的學生考勤數據管理分析 [J].數字技術與應用,2021,39(2):83-84+89.
[7] 郝海妍,潘萍.Python技術在數據分析中的應用 [J].電子技術與軟件工程,2020(12):179-181.
作者簡介:謝美英(1984—),女,漢族,湖南漣源人,講師,碩士研究生,研究方向:軟件技術、數據挖掘。