CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

词频

2019年4月5日 474点热度 0人点赞 0条评论

菜单 腾讯云
腾讯云首页

云市场

云+社区
备案控制台
云+社区
专栏问答沙龙快讯团队主页开发者手册云学院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

标签: 暂无
最后更新:2019年4月5日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me