Python——对淘宝评论词频统计并生成词云图

flowerplus的天猫评论,大概300条数据
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 29 13:56:40 2018

@author: Shirley
"""
import xlrd#读取excel
from openpyxl import load_workbook#写入excel
from wordcloud import WordCloud as wd#词云
import jieba#结巴分词
import matplotlib.pyplot as plt#绘图
from collections import defaultdict#字典,用于词频统计
from PIL import Image#打开图片,用于词云背景层
import numpy as np#转换图片,用于词云背景层

path = 'D:/anaconda/shirleylearn/cipintongji/mywordexample.xlsx'#要分词的内容路径
exfile = xlrd.open_workbook(path)#打开excel
sheet1 = exfile.sheet_by_name('Sheet1')#读取Sheet1的内容,根据实际情况填写表名

n = sheet1.nrows#表的总行数
mytext = ''
for i in range(1,n):
    text = sheet1.row(i)[1].value#从第0行开始计数,第0行是栏目,第1行是要的内容
    mytext = mytext+" "+text#把每一天内容合并到一个str中
    
#print(mytext)
'''
mytext = ' '.join(jieba.cut(mytext))

#直接根据分词结果生成简单的词云图
wordcloud = wd(font_path="simsun.ttf").generate(mytext)
plt.imshow(wordcloud,interpolation='bilinear')
plt.axis('off')#不显示坐标轴 
'''
jieba.add_word('洋桔梗')#默认把“洋”和“桔梗”分开了,这里加新词,使分词结果更准确
jieba.add_word('洋牡丹')#花毛莨又名洋牡丹,很漂亮O(∩_∩)O
jieba.add_word('花加')#如果新词多的话,可以用自己的词库进行分词,在搜狗输入法的网站上有很多分类词库
mytext = jieba.lcut(mytext)#把分词结果生成为列表
#print(mytext)

sl = []
with open('D:/anaconda/shirleylearn/cipintongji/stopwords.txt','r') as f:#打开停用词文件
    s = f.readlines()
    for a in s:
        a = a.replace('\n','')
        sl.append(a)#把停用词存入列表
        
sl.append('\u200b')
sl.append('\xa0')#这2个符号无法通过stopwords去除,只能在这里增加到列表中,不知道有没有更好的办法

wordfrequency = defaultdict(int)
for word in mytext:
    if word not in sl:#去停用词
        wordfrequency[word] += 1#词频统计

#print(wordfrequency)
        
img = Image.open("D:/anaconda/shirleylearn/cipintongji/bgimg_rose.jpg")#打开图片
myimg = np.array(img)#转换图片


wordcloud = wd(width=1000,height=860,margin=2,font_path="simsun.ttf",background_color="white",max_font_size=180,mask = myimg).fit_words(wordfrequency)#根据词频字典生成词云
plt.imshow(wordcloud)
plt.axis('off')#不显示坐标轴 
plt.savefig('wc_flowerplus.png', dpi=300)#存储图片,dpi就是每英寸里有多少个点,点越多就越清晰。

file = load_workbook(path)#打开excel
nsheet = file.create_sheet('frequency',index=0)#新建表
nsheet.cell(1,1,'word')#写入表头
nsheet.cell(1,2,'frequency')#写入表头

wordfrequency_order = sorted(wordfrequency.items(),key = lambda x:x[1],reverse = True)#把字典按词频降序排列

for n in range(2,len(wordfrequency_order)+2):#把降序后的词频统计结果写入excel
    nsheet.cell(n,1,wordfrequency_order[n-2][0])
    nsheet.cell(n,2,wordfrequency_order[n-2][1])

file.save(path)
词频统计结果

可以检查下分词有没有问题,我在结巴分词中增加了2个花卉的名称和“花加”这品牌名,如果要求严格的话最好把单个的词都检查一下,不要的可以去除,比如“挺”这个字出现的频率很高,在评论中的搭配是“挺好的”、“挺满意”。


最后生成的词云图,看得出来是朵花的形状吗(〃'▽'〃)

PS:在选择背景图片时,不要选择内存太大的,20K上下,色彩边界清晰的就行,一开始我用了一张500K左右的图,程序运行了好久,我以为是代码出问题了,而且生成的图片上字超级小。

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

推荐阅读更多精彩内容

  • 在中文的文本挖掘中,对海量文本进行准确分词是其中至关重要一步。当前的Python语言下存在多种开源文本分析包,其中...
    拾荒巴菲特阅读 23,276评论 2 16
  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,167评论 1 25
  • 漫天漫地雾弥身, 秋风秋雨愁杀人。 恍然一过夔门间, 人生自是不与蕴。
    支武昂阅读 166评论 0 0
  • 2018年2月9日,我的寒假生活开始了,我们坐飞机回云南陪爷爷奶奶过大年喽。今年是爸爸的本命年,我还有一个 叫...
    邵丽梅阅读 208评论 0 0
  • 找到关键问题,解决关键问题 不要什么都在乎,最后是什么都不在乎
    PerkyJuzi阅读 270评论 0 0