
词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息。
制作词云图的网站有很多,简单方便,适合小批量操作。
BI软件如Tableau、PowerBI也可以做,当然相比较web网站复杂一点。
在编程方面,JavaScript是制作词云图的第一选择,像D3、echarts都非常优秀。
python也有不少可视化库能制作词云图,这次我们尝试使用pyecharts。
先上效果图:
pyecharts是基于echarts的python库,能够绘制多种交互式图表。
这次使用的pyecharts版本是1.7.1,python版本是3.6。
pyecharts提供了多种个性化配置方案,可以按需选择。
和其他可视化库不一样,pyecharts支持链式调用。
也就是说添加图表元素、修改图表配置,只需要简单的调用组件即可。
下面来个示例:
生成词云图:
为了更好地展示pyecharts的词云可视化效果,我找了淘宝商品评论数据集,更贴近应用场景。
代码的流程主要是:数据加载、分词处理、词频统计、词云展示。
数据集共有10 个商品类别(书籍、平板、手机、水果、洗发水、热水器、蒙牛、衣服、计算机、酒店)。
共 6 万多条评论数据,正、负向评论各约 3 万条。
我们要用的就是字段review评论数据,代码分模块实现不同功能。
首先导入相关库:
接着加载数据,提取文本:
因为评论数据是一段段完整的话,所以要进行词云展示的话肯定得先分词。
这里用的分词库是jieba,而且添加了停用词库,目的是去除符号、副词等无意义词汇。
分完词后,需要对词进行频数统计,这里用到collection模块的Counter方法。
然后筛选出词频数排名前1000的词汇,你也可以自行调整。
最后一步使用wordcloud模块对整理好的数据进行可视化展示。
上面代码里的背景图可以自己选择,最好是大轮廓的图,因为细节展示不出来。
几个处理函数都写好了,下面来执行结果:
提醒一下,main函数的两个参数,分别是商品类型和评价类型,你可以自定义组合,然后就会生成该组合的词云图。
用购物车背景图展示手机+好评组合的词云图:
用淘宝背景图展示计算机+好评组合的背景图:
用浴缸背景图展示酒店+差评组合的背景图:
用书本背景图展示书籍+好评组合的背景图:
这里的展示仅仅为了教大家如何去使用pyecharts制作词云,真正的商业用途上需要更加清晰简洁的表达,在设计层面也要更多的考量。
Ps:六年大数据从业经验。有任何数据分析、Python编程、求职问题欢迎来提问哦!
