菜单 腾讯云
腾讯云首页
云市场
云+社区
备案控制台
云+社区
专栏问答沙龙快讯团队主页开发者手册云学院TVP
找文章 / 找答案 / 找技术大牛
写文章提问登录注册
文本分析小练手——词频云图
文章来源:企鹅号 - 波斯猫后院狂想曲
这样的词频云图大家是见过的,并且网上也有很多在线生成云图的网站。然而我头比较铁,坚信R这样强大的统计软件一定能实现这样的功能,于是百度一下,做了一点微小的工作。
最开始找到的是jieba程序包,专门做分词以及词频统计,R和python都能调用它。不过要画出图的话,还是要安装wordcloud2程序包。wordcloud2()这个函数还是很强大的,可以设置云图的字体、配色、字体旋转角度和云朵的形状。它甚至能以你自己找的一个图案作为云朵形状。
在网上找到的教程,用的素材是19报告,于是我就有了一个大胆的想法。。。
先放镇楼效果图:
我、我很严肃的!。。。呱~
这是2000年的时候,他的15报告。
你民白我的意思吧?
1.0版本如下:
怕写的东西被吞只好打码某些字眼了哈。。。
好~我们开始~
准备工作:
R-3.4.3
R中需安装程序包:
一些保存在“我的文档”里的txt文件素材
连网的电脑
手指(emmm其实脑子甚至也不需要用太多也可以的!)
绘制流程:
Step 1.scan()函数导入txt文件。
f
使用scan函数可以读取外部文件,功能强大:
>scan函数可以指定输出变量的数据类型。
>输出对象的类型更灵活,可以是数据框、向量、矩阵、列表。
>对于很大的数据文件,读取速度会更快。因为它可以事先设定数据类型。
比较基础的语句是scan(file=' ',what=' ',sep=' ',encoding=' ')
>>file:一个字符串,通过它找到数据文件
>>what:在读取后,用于说明各列数据的类型。可使用logical、integer、 numeric、complex、character、 raw 和 list等。
>>sep:分隔符,默认为空格
>>encoding:编码,为防止中文的乱码错误,可以设置encoding="UTF-8"
不过我发现用UTF-8好像不行,所以就改用GBK了。
UTF8编码格式很强大,支持所有国家的语言,导致它占用的空间大小要比GBK大,打开文件速度比较慢。GBK编码格式功能少,仅限于中文字符,所占用的空间小,打开文件速度快。
来看看赋值后的f是什么~(f代表file,感觉比较好记)
Step 2.结巴分词处理。
library('jiebaR')
seg
变量seg中保存了文章所有的词语:
seg1]
鉴于使用删除停止词的方法有些困难。。。可以选择保留字数大于1的词语。
m1
用数据框函数将这些词汇排成一列方便处理:
一共有1122个词语等待处理。
Step 3.R与SQL的交易~~
首先安装并载入sqldf程序包。
m2
这里其实用到了SQL的SELECT、COUNT(1)、FROM和GROUP BY语句。
emmm......sqldf是个很好的R程序包但是使用者要懂一点SQL...害怕.jpg
>Group By语句可以理解为“根据(by)一定的规则进行分组(Group)”。作用是通过 一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
>COUNT(1)语句是计数用的。
>SELECT 能从表或视图中检索数据。
我们现在把报告中所有词汇(有重复)存到seg中,m1是处理成一列的有重复的词汇表。我们想要计算每个词汇的出现频数,频数数列记为freg。
最后词汇和出现频数一一对应形成新的数据集m2。
Step 4.wordcloud2——见证奇迹的时刻!
library(wordcloud2)
wordcloud2(m2)
可以画成各种想要的形状,比如又红又专的五角星:
wordcloud2(m2, size = 1, fontFamily = "微软雅黑", color = "random-light", backgroundColor = "red",shape = 'star')
你问我那个眼镜的图怎么画吗
首先我在wiki里搜索“Moha culture”,找到了一张很棒的图片:
naïve!
要绘图的话最好选择黑色图案白色底的图片,这张真是太合适了。
裁剪一下:
输入:
wordcloud2(m2, figPath='haha2.jpg')
就可以得到这个睿智的黑框眼镜和自信的大鼻孔啦~
另外有一种用jiebaR的worker()函数统计词频的方法,可以输出词频最高的几个词:
cutter=worker()#分词引擎
content="文章内容"
1.....9....big报告关键词
1....7....bigHJT报告关键词
嗯看起来好像越发强硬了。。。
发表于: 2017-12-14
原文链接:http://kuaibao.qq.com/s/20171214G00YRB00?refer=cp_1026
腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
0
分享
扫描二维码
上一篇:摩拜单车王晓峰出席《财富》全球论坛 中国创新备受关注
下一篇:也谈用机器学习索引替代B-Tree
相关快讯
二维码了解一下?
2018-06-25
搜索引擎工作原理简单模拟分享!
2018-06-22
Hive-基础
2019-04-05
为什么 Mac 适合编程?
2019-04-05
面向对象编程已死,OOP 永存!
2019-04-05
No.1答案与解析
2019-04-05
社区
专栏文章
互动问答
技术沙龙
技术快讯
团队主页
开发者手册
活动
原创分享计划
自媒体分享计划
资源
云学院
技术周刊
社区标签
开发者实验室
关于
社区规范
免责声明
联系我们
扫码关注云+社区
Copyright © 2013-2019
Tencent Cloud. All Rights Reserved.
腾讯云 版权所有 京ICP备11018762号
京公网安备 11010802020287
扫描二维码
0daybank
文章评论