R语言进行词云统计分析

本文章从爬虫、词频统计、可视化三个方面讲述了R语言的具体应用,欢迎大家共同谈论学习

1、使用 rvest 进行数据的爬取

  1. #如果没有,先安装rvest包
  2. install.packages("rvest")
  3. library(rvest)
  4. url <- "http://www.sohu.com/a/123426877_479559"
  5. #读取数据,规定编码
  6. web <- read_html(url, encoding = "utf-8")
  7. position <- web %>% html_node("article.article") %>% html_text()
  • %>%管道函数,将左边的值赋给右边函数作为第一个参数的值
  • web存储网页信息的变量。
  • html_nodes()函数获取网页里的相应节点
  • html_text()函数获取标签内的文本信息

要获取网页中的节点,打开所要爬取网页内容——>按F12——>找到内容所对应的网页节点

2、使用jiebaR进行分词,统计词频

  1. #install.packages("jiebaR")
  2. library(jiebaR)
  3. #初始化分词引擎并加载停用词
  4. #user表示需要组合到一起的单词
  5. #stop_word删除不需要出现的词
  6. engine_s <- worker(user = "E:/R-Test/dictionary.txt", stop_word = "E:/R-Test/stopwords.txt")
  7. #分词处理
  8. seg<-segment(position, engine_s)
  9. #统计词频
  10. f <- freq(seg)
  11. #根据词频降序排列(FALSE升序排列)
  12. f <- f[order(f[2], decreasing = TRUE),]
  13. #显示前30行的数据
  14. head(f, 30)

1)“dictionary.txt”,是指明需要组合到一起的词组,比如说在默认情况下分词的结果可能会将“机器学习”处理成“机器”,“学习”,而我们其实想要的是“机器学习”,所以需要加载此字典表进行指定。注意:此文件的内容是自己指定的,具体内容如下:

  1. 机器学习
  2. 公众号
  3. 互联网
  4. 大鳄
  5. 大数据

2)“stopwords.txt”,是需要过滤掉的词组,比如“它”、“就是”、“作者”等词对于我们分析没有实际意义,我们就不需要统计他们,具体内容:


  1. 就是




  2. 这个
  3. 作者




3、使用wordcloud2包进行可视化

wordcloud2包的安装就不能像前面的直接使用install.packages("wordcloud2")进行安装了,因为这样的安装的wordcloud2就无法绘制图片和汉字的词云。他需要先安装“devtools”包,具体方法如下:

  1. #安装方法1:
  2. install.packages('devtools')
  3. library('devtools')
  4. install_github("lchiffon/wordcloud2")
  5. library(wordcloud2)
  6. #安装方法2(在RStudio中执行):
  7. if(!require(devtools)) install.packages("devtools")
  8. devtools::install_github('lchiffon/wordcloud2')

然后就使用词云进行绘图了,这里 shape 的参数有:默认为圆形(circle),cardioid(心形),star(星形),diamond(钻石形),triangle-forward(三角形),triangle(三角形),这两个三角形就是倾斜方向不同而已,pentagon(五边形)。

  1. #为了显示效果,只提取前150个字
  2. f2 <- f[1:150,]
  3. #形状设置为一颗五角星
  4. wordcloud2(f2, size = 0.8, shape = "star"
  5. wordcloud2(f2, size =0.745, shape = "cardioid")
  6. wordcloud2(f2, size =0.9, shape = "diamond")

加载一张图片,让显示图片的样式

  1. #加载一张图片
  2. path <- "E:/R-Test/245937.jpg"
  3. #如果图形不像,调整size的值
  4. wordcloud2(f, size = 0.45, figPath = path)

letterCloud用来显示指定的字母或者汉字,Word参数用于设置绘制词云形状为“”这个字

  1. letterCloud(f2, word = "LOVE", size = 0.7)

【注意】可能我们已经发现,前面图中出现的高频词汇“机器学习”、“算法”等随着我们画出来的图丢失了。那是应该我们后边描绘的图的边太细,而“机器学习”的词频又特别高,所以就显示不出来。因此我们在选择绘图的时候不能为了美观而忽略了高频词

R语言进行词云统计分析的更多相关文章

  1. R语言之词云:wordcloud&wordcloud2安装及参数说明

    一.wordcloud安装说明 install.packages("wordcloud"); 二.wordcloud2安装说明 install.packages("dev ...

  2. R语言︱文本挖掘——词云wordcloud2包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者看到微信公众号探数寻理中提到郎大为Chif ...

  3. R语言文本挖掘+词云显示(jiebaR包+wordcloud2包)

    利用2018年政府工作报告的例子向大家展示一下R语言如何进行文本挖掘的~用到的包有jiebaR和wordcloud2. 1.安装并加载jiebaR install.packages("jie ...

  4. NLP实现文本分词+在线词云实现工具

    实现文本分词+在线词云实现工具 词云是NLP中比较简单而且效果较好的一种表达方式,说到可视化,R语言当仍不让,可见R语言︱文本挖掘——词云wordcloud2包 当然用代码写词云还是比较费劲的,网上也 ...

  5. R+tmcn笔记︱tmcn包的基本内容以及李舰老师R语言大会展示内容摘录

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- tmcn包目前托管在在R-forge 上开发和 ...

  6. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...

  7. 中文分词实践(基于R语言)

    背景:分析用户在世界杯期间讨论最多的话题. 思路:把用户关于世界杯的帖子拉下来.然后做中文分词+词频统计,最后将统计结果简单做个标签云.效果例如以下: 兴许:中文分词是中文信息处理的基础.分词之后.事 ...

  8. 使用R语言将微信记录制作成词云(简洁)--情人节奥义

    一.导出并读入微信聊天记录     参照百度的方法,使用同步助手.安装同步助手--连接手机(安卓苹果均可)--点击"其他功能"--点击微信图标即可进入聊天记录导出界面(非常简单). ...

  9. R系列:分词、去停用词、画词云(词云形状可自定义)

    附注:不要问我为什么写这么快,是16年写的. R的优点:免费.界面友好(个人认为没有matlab友好,matlab在我心中就是统计软件中极简主义的代表).小(压缩包就几十M,MATLAB.R2009b ...

随机推荐

  1. SQL Server ->> Database Promgramming Object Security Control(数据库编程对象安全控制)

    对于SQL Server内编程对象的安全控制是今天我在思考的问题.在MSDN上找到了几篇有用的文章. 首先微软推荐了三种做法: 1)第一种做法是在SQL Server中对一个应用程序对应创建应用程序角 ...

  2. (转)从Python的0.1输出0.1000000000000001说浮点数的二进制

    原文地址:http://blog.csdn.net/u012843100/article/details/60885763 今天在学习Python核心编程的时候,十进制浮点数那段看到一个有趣的事情. ...

  3. Hadoop学习---CentOS中hadoop伪分布式集群安装

    注意:此次搭建是在ssh无密码配置.jdk环境已经配置好的情况下进行的 可以参考: Hadoop完全分布式安装教程 CentOS环境下搭建hadoop伪分布式集群 1.更改主机名 执行命令:vi  / ...

  4. lnmp环境下nginx配置‘负载均衡’

    NGINX负载均衡分发请求的几种方式: 1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.2.weight 指定轮询几率,weight和访问比率成正比 ...

  5. (转)C++ 自由存储区是否等价于堆?

      “free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全局/静态存储区.常量存储区”. 如果我接着问你 ...

  6. Struts2注解开发

    Hibernate和spring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧.Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action ...

  7. php 处理微信账单

    最近要做支付对账,即检查第三方支付与数据库中账单是否一一对应,涉及到微信对账单的处理,微信账单接口返回为一个字符串类似如下结果: 交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单 ...

  8. Codeforces Round #527 (Div. 3) D1. Great Vova Wall (Version 1) 【思维】

    传送门:http://codeforces.com/contest/1092/problem/D1 D1. Great Vova Wall (Version 1) time limit per tes ...

  9. Linux学习总结(二) 网络配置-NAT方式静态IP配置篇

    一:DHCP 服务验证 1: 之前我们在里面已经装好了centos,当时我们选择的组网方式为NAT方式,那么我们怎么样如何快速实现虚拟机系统访问外网呢?能不能直接上网呢,来我们试一下ping baid ...

  10. 如何查看Windows下端口占用情况

    开始---->运行---->cmd,或者是window+R组合键,调出命令窗口  输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是49157,首 ...