R语言进行词云统计分析
2024-08-26 01:00:39
R语言进行词云统计分析
本文章从爬虫、词频统计、可视化三个方面讲述了R语言的具体应用,欢迎大家共同谈论学习
1、使用 rvest 进行数据的爬取
#如果没有,先安装rvest包
install.packages("rvest")
library(rvest)
url <- "http://www.sohu.com/a/123426877_479559"
#读取数据,规定编码
web <- read_html(url, encoding = "utf-8")
position <- web %>% html_node("article.article") %>% html_text()
- %>%管道函数,将左边的值赋给右边函数作为第一个参数的值
- web存储网页信息的变量。
- html_nodes()函数获取网页里的相应节点
- html_text()函数获取标签内的文本信息
要获取网页中的节点,打开所要爬取网页内容——>按F12——>找到内容所对应的网页节点
2、使用jiebaR进行分词,统计词频
#install.packages("jiebaR")
library(jiebaR)
#初始化分词引擎并加载停用词
#user表示需要组合到一起的单词
#stop_word删除不需要出现的词
engine_s <- worker(user = "E:/R-Test/dictionary.txt", stop_word = "E:/R-Test/stopwords.txt")
#分词处理
seg<-segment(position, engine_s)
#统计词频
f <- freq(seg)
#根据词频降序排列(FALSE升序排列)
f <- f[order(f[2], decreasing = TRUE),]
#显示前30行的数据
head(f, 30)
1)“dictionary.txt”,是指明需要组合到一起的词组,比如说在默认情况下分词的结果可能会将“机器学习”处理成“机器”,“学习”,而我们其实想要的是“机器学习”,所以需要加载此字典表进行指定。注意:此文件的内容是自己指定的,具体内容如下:
机器学习
公众号
互联网
大鳄
大数据
2)“stopwords.txt”,是需要过滤掉的词组,比如“它”、“就是”、“作者”等词对于我们分析没有实际意义,我们就不需要统计他们,具体内容:
是
就是
在
也
你
他
这个
作者
了
我
的
它
3、使用wordcloud2包进行可视化
wordcloud2包的安装就不能像前面的直接使用install.packages("wordcloud2")进行安装了,因为这样的安装的wordcloud2就无法绘制图片和汉字的词云。他需要先安装“devtools”包,具体方法如下:
#安装方法1:
install.packages('devtools')
library('devtools')
install_github("lchiffon/wordcloud2")
library(wordcloud2)
#安装方法2(在RStudio中执行):
if(!require(devtools)) install.packages("devtools")
devtools::install_github('lchiffon/wordcloud2')
然后就使用词云进行绘图了,这里 shape 的参数有:默认为圆形(circle),cardioid(心形),star(星形),diamond(钻石形),triangle-forward(三角形),triangle(三角形),这两个三角形就是倾斜方向不同而已,pentagon(五边形)。
#为了显示效果,只提取前150个字
f2 <- f[1:150,]
#形状设置为一颗五角星
wordcloud2(f2, size = 0.8, shape = "star"
wordcloud2(f2, size =0.745, shape = "cardioid")
wordcloud2(f2, size =0.9, shape = "diamond")
加载一张图片,让显示图片的样式
#加载一张图片
path <- "E:/R-Test/245937.jpg"
#如果图形不像,调整size的值
wordcloud2(f, size = 0.45, figPath = path)
letterCloud用来显示指定的字母或者汉字,Word参数用于设置绘制词云形状为“”这个字
letterCloud(f2, word = "LOVE", size = 0.7)
【注意】可能我们已经发现,前面图中出现的高频词汇“机器学习”、“算法”等随着我们画出来的图丢失了。那是应该我们后边描绘的图的边太细,而“机器学习”的词频又特别高,所以就显示不出来。因此我们在选择绘图的时候不能为了美观而忽略了高频词
最新文章
- Hangfire项目实践分享
- javase基础复习攻略《三》
- loadrunner通过字符串左右边界切割字符串
- android recover 系统代码分析 -- 选择进入
- linux_vim_快捷键
- 数据结构实习-迷宫(基于Qt实现)
- python+appium+unittest自动化测试框架环境搭建
- 开发一个项目之npm
- 我的第一个python web开发框架(23)——代码版本控制管理与接口文档
- 使用vue+elementUI+springboot创建基础后台增删改查的管理页面--(1)
- websockect外网无法访问问题
- 求解100以内的所有素数(问题来自PythonTip)
- Android——Broadcast Receive 相关知识总结贴
- 【ML】Predict and Constrain: Modeling Cardinality in Deep Structured Prediction -预测和约束:在深度结构化预测中建模基数
- 【PyQt5-Qt Designer】QMessageBox 弹出框总结
- python-面向对象-04_面向对象封装案例
- Excel和Word 简易工具类,JEasyPoi 2.1.7 版本发布
- 编写一个c++工程
- 【arm学习】我的第一个裸板程序
- [Python]将Excel文件中的数据导入MySQL
热门文章
- devexpress chart 散点图加载并分组显示(可以自定义颜色 同组中的点颜色相同)
- 错误: 安装必备组件失败: 安装必备组件失败: SqlInstanceRtc 有关详细信息
- Struts2学习-json
- ssh配置调试的必杀技
- How to update BOL entity property value via ABAP code
- POJ-1845 Sumdiv---因子和(快速幂+快速加法+因子和公式)
- java中的泛型2--注意的一些问题和面试题
- JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
- mongodb在windows平台安装和启动
- Perl中的字符串操作函数