白话词云图制作

在数据行业深耕细作很多年,反复的从前端 UI 做到中间服务层,最后连数据库存储也没有放过,至今也一直被数据库以及数据库应用架构深深吸引着。

在之前面试很多数据岗位的时候,反复被面试官质疑的问题是,“你到底是喜欢做 ETL, 数据模型,还是数据可视化?”

其实这个问题在我看来一点都没水准。做数据行业的,哪能说自己特别偏科某一项呢,不都是动脑子的事情嘛,那么多精彩的技术,引人入胜的问题,不都全部自己来做一遍,岂不可惜。

别让贫乏无味的工作,限制了自己的想象力,嗯!

写了多年的 CSDN 博客,有了近 30W+ 的访问量。这俩天突然想爬一边,到底哪些文章,哪些技术,大家是感兴趣的?遂有了以下的故事。

Python 作为万金油,渗透到了计算机软件的各个领域,在每个可插入的细缝中都来了这么一脚,尤其在数据分析领域,可以说“人生苦短,快用 Python”. 快速开一个爬虫,爬取简单的网站(CSDN 不简单,嘿嘿,给孟岩留点面子),也就是那么 3-5 个小时就能搞定的事情。将结果存到 MySQL 里面。

简单的筛选出浏览量大于 1K+ 的帖子,对其做词频统计,放入词云工具做分析。文本挖掘,似乎也就词频有些看头,有了词频才能延伸出做关联推荐。

试了知乎上高票的词云工具。 时间是个有效的筛选器,帮我们把很多优秀的产品给提炼出来了。那么多的工具,最终能看的上眼的(基于可视化有效性,上手的易用性判断),花了一小时,能用的有三个:

图悦:

非常非常快捷可以用的词云工具。简单到令你发指,只要你贴入你的文本,就立马展现出属于你的定制词云。如果对水印,精美度没有特别的要求,这款就够用了。在使用的过程中,差强人意的是对中英文混合的文章,会直接略去英文,如下图:

这里写图片描述

BlueMc:

蓝色光标。 这公司提供的词云工具,异常强大(他的老板也很强大,很情怀!)作为个人,我们可以申请免费试用他的产品。这款工具就支持中英混合了。好东西就需要磨,此工具会在生成词云之前,告诉你需要等待,很贴心吧。生成的效果图,默认的色系很温暖,我推断产品经理是位有品的MM。

这里写图片描述
R:

没错,就是分析利器,和 SAS 分庭抗礼的大 R! 此处应该有掌声,也欢迎来赏一把小编我!看完下文,你也可以生成一样的词云图,还是 R 版的,效果完全可以自控。改装跑车与驾驶奔驰的乐趣,有天壤之别。

使用 R 制作词云的步骤:

1 分词

2 词频统计

3 出图

  1. 分词:

有各种分词算法,有公开的包,也有私人的包可以使用,像 JiebaR 的包就很好用,对中文支持程度也高。而有个 qseg 对中文的支持貌似不好,调了很长时间也没搞定。

JieBaR 在 Github 有分支,文档也写的很干净:http://qinwenfeng.com/jiebaR/

install.packages(“jiebaR”)

library(jiebaR)

mySeg=worker()

mySeg$bylines = FALSE

texts = readLines(“G:\SideProjects\all_titles.txt”,encoding=”UTF-8”)

newSegResult = segment(texts,mySeg)

merged =sapply(newSegResult,function(x){ paste(x,collapse =” “) } )

注:先引入包 jiebaR, 再实例化 segment,对文本进行分割与合并

2 词频统计:

使用 freq 将分词合并结果做统计,只有统计好的计算结果,才能被词云可视化程序,识别并展现

freq(merged)

注:freq 就是分词词频的统计

3 出图:

wordcloud2 : https://github.com/lchiffon/wordcloud2

首先要安装 devtools 库

library(devtools)

devtools::install_github(“lchiffon/wordcloud2”)

wordcloud2(freq(merged),size = 1, shape=’star’)

这里写图片描述
相比较 R 更强大,适应性更强,兼容各种语言,还能设定过滤词(像“的”这个字其实通过配置,是可以过滤掉的)


欢迎关注微信公众号【有关SQL】,入群讨论技术

这里写图片描述

猜你喜欢

转载自blog.csdn.net/wujiandao/article/details/80027570