亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
937
2022-05-29
Readme:
針對(duì)京東商城20W條美的熱水器評(píng)論數(shù)據(jù)進(jìn)行統(tǒng)計(jì)清洗分析。
分析出所有正面評(píng)論和負(fù)面評(píng)論。
分詞統(tǒng)計(jì)熱詞出現(xiàn)頻率。
分析出銷售問題所在。
開發(fā)環(huán)境:
本項(xiàng)目的文本情感分析使用的是基于情感字典的文本情感分析。
為了能夠正確標(biāo)注一段中文文本的情感。需要如下幾個(gè)情感字典:
①停用詞字典:用于過濾掉一段文本中的噪聲詞組。
②情感詞字典:用于得到一段文本中帶有情感色彩的詞組及其評(píng)分。
③程度副詞字典:代表情感詞的強(qiáng)烈程度,相當(dāng)于情感詞的權(quán)重。
④否定詞字典:用于判斷其后情感詞的意思究竟是好(正極性)還是壞(負(fù)極性),若情感詞前有否定詞,則情感得分-1。
情感字典以及評(píng)分通常由手工標(biāo)注完成,而標(biāo)注是一項(xiàng)費(fèi)時(shí)又費(fèi)力的活,因此這四個(gè)字典都是由網(wǎng)絡(luò)搜集而來。
項(xiàng)目文本名稱對(duì)應(yīng)內(nèi)容:{Huizong.csv :“所有評(píng)論信息”, meidj_jd.txt:“提取后的評(píng)論”,
meidi_jd_process_1.txt:“去重后的評(píng)論信息”, meidi_jd_neg.txt:“負(fù)面評(píng)論信息”, meidi_jd_pos.txt :“”正面評(píng)論信息”,stop_list:“停用詞表”}
數(shù)據(jù)采集:
首先要進(jìn)行數(shù)據(jù)采集
由于京東商品評(píng)論信息是由JS動(dòng)態(tài)加載的。
直接抓取商品詳情頁的URL并不能獲得商品評(píng)論的信息。
因此我需要先找到存放商品評(píng)論信息的文件。
這里我使用Chrome瀏覽器里的開發(fā)者工具進(jìn)行查找。
捕獲到的接口為:
2019年5月13日,更新了,需要加上referer。 headers = { 'Referer': 'https://item.jd.com/2705974.html'}
1
2
3
發(fā)現(xiàn)根據(jù)更改page的值可以選擇對(duì)應(yīng)評(píng)論頁。
先測試下:
請(qǐng)求一頁并提取對(duì)應(yīng)評(píng)論信息:
通過requests來測試,發(fā)現(xiàn)獲取到的content內(nèi)容:
開頭為:‘fetchJSON_comment98vv1204’,結(jié)尾為: ’ ); ’
發(fā)現(xiàn)content內(nèi)容不是完整的json格式,所以要把doc的前面25位和后兩位去掉;
即:doc_true = json.loads(doc[26:-2])
然后循環(huán)提取comment 即可得到評(píng)論內(nèi)容;把提取到的數(shù)據(jù)保存到mongodb中。
首先在mongodb中使用去重語句aggregate 來進(jìn)行集合內(nèi)去重。
再通過圖形界面Navicat來操作Mongodb數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)導(dǎo)出。
保存為csv后,使用pandas提取評(píng)論,并保存為meidi_jd.txt;
此時(shí)已經(jīng)提取出了名為meidi_jd.txt的評(píng)論文件。
接下來要開始數(shù)據(jù)清洗工作,先進(jìn)行數(shù)據(jù)去重。
我使用了pandas中的unique方法來進(jìn)行去重,并保存為meidi_jd_process_1.txt;
可發(fā)現(xiàn),經(jīng)過unique去重后數(shù)據(jù)減少了6371條。
數(shù)據(jù)分詞:
ROSTCM6是武漢大學(xué)沈陽教授研發(fā)編碼的國內(nèi)目前唯一的以輔助人文社會(huì)科學(xué)研究的大型免費(fèi)社會(huì)計(jì)算平臺(tái)。該軟件可以實(shí)現(xiàn)微博分析、聊天分析、全網(wǎng)分析、網(wǎng)站分析、瀏覽分析、分詞、詞頻統(tǒng)計(jì)、英文詞頻統(tǒng)計(jì)、流量分析、聚類分析等一系列文本分析。
通過ROSTCM6工具來提取出正面與負(fù)面評(píng)價(jià)(待分析的文件編碼必須是ANSI)。
例:data=pd.read_csv(…) data.to_csv(r’xixi.txt’, encoding=‘ANSI’)
正面情感詞:
負(fù)面情感詞:
去除標(biāo)簽:
然后使用結(jié)巴分詞進(jìn)行簡單分詞。
先進(jìn)行參數(shù)初始化,然后通過jieba.cut進(jìn)行自定義分詞函數(shù);
通過“廣播”形式分詞,加快速度然后保存結(jié)果;
通過wordcloud庫,生成簡單詞云圖來查看正面情感。
查看負(fù)面情感詞:
主題模型:
根據(jù)上面的簡易詞云圖,并不能有效的分析出銷售問題所在。
所以我開始對(duì)分詞之后的文檔建立主題模型。
LDA(Latent Dirichlet Allocation)是一種文檔主題生成模型,也稱為一個(gè)三層貝葉斯概率模型,包含詞、主題和文檔三層結(jié)構(gòu)。
所謂生成模型,就是說,我們認(rèn)為一篇文章的每個(gè)詞都是通過“以一定概率選擇了某個(gè)主題,并從這個(gè)主題中以一定概率選擇某個(gè)詞語”這樣一個(gè)過程得到。
文檔到主題服從多項(xiàng)式分布,主題到詞服從多項(xiàng)式分布。
結(jié)果分析:
輸出負(fù)面主題后:
通過上述分析可以看出在被判定為負(fù)面評(píng)論的關(guān)鍵詞中,‘安裝’的系數(shù)是最大的,其次主要就是‘商品本身’,可見在熱水器銷售的過程中,對(duì)用戶評(píng)論有關(guān)鍵影響的主要是商品的安裝服務(wù)和商品的質(zhì)量,另外可以看出,‘客服’、‘物流’也是比較重要的;
輸出正面主題后:
‘好’、‘不錯(cuò)’等類似的關(guān)鍵詞反應(yīng)了顧客對(duì)應(yīng)商品還是比較滿意的,另外師傅’、‘安裝’
的系數(shù)還是比較大的,另外‘及時(shí)’、‘很快’也一定程度上反應(yīng)了物流的快慢對(duì)于用戶好的購物體驗(yàn)的影響。
我將輸出出來的兩種主題信息保存在到result_id.txt中。
提取相同的數(shù)據(jù)然后把對(duì)應(yīng)的數(shù)進(jìn)行相加,再使用matplotlib繪制出散點(diǎn)圖
根據(jù)結(jié)果總體分析來看商品的售后安裝和商品的質(zhì)量是顧客最為關(guān)鍵的考察點(diǎn)。
雖然本例中情感分析、分詞的準(zhǔn)確率并不能百分百的正確預(yù)測,但也在一定程度上反應(yīng)了具體由哪些因素主導(dǎo)了用戶的購物體驗(yàn)及評(píng)論的好壞。
github完整鏈接: https://github.com/lixi5338619/jingdong_comment
Python
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。