京东手机评论分析(一):词云

开篇

先做一些简单的评论分析吧,大部分还是借助于不同的python工具,不得不说很多中文的基本任务还是做得效果比较一般的,毕竟中文的复杂程度可不是英文可以比拟的,这篇就是简单地生成一个词云,是以词频为主的,姑且把高频词当做关键词吧,其实你看了下面我分析oppo r15的结果,你就会发现,其实还是有那么一点靠谱的。可能下面的内容比我开篇的废话还要少。

词云的生成

数据集的介绍在我的这篇博客,下载链接也放出来了,大家如果不想浪费积分,可以给我留言,我看到后会发送到你的邮箱。

import json
import jieba
import jieba.analyse
import string
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from scipy.misc import imread

#color_mask = imread('data/tim.jpeg')

stopwords = []
stopword = open('data/chinesestopword.txt','rt')
for line in stopword:
    stopwords.append(line.strip())
with open('data/oppo_r15.json','r') as f:
    data = json.load(f)
review = []
for i in data:
    review.append(i['content'])

text = ''.join(c for c in review)


words = jieba.cut(text)
words_list = []
for i in words:
    words_list.append(i)

words_list = [x for x in words_list if x not in punctuation]
addword = ['?',' ']
words_list = [x for x in words_list if x not in addword]
words_list = [x for x in words_list if x not in stopwords]

my_word_list = " ".join(words_list)
#print(my_word_list)
#参数设置都在下面这行代码
my_wordcloud = WordCloud(max_words=20,background_color='white',font_path='data/simsun.ttf').generate(my_word_list)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

这边我用的是jieba进行中文分词的,但是jieba的词性标注其实不是很准,建议大家在做词性标注的时候使用其他中文处理工具,具体使用那个比较好,后面会介绍。

处理英文比较多,在去除标点符号的时候,发现string里面的punctuation失效了,它匹配不到中文的标点符号,所以开头导入了另外一个库 from zhon.hanzi import punctuation,这应该是外国人开发的一个库,使用的时候我发现还是有问号没有匹配到,好过自己写正则啦。

停用词词表的下载链接,当然你也可以给我留言。

这边我还是遇到了一个大坑,就是我用的是ubuntu,在生成词云的时候发现生成都是框,啥都没有,当时我就傻眼了,这都什么鬼。后来看了一圈,发现是我的系统没有中文字体,或者说代码没有办法显示字体,也就是参数font_path,所以我找了一个中文字体,吐槽一下那些下载字体的是网站,下载下来的全是exe文件,还好我的电脑根本安装不了,能不能有点底线呀,下载了七八个exe。这边选择的是最多显示20个单词,下面是我生成的一个词云,没有搞到合适的背景图。

看一下还是很中肯的评价,oppo一直跟随着苹果的脚步。拍照也是oppo主打的,粉丝群体也比较固定,ok,就到这里,再写下去就是手机测评了,看评论我没有发现什么缺点,下次单独把差评拉出去分析分析。

猜你喜欢

转载自blog.csdn.net/ding_xiaofei/article/details/80357104
今日推荐