【译文】用R创建云词

在这篇文章中,我会向大家展示如何利用文本数据在R中建立云词。我们会使用一个包含20万个问题的数据集,而这数据集可以在这里下载(感谢reddit网站的用户trexmatt给我们提供的数据集)。

我们会使用这三个包:tm, SnowballC 和 wordcloud。

首先,我们要加载所需的包和读取数据。

library(tm)

library(SnowballC)

library(wordcloud)

jeopQ <- read.csv(‘JEOPARDY_CSV.csv’, stringsAsFactors = FALSE)

那些你需要问的问题都可以在问题栏上找到答案。

现在我们会在文本数据方面进行一系列的操作依次简化这种过程。

首先,我们需要创建一个语料库。

jeopCorpus <- Corpus(VectorSource(jeopQ$Question))

接下来,我们把语料库内容转化为小写。

jeopCorpus <- tm_map(jeopCorpus, content_transformer(tolower))

然后,我们会去除所有的标点符号和停用词。停用词通常都会应用在英语语言中,如I,me,my等等。你可以通过使用stopwords(‘english’)这条语句来查看整个停用词列表。

jeopCorpus <- tm_map(jeopCorpus, removePunctuation)jeopCorpus <- tm_map(jeopCorpus, PlainTextDocument)

jeopCorpus <- tm_map(jeopCorpus, removeWords, stopwords(‘english’))

再下一步,我们会提取词干。这意味着所有的词都会转化成它们的原形(如learning -> learn, walked -> walk等等)。这可以确保任何形式的单词都可以转化为相同的形式只会在云词中出现一次。

jeopCorpus <- tm_map(jeopCorpus, stemDocument)

现在,我们来描绘一下云词。

wordcloud(jeopCorpus, max.words = 100, random.order = FALSE)

如果你想去除”this”和”that”这样的词汇,你可以在removeWords函数中写上这些词语,操作如下:

jeopCorpus <- tm_map(jeopCorpus, removeWords, c(‘the’, ‘this’, stopwords(‘english’)))

这里有以下几种方式可对它进行自定义操作:

比例尺(scale):这可以用于展现一定范围内文字的大小。

max.words and min.freq:这些参数可用于限制被标绘的字数。Max.words可以标出一个特定的词汇数以及丢弃最不常用的词,因此,min.freq会丢弃所有使用频率低于某一个特别的数值的词语。

随机顺序(random.order):通过把它设定为FALSE,我们可以使得所有出现频率最高的词语首先被标记。如果我们不这样设定,它会以一个随即顺序方式标记所有词语,而且出现频率最高的词也不必出现在中心位置。

Rot.per:这个值可以决定多少个部分的词语会纵向出现。

色彩(colors):默认值是黑色。如果你想基于不同的频率展现不同的颜色,你可以特殊设定一个向量的颜色,或者使用一个已经定义好的主色板。你可以在这里找到其中的清单。

这篇文章到这里就可以结束了。我希望你能享受使用它的过程。一如既往的,如果你有什么问题,请你大胆的留言或者在我的twitter上问问题。

记住,我在edX上的麻省理工学院《The Analytics Edge》课程上学会这种方法的。这是一个伟大的课程。如果你对数据科学感兴趣,我高度推荐你去学习这门课程。

品言译,陆勤审,PPV课原创翻译文章,禁止转载,转载需获得PPV课和作者的授权

原文链接:http://datascienceplus.com/building-wordclouds-in-r/

投稿须知

①稿件可以是原创文章、原创翻译文章等等,优秀的原创文章可以申请PPV课博客专栏,获得相应稿酬。

②凡是投稿的学员均可获得PPV课社区积分奖励3000积分,用于下载其他资料。

③欢迎大家积极投稿,投稿请联系PPV课编辑 lily QQ:2941275750

1、回复“数据分析师”查看数据分析师系列文章

2、回复“案例”查看大数据案例系列文章

3、回复“征信”查看相关征信的系列文章

4、回复“可视化”查看可视化专题系列文章

5、回复“SPPS”查看SPSS系列文章

6、回复“答案”查看hadoop面试题题目及答案

7、回复“爱情”查看大数据与爱情的故事

8、回复“笑话”查看大数据系列笑话

9、回复“大数据1、大数据2、大数据3、大数据4”查看大数据历史机遇连载

PPV课大数据ID: ppvke123 (长按可复制)

大数据人才的摇篮!专注大数据行业人才的培养。每日一课,大数据(EXCEL、SAS、SPSS、Hadoop、CDA)视频课程。大数据资讯,每日分享!数据咖—PPV课数据爱好者俱乐部!

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2015-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云成本管理

云成本管理方法论(一)——云成本管理模型

由于零固定投资和具有弹性等显著优势,云计算已被绝大多数的企业所采用。但与此同时,由于尚未形成有效的管理实践,云资源的过度使用和浪费已成为云用户关注的最主要问题。

48111
来自专栏人工智能LeadAI

Python 开发者 2017 应该关注的 7 个类库

Django 依然是 Python 开发者值得信赖的库。然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注。在这篇博文中,我向大家揭示 ...

2191
来自专栏跨界架构师

不知道是不是最通俗易懂的《数据一致性》剖析了

  本文是本系列的第一篇。从普遍认为的分布式系统中最最最重要的数据一致性开始。内容适合人群>=0年技术相关经验。

1064
来自专栏织云平台团队的专栏

腾讯SNG多维监控的进阶之路

当我们有了能可靠地对大数据进行采集、处理和存储的能力后,我们可以将这些能力用于哪些实际业务场景,并让数据产生价值呢?

6.6K5
来自专栏带你撸出一手好代码

会当凌绝顶,一览众山小,宇宙第一的visual studio诞生20年回顾

IDE华山论剑,天下第一非微软家的visual studio莫属。 visual studio以极佳的用户体验和高效的协助工程师工作而著称, 深得无数开发者喜爱...

29710
来自专栏腾讯技术工程官方号的专栏

鹅厂上万节点大规模集群的跨城自动迁移(上)

当上百P的数据,上万个节点的集群进行跨城迁移时,如何在有限的带宽下实现自动、高效、稳定地迁移?本文将跟你一一揭晓!

1.1K2
来自专栏Golang语言社区

用医生的思考方式调试你的代码

“现在的编程工作就像是对你需要解决处理的部分做科学研究。” ——Gerald Sussman 设计和维护好的软件就像是一个抵制复杂度的永无止境的奋斗过程。任何足...

3536
来自专栏云计算D1net

公有云进入价格战

2014年3月25日,Google宣布了其云服务的一系列新特性,并大幅降价。第二天,Amazon Web Services也宣布新特性并匹配降价。而3月31...

3175
来自专栏敏捷开发&项目管理

敏捷项目需求拆解&发现用户故事

需求文档和敏捷中的Epic,User Story, Task之间是什么关系以及如何将需求文档转换成敏捷方式的描述,指导开发人员。 一直是很多公司团队比较困扰的问...

5486
来自专栏深度学习自然语言处理

一文搞懂如何高效学习与进阶NLP or CV!

最近AllenNLP在EMNLP2018上做了一个主题分享,名为“写给NLP研究者的编程指南”(Writing Code for NLP Research)。

2494

扫码关注云+社区

领取腾讯云代金券