在这篇文章中,我会向大家展示如何利用文本数据在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课数据爱好者俱乐部!