作者 | 周志鵬
責(zé)編 | maozz
最近,小Q陷入了一個脫發(fā)死循環(huán)。
照鏡子隱隱若現(xiàn)的頭皮,洗完頭地上烏壓壓的斷發(fā),讓他無時無刻不擔(dān)心自己的發(fā)量,一擔(dān)心怎么辦呢?撓頭唄!
越脫發(fā),越擔(dān)憂;越擔(dān)憂,越撓頭;越撓頭,越脫發(fā)...
“為什么不試試防脫洗發(fā)水呢?我有好幾個同事在用。”我實在不忍心小Q繼續(xù)循環(huán)下去。
小Q義正言辭:“我聽說那些玩意兒沒什么用啊!現(xiàn)在產(chǎn)品都喜歡打概念!”
“沒有調(diào)查就沒有發(fā)言權(quán),你這樣下定論太主觀了。要不咱們從數(shù)據(jù)的角度來論證一下,防脫洗發(fā)水是不是個偽命題?”
“有點意思!”小Q來了勁兒。
說干就干。要論證防脫洗發(fā)水是不是個偽命題,得先搞清楚誰對防脫洗發(fā)水最有發(fā)言權(quán)。答案顯而易見,買過防脫洗發(fā)水的朋友,他們對產(chǎn)品的評價,是最簡單粗暴的論據(jù)。
所以,我們以淘寶為例,爬取5款熱銷洗發(fā)水評價數(shù)據(jù),綜合分析效果。
數(shù)據(jù)獲取
目前淘寶反爬(尤其是滑塊等驗證)實在讓人頭大,但是我發(fā)現(xiàn)爬取評價數(shù)據(jù)并不一定需要和登錄滑塊硬剛,用selenium是可以繞過的。
部分代碼如下,對爬取感興趣的同學(xué)可以在文末鏈接下載詳細(xì)代碼,不感興趣的同學(xué)直接往下滑:
importpandas aspd
fromselenium importwebdriver
importrandom
importos
importtime
driver = webdriver.PhantomJS
defget_page(driver):
result = pd.Dataframe
fori indriver.find_elements_by_xpath('//div[@class = "rate-grid"]/table/tbody/tr'):
try:
content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-content"]').text
#評價日期
date = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-date"]').text
#購買產(chǎn)品
sku = i.find_element_by_xpath('td[@class = "col-meta"]/div[@class = "rate-sku"]').text
#用戶名
username = i.find_element_by_xpath('td[@class = "col-author"]/div[@class = "rate-user-info"]').text
append_time = None
append_content = None
except:
content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-premiere"]/div[@class = "tm-rate-content"]').text
#評價日期
date = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-premiere"]/div[@class = "tm-rate-tag"]/div[@class = "tm-rate-date"]').text
#購買產(chǎn)品
sku = i.find_element_by_xpath('td[@class = "col-meta"]/div[@class = "rate-sku"]').text
#用戶名
username = i.find_element_by_xpath('td[@class = "col-author"]/div[@class = "rate-user-info"]').text
append_time = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-append"]/div[1]').text
append_content = i.find_element_by_xpath('td[@class = "tm-col-master"]/div[@class = "tm-rate-append"]/div[2]').text
df = pd.Dataframe({'用戶名':[username],'購買產(chǎn)品':[sku],'評價日期':[date],'初次評價內(nèi)容':[content],
'追評時間':[append_time],'追評內(nèi)容':[append_content]})
result = pd.concat([result,df])
returnresult,driver
熱門關(guān)注點
我們爬了5款產(chǎn)品,共計8979條評價,然后把評價中TOP15高頻詞做成詞云圖:
很明顯,消費(fèi)者對于防脫洗發(fā)水的訴求簡單粗暴,效果是第一核心關(guān)注點。雖然“沒用”也在TOP15高頻詞中,但整體而言,正面詞匯更加集中,消費(fèi)者并不吝給出不錯、好評、好用等評價。
除效果外,味道成了消費(fèi)者的“論點”,畢竟洗完頭之后,洗發(fā)水是通過味道來散發(fā)魅力。防脫洗發(fā)水,營造的防脫希望十分重要,不少消費(fèi)者在收到貨后,都已經(jīng)開始期待頭皮變得濃密。
下面,我們從情感分析的角度來切入。
防脫洗發(fā)水情感分析
情感打分,雖然很多人自詡是一個沒有感情的殺手,但說出來的每一句話卻都洋溢著“感情”。
拿剛爬到的評論數(shù)據(jù)來說,任何一個消費(fèi)者在評論時都帶著和產(chǎn)品相關(guān)的主觀情感,要么覺得好,要么覺得爛,只是個體對于好和爛的感知程度不同罷了。
So,這里我們用SnowNLP這個庫,為每條評價進(jìn)行情感打分,通過分值來量化情感傾向。(分值在0-1之間,越靠近0負(fù)面傾向越強(qiáng),越接近1則正面情感越強(qiáng))
fromsnownlp import SnowNLP
sens = []
fortextinfinal_re['初評內(nèi)容']:
s = SnowNLP(text)
sens.append(s.sentiments)
#final_re是評價數(shù)據(jù)源
final_re['初評情感評分'] = sens
一個回車,打分完畢!
評分總覽
看看5款熱銷防脫洗發(fā)水的平均情感評分:
尷尬,8000多條評論最終平均下來竟然是如此中性的傾向(我們暫且認(rèn)為0.5是中性)。是大多數(shù)客戶都無所謂,還是兩極分化嚴(yán)重呢?
防脫洗發(fā)水的評價兩極分化極其嚴(yán)重。28.95%的消費(fèi)者給出了超0.8分的正向評價,他們極盡吹捧之能事,甚至可以說是“歌頌”防脫洗發(fā)水,感謝再“生”之恩。32.81%的消費(fèi)者評價情感小于0.2,他們恨不得跳腳大罵,覺得智商受到了侮辱。
品牌情感細(xì)分
除章光101外,其他品牌情感評分均值都在0.5之上,情感以積極為主。為什么章光101平均值、中位數(shù)如此之低?這么多負(fù)面評價品牌都無動于衷嗎?
數(shù)據(jù)分析要敢于直面慘淡的數(shù)據(jù),敢于正視打臉的現(xiàn)實。
通過進(jìn)一步觀察評價內(nèi)容,我們發(fā)現(xiàn)問題出在情感評分本身。不少消費(fèi)者給出好評時,會先訴說自己被脫發(fā)折磨的多么苦不堪言,最后話鋒一轉(zhuǎn)開始夸洗發(fā)水。(章光101此類評價尤多)
很遺憾,snownlp這個庫的腦回路轉(zhuǎn)的太慢,它總是沉浸在悲痛的前奏不能自拔,給出了低分。再加上我們并未針對洗發(fā)水評價進(jìn)行訓(xùn)練,會存在一些評分疏漏。
這里是拋磚引玉,給出評價分析,建議大家嘗試更多的評分玩法。
最后,小Q開始用肉眼檢索評價。許久之后,甩了甩稀薄的劉海,自信的總結(jié):
“如果剔除掉評分誤判,消費(fèi)者對于防脫洗發(fā)水的使用情感會更加正向。所以,從評價角度來看,我覺得防脫洗發(fā)水并不是一個偽命題,哥已經(jīng)下單了!”
注:文中爬取評價代碼和數(shù)據(jù)源,已上傳至github(https://github/seizeeveryday/DA-cases/tree/master/Hair)。
作者:周志鵬,2年數(shù)據(jù)分析,深切感受到數(shù)據(jù)分析的有趣和學(xué)習(xí)過程中缺少案例的無奈,遂新開公眾號「數(shù)據(jù)不吹牛」,定期更新數(shù)據(jù)分析相關(guān)技巧和有趣案例(含實戰(zhàn)數(shù)據(jù)集),歡迎大家關(guān)注交流。
聲明:本文為作者投稿,版權(quán)歸作者個人所有。
擊閱讀原文,即刻參加調(diào)查!


