用python爬取天猫商品评论并分析(2)

用python爬取天猫商品评论并分析(2)

之前介绍过天猫数据的爬取和数据初步处理,今天介绍下 将采集的评论进行文本分析!下面是总流程:

0.主要流程

0.数据采集

这一步参考网址:https://www.jianshu.com/p/2b015d289083或者

http://blog.csdn.net/weixin_41716128/article/details/79306923

0. 目标网址获取

1. 爬虫框架选用

1.数据处理

这一步参考网址:https://www.jianshu.com/p/2c2906ef230f或者

http://blog.csdn.net/weixin_41716128/article/details/79314082


0. 数据初步分析

1. 数据初步分析



2.数据挖掘

0. 用户情感分析

  上次爬取并处理过的数据这里我提取追加评论字段进行分析(追加的评论更能体现产品品质)

导出txt文档如下:

并更名为comment.txt

好了写挖掘代码:

from snownlp import SnowNLP

file="comment.txt"

file1="new.txt"

x=0

#好评计数

k=0

#中评计数

y=0

#差评计数

z=0

#总数

with open(file,"r",encoding="utf-8") as text:

    #打开目标文件

    with open(file1, "w", encoding="utf-8") as text1:

        #打开保存差评的文件

        for comment in text:

            z+=1

            s=SnowNLP(comment)

            #文本分析

            s=s.sentiments

            #情感系数

            if s>0.5:

                x+=1

            elif s==0.5:

                k+=1

            else:

                text1.write(comment)

                #写入差评数

                y+=1

print("好评数:"+str(x))

print("差评数:"+str(y))

print("中评数:"+str(k))

print("总评论数:"+str(z))

print("差评率:"+str( round(y/z,2)*100)+"%")

可以看到代码非常简单,主要是用到snownlp的情感分析功能

Snownlp是什么?参考:https://pypi.python.org/pypi/snownlp/

主要功能如下:

这里主要用到情感分析(买卖东西时的评价)

好,看看程序输出的结果:

有点意外差评率那么高。

那么许多童鞋会有疑问了为什么这个结果与天猫的评论不一样

4.9的评分等于54%的差评?答案当然是否定的。个人认为有如下的原因:

(0)Snownlp的分析不是百分百正确的,为此我特意将差评提取出来如下:

可以发现前面2条评论明显不是差评,所以Snownlp的分析还是有点误差的(要降低这个误差需要自己训练数据并构建一个模型,这里涉及机器学习的知识难度太大博主选择放弃)但是正确率应该在80-90之间可信度还是很高(80-90正确率是许多网友测试得到的,仅限于购物评论)

(1)原始数据还有些噪音和错误数据没有处理如图:

虚线里面评论的网友,你确定不是为了凑字数?

(2)数据样本是追加的评论(1357条),样本比较特殊,且样本占比较小

一共有66404条评论,其中追评1772(样本抽取1357条且爬取时丢失了部分,详情参考数据采集部分:https://www.jianshu.com/p/2b015d289083或者

http://blog.csdn.net/weixin_41716128/article/details/79306923

)

(3)个人认为,追加的一般都是差评,不是差评就是为了凑字拿奖励(当然也有比较正直的好评的)

1. 可视化

既然差评已经提取出来了,那么就用python 的jieba分析下大家差评的原因吧(为什么偏偏是jieba?简单粗暴!)

代码如下:

#coding=utf-8

import matplotlib.pyplot as plt

from wordcloud import WordCloud, ImageColorGenerator

import PIL.Image as Image

import numpy as np

import jieba

#导入必备的模块

stoplist = [line.strip() for line in open('stop.txt','r',encoding="utf8").readlines() ]

#导入停用词

text_from_file_with_apath = open('new.txt',encoding="utf8").read()

#打开本地数据文件signature.txt.注意文件名不能用中文

for stop in stoplist:

    jieba.del_word(stop)

#去除停用词

wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all=False)

wl_space_split = " ".join(wordlist_after_jieba)

#用jieba模块进行挖掘关键词

coloring=np.array(Image.open("cat_new.jpg"))

#获取背景图片,new.jpg

my_wordcloud = WordCloud(background_color="white",

                        mask=coloring,

                        width=617, height=306,

                        font_path="tian.ttf",

                        max_words=400,

                        max_font_size=100,

                        min_font_size=20,

                        random_state=42).generate(wl_space_split)

#用wordcloud设计显示字体

image_colors=ImageColorGenerator(coloring)

plt.imshow(my_wordcloud.recolor(color_func=image_colors))

#背景图片颜色与字体匹配

plt.imshow(my_wordcloud)

#显示图片

plt.axis("off")

# 关闭坐标轴

plt.show()

#显示词云图

需要说下的是:

stoplist = [line.strip() for line in open('stop.txt','r',encoding="utf8").readlines() ]#导入停用词

关于停用词库是网上几个大学词库的集合

复制网站:http://blog.csdn.net/u010533386/article/details/51458591

停用词有什么作用下面放2个图

没有去除的停用词的结果:

可以看到有许多没有意义的词如:没有,现在,就是等词占据了许多空间

去除用词的:

无意义的词少了但是还是有的如:真的,不到,几天等(要去除需要手动添加)

从图中可以发现顾客对这家店的iPhonex有如下不满:黑屏,售后,客服,发票,电池,信号,解锁,系统等,介于此博主还是用回我可爱的小米3联通版(压根就是因为买不起啊哈哈哈)

以上是差评分析,其实还可以做好评分析的这里就不展开了!(iPhone x也有是有优点的,大家理性购买哈)

1.难点说明

0.关于天猫securitymatrix技

1. 关于机器学习

上面提到snownlp分析是有误差的,且只是对购物评论正确率比较高,因此snownlp的局限性是比较高的,因此不能很好的兼容其他分析了如:音乐评论,电影评论,医学应用,文言文等。为此大家需要提高准确率或者应用到其他领域就需要自行去训练模型了。建立模型的过程中会用到且不限于以下挖掘算法和知识:朴素贝叶斯,高斯贝叶斯,余弦相似度,kmeans,NLTK模块等(怎么实现?不会,不写,任性)

最后放出上一张图的背景

整个专题终于结束了,后面可能会介绍我毕业设计的主题:apriori算法的实现与设计

大家,新年快乐!!!!!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容