记录python数据可视化库wordcloud库以及中文分词库jieba的使用及样板
简介
wordcloud库,是python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本,如下面这个示例:
jieba 是一个python实现的中文分词组件,在中文分词界非常出名,支持简、繁体中文,高级用户还可以加入自定义词典以提高分词的准确率。如果是英文的话就无需使用这个库。
两者间的关系简单说:
jieba库针对大段中文进行分词,生成各类词组,并做一些统计分析;
wordcloud将根据这些词组出现的频率进行词组的编排和生成文件,越频繁出现的,展示的词号越大;
实例
准备工作
先来看一个简单的实例,这里事先爬取了京东商品编号为100003951612的买家评论,一共爬了100页越400条的评论信息。
保存成jd_comment.txt文件。
jieba库基本
基本的使用只用cut_text = " ".join(jieba.lcut(contents))
这一句就足够了。
wordcloud只能使用文本,词与词之间通过空格来识别。jieba.lcut(contents)
会生成一个词组的list,故需要用" ".join
将分好的词连接起来。
import jieba
f=open('jd_comment.txt','r') #打开评论文件
contents=f.read() #读取内容
cut_text = " ".join(jieba.lcut(contents)) #进行分词,保存在cut_text 变量中。
wordcloud库基本
将上面的cut_text
导入wordcloud,定义好生成对象的尺寸、颜色等参数,就可以生成图片了。
from wordcloud import WordCloud,ImageColorGenerator
wc = WordCloud(font_path='/usr/share/fonts/winfonts/simfang.ttf',
background_color='White',
max_words=1000,
width=1000,
height=500,
scale=1,
)
#font_path:设置字体,max_words:出现的最多词数量
wc.generate(cut_text)
wc.to_file("jd_comment.jpg")
效果如下图,买家对产品的评价通过这个图基本能了解清楚了:
完整的样板
from wordcloud import WordCloud,ImageColorGenerator
import jieba
f=open('/home/yhjbox/Desktop/jd_comments-7.28/example1/jd_comment.txt','r')
contents=f.read()
cut_text = " ".join(jieba.lcut(contents))
wc = WordCloud(font_path='/usr/share/fonts/winfonts/simfang.ttf',
background_color='White',
max_words=1000,
width=1000,
height=500,
scale=1,
)
#font_path:设置字体,max_words:出现的最多词数量,mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
wc.generate(cut_text)
wc.to_file("jd_comment.jpg")