• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【好文翻译】用R创建云词

      【好文翻译】用R创建云词

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2015年9月6日
      测试开头

      在这篇文章中,我会向大家展示如何利用文本数据在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)

      【好文翻译】用R创建云词

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

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

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

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

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

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

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

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

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

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

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


      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【陆勤思考】思考分享
      2015年9月6日

      下一篇文章

      【R每日一贴】subset()函数使用??
      2015年9月8日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?