- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-05-18來源:纖纖公子瀏覽數:271次
在整個分析過程中,去思考如何更深入的分析,如何明確分析方向,如何通過換位思考和流程拆解,把大目標拆成可以分析的小目標,并最終落地,則需要在實踐中反復磨練,與君共勉!
本文從一個具體的評價分析場景切入,按步分析,力求還原分析的每個環節。
最近收到不少留言,問最多的是:“我是偏運營/業務分析的,復雜的分析算法我不會,還有什么方法能夠對評價類數據做更深入分析嗎?”
剛開始我會昧著良心回復“詞云啊!”
然鵝總是會被DISS“詞云太簡單了吧,有點low!”

我猙獰一笑,雖然這個問題有點像“我長的不帥也沒錢,有沒有什么辦法能夠追到白富美”。但從數據分析的角度來看,仍不失為一個好問題。
好在哪里呢?在回答之前,先瞧一個數據分析常見思維誤區。
一些同學總是認為,分析不出來有價值的結果,是因為有兩只攔路虎,一是數據量和維度不夠,二是因為自己不會復雜的分析模型和算法。然后,也沒有再去思考,如何基于現狀更進一步地分析問題。

數據維度和算法的價值當然不言而喻,但總是把分析不出結果和價值的鍋甩出去,這種歸錯于外的思維非常危險,它營造了一種“分析不出結果,我也沒辦法”的心安理得。
而“我不會高階分析工具和方法,但基于現狀,去思考或者詢問有沒有更好的分析方式”,雖然這種思維也有槽點,但本身算是一種在現階段嘗試去解決問題的思路。
So,我們循著后一種思路,以李子柒在天貓上賣的一款辣椒醬評價為例:

看看基于現有的“單薄”數據維度,怎樣讓分析再向前邁進一步。

魯迅曾經沒說過:“明確分析目標,你的分析已經成功了一大半”。

做深入分析之前,面對這一堆評價數據,我們要明確,究竟想通過分析來解決什么問題?只有明確分析目標,才能把發散的思維聚焦起來。
為了給大家一個明確的分析錨點,假設我們是這款辣椒醬的產品負責人,要基于評價,更好的獲悉消費者對產品的看法,從而為后續產品優化提供思路。
所以,我們的分析目標是“基于評價反饋,量化消費者感知,指導優化產品”。
注:這里給到的一個假設目標并不完美,主要是拋磚引玉,大家可以從不同的維度來提出目標假設,嘗試不同分析方向。
是不是有那么一丟丟分析思路了?別急,目標還需要繼續拆解。

這些年來,最有價值的一個字,便是“拆”了。
在數據分析中也是同理。
我們在上一步已經確定了“基于評價優化產品”的目標,但這只是一個籠統模糊的目標。要讓目標真正可落地,“拆”是必不可少的一步。
“拆”的藝術大體可以分為兩步,第一步是換位思考。
評價來源于客戶,客戶對產品有哪些方面的感知呢?我們可以閉上眼睛,幻想自己購買了這款辣椒醬。
接著進入第二步,基于換位的邏輯拆解,這里可以按照模擬購物流程的邏輯來拆解:
首先,李子柒本身有非常強的IP光環,大家在選購時或多或少是慕名而來。所以,在購買決策時,到底有多大比例是沖著李子柒來的?
Next,在沒收到貨前,影響體驗的肯定是物流,付款到收貨用了幾天?派送員態度怎么樣,送貨上門了嗎?
收到貨后,使用之前,體感最強的則是包裝。外包裝有沒有破損?有沒有變形?產品包裝是精致還是粗糙?
接下來是產品體驗,拿辣椒醬來說,日期是否新鮮?牛肉用戶是否喜歡?到底好不好吃?
吃完之后,我們建立起了對產品的立體感知——性價比。我花錢買這個產品到底值不值?這個價位是貴了還是便宜?實惠不實惠?
品牌、物流、包裝、產品(日期、口味)和性價比五大天王鋒芒初現,我們下一步需要量化消費者對于每個方面的感知。

對于評價的拆解和量化,這里介紹一種簡單粗暴的方式,按標點把整條評論拆分成零散的模塊,再設置一系列預置詞來遍歷。
注:再次強調我們這篇內容的主題是“如何基于最基礎的技術,做進一步的分析,這里假設我們只會最基礎的python語法和pandas。
有同學會問“為什么不用分詞”!此問可謂正中我懷。不過,我把這個問題當作開放式思考題留給大家——如果用分詞,如何實現同樣的效果,以及有什么優缺點?
言歸正傳,我們先看看實戰爬取的評論數據,一共1794條:

把每條評論按照標點拆分成短句,為了省事,用了簡單的正則拆分:

我們發現,就算是比較長段的評論,也只是涉及到品牌、物流、包裝、產品和性價比的部分方面,所以,我們依次去遍歷匹配,看短句中有沒有相關的內容,沒有就跳過,有的話再判斷具體情緒。
以物流為例,當短句中出現“物流”、“快遞”、“配送”、“取貨”等關鍵詞,大體可以判定這個短句和物流相關。
接著,再在短句中尋找代表情緒的詞匯,正面的像“快”、“不錯”、“棒”、“滿意”、“迅速”;負面的“慢”、“龜速”、“暴力”、“差”等。
在我們預設詞的基礎上進行兩次遍歷匹配,大體可以判斷這句話是不是和物流相關,以及客戶對物流的看法是正面還是負面:

為方便理解,用了灰常丑陋的語法來一對一實現判斷。包裝、產品和性價比等其他模塊的判斷,也是沿用上述邏輯,只是在預設詞上有所差異,部分代碼如下(左右滑動查看完整代碼):
def judge_comment(df,result): judges = pd.DataFrame(np.zeros(13 * len(df)).reshape(len(df),13), columns = ['品牌','物流正面','物流負面','包裝正面','包裝負面','原料正面', '原料負面','口感正面','口感負面','日期正面','日期負面', '性價比正面','性價比負面']) for i in range(len(result)): words = result[i] for word in words: #李子柒的產品具有強IP屬性,基本都是正面評價,這里不統計情緒,只統計提及次數 if '李子柒' in word or '子柒' in word or '小柒' in word or '李子七' in word\ or '小七' in word: judges.iloc[i]['品牌'] = 1 #先判斷是不是物流相關的 if '物流' in word or '快遞' in word or '配送' in word or '取貨' in word: #再判斷是正面還是負面情感 if '好' in word or '不錯' in word or '棒' in word or '滿意' in word or '迅速' in word: judges.iloc[i]['物流正面'] = 1 elif '慢' in word or '龜速' in word or '暴力' in word or '差' in word: judges.iloc[i]['物流負面'] = 1 #判斷是否包裝相關 if '包裝' in word or '盒子' in word or '袋子' in word or '外觀' in word: if '高端' in word or '大氣' in word or '還行' in word or '完整' in word or '好' in word or\ '嚴實' in word or '緊' in word: judges.iloc[i]['包裝正面'] = 1 elif '破' in word or '破損' in word or '癟' in word or '簡陋' in word: judges.iloc[i]['包裝負面'] = 1 #產品 #產品原料是牛肉為主,且評價大多會提到牛肉,因此我們把這個單獨拎出來分析 if '肉' in word: if '大' in word or '多' in word or '足' in word or '香' in word or '才' in word: judges.iloc[i]['原料正面'] = 1 elif '小' in word or '少' in word or '沒' in word: judges.iloc[i]['原料負面'] = 1 #口感的情緒 if '口味' in word or '味道' in word or '口感' in word or '吃起來' in word: if '不錯' in word or '好' in word or '棒' in word or '鮮' in word or\ '可以' in word or '喜歡' in word or '符合' in word: judges.iloc[i]['口感正面'] = 1 elif '不好' in word or '不行' in word or '不鮮' in word or\ '太爛' in word: judges.iloc[i]['口感負面'] = 1 #口感方面,有些是不需要出現前置詞,消費者直接評價好吃難吃的,例如: if '難吃' in word or '不好吃' in word: judges.iloc[i]['口感負面'] = 1 elif '好吃' in word or '香' in word: judges.iloc[i]['口感正面'] = 1 #日期是不是新鮮 if '日期' in word or '時間' in word or '保質期' in word: if '新鮮' in word: judges.iloc[i]['日期正面'] = 1 elif '久' in word or '長' in word: judges.iloc[i]['日期負面'] = 1 elif '過期' in word: judges.iloc[i]['日期負面'] = 1 #性價比 if '劃算' in word or '便宜' in word or '賺了' in word or '囤貨' in word or '超值' in word or \ '太值' in word or '物美價廉' in word or '實惠' in word or '性價比高' in word or '不貴' in word: judges.iloc[i]['性價比正面'] = 1 elif '貴' in word or '不值' in word or '虧了' in word or '不劃算' in word or '不便宜' in word: judges.iloc[i]['性價比負面'] = 1 final_result = pd.concat([df,judges],axis = 1) return final_result運行一下,結果畢現:

第一條評價,很明顯的說快遞暴力,對應“物流負面”計了一分。
第二條評價,全面夸贊,提到了品牌,和正面的物流、口感信息。
第三條評價,粉絲表白,先說品牌,再夸口感。
看起來還不賴,下面我們對結果數據展開分析。

我們先對結果做個匯總:

一共爬了1794條評論,評論中有提及到我們關注點的有1937次(之所以用次,是因為一條評論中可能涉及到多個方面)。粗略一瞥,口感和原料占比較高,畫個圖更細致的看看。

看來,辣椒醬的口感(好不好吃)是客戶最最最關注的點,沒有之一,占比高達57.98%,領先其他類別N個身位。
慢隨其后的,是原料、品牌、性價比和包裝,而物流和日期則鮮有提及,消費者貌似不太關注,或者說目前基本滿足要求。
那不同類別正負面評價占比是怎么樣的呢?

整體來看,主流評論以好評為主,其中口感、品牌(這個地方其實沒有細分)、包裝以正面評價占絕對主導。
原料和性價比,負面評價占比分別是14%和38%,而物流和日期由于本身占比太少,參考性不強。
作為一個分析師,我們從原料、性價比負面評價占比中看到了深挖的機會。

原料負面評價是單純的在吐槽原材料嗎?

初步篩選之后,發現事情并沒有那么簡單。
原料負面評價共出現了53次,但里面有24次給了口感正面的評價,甚至還有8次原料正面評價!羅生門嗎?

這8次即正面又負面的原料評價,其實是揭了我們在預置詞方面的不嚴謹,前面判斷牛肉相關的短句,“小”就是負面,“大”就是正面,有些絕對。
而判斷準確的原料差評中,雖然有一半說味道不錯,但還是不留情面的吐槽了牛肉粒之小,之少,甚至還有因此覺得被騙。
如何讓牛肉粒在體感上獲取更多的好評,是應該在產品傳播層做期望控制的宣導?還是在產品層增加牛肉的“肉感”?需要結合具體業務進一步探究。
性價比呢?

性價比相關負面評價共58次,負面情緒占性價比相關的38%。這些負面評價消費者大多數認為價格偏貴,不劃算,還有一部分提到了通過直播渠道購買價格相對便宜,但日常價格難以接受。
坦白講,這款辣醬的價格在線上確實屬于高端價位,而價格體系是一個比較復雜的場景,這里暫不展開分析。
但是對于這部分認為性價比不符預期的客戶,是應該因此反推產品價格,還是把他們打上“價格敏感的標簽”,等大促活動喚醒收割,這是兩條可以考慮并推進的道路。
物流和日期提及太少,不具備參考性,但為了不那么虎頭蛇尾,我們還是順手看一眼物流負面評價:

果然,物流是一項必備需求,基本滿足預期的話消費者并不會主動提及,沒達預期則大概率會雷霆震怒。而物流暴力、速度太慢是兩個永恒的槽點。
至此,我們基于看起來簡單的評價數據,用簡單淺白的方式,做了細致的拆分,并通過拆分更進一步的量化和分析,向深淵,哦不,向深入邁進了那么一丟丟。

文中涉及到的代碼,主要是拋磚引玉,大家還可以結合實際,做更精細的梳理和判斷。在整個分析過程中,去思考如何更深入的分析,如何明確分析方向,如何通過換位思考和流程拆解,把大目標拆成可以分析的小目標,并最終落地,則需要在實踐中反復磨練,與君共勉!
-?END -