R语言文本挖掘1——词云制作,基于Rwordseg包
2015-05-18 00:20
330 查看
折腾好Rwordseg在R语言3.2版本的安装后,马上就来尝鲜了,在参考牛人的意见后,成果如下图,马上有实战的感觉了:
首先讲一下词云的步骤:
1.读取文档,这个文档可以是网络数据,也可以是文本文档,对于网络数据,有很多爬虫方法,如RCurl包,Rweibo包等等等等,还可以自己去申请一些开放数据库的API,在此不赘述。文本文档读取也简单,直接用readLines函数读取。
2.识别前的准备,调入词典,开启人名识别,这步很重要,因为不同的文本有不同的关键词特征,没有对应的词典,就容易把关键词再次分词导致无法提取特征,Rwordseg支持搜狗的scel字典,很nice。不过这步跟第一步并没有优先性上的差异,个人喜好把这步放这里而已。
3.进行分词,一般都会调用nosymbol = T的参数
4.制作词语过滤,比如常见的停止词,还有一些自定义的规则,这个就看大家自己选择了。
5.过滤了停止词后,对分词结果进行词频统计并排序
6.将排序结果分别提取为词名和频率
7.绘制词云
具体代码如下,数据来源是随便找的一篇关于如何当猎头的百度知道,保存为txt:
看起来简单的词云,其实做起来一点不简单,数据分析还要对业务了解,上边的词云还有很大改进的地方,不过一步步来,等我慢慢掌握了分析方法再继续改进咯。
首先讲一下词云的步骤:
1.读取文档,这个文档可以是网络数据,也可以是文本文档,对于网络数据,有很多爬虫方法,如RCurl包,Rweibo包等等等等,还可以自己去申请一些开放数据库的API,在此不赘述。文本文档读取也简单,直接用readLines函数读取。
2.识别前的准备,调入词典,开启人名识别,这步很重要,因为不同的文本有不同的关键词特征,没有对应的词典,就容易把关键词再次分词导致无法提取特征,Rwordseg支持搜狗的scel字典,很nice。不过这步跟第一步并没有优先性上的差异,个人喜好把这步放这里而已。
3.进行分词,一般都会调用nosymbol = T的参数
4.制作词语过滤,比如常见的停止词,还有一些自定义的规则,这个就看大家自己选择了。
5.过滤了停止词后,对分词结果进行词频统计并排序
6.将排序结果分别提取为词名和频率
7.绘制词云
具体代码如下,数据来源是随便找的一篇关于如何当猎头的百度知道,保存为txt:
library(Rwordseg) library(wordcloud) //读取文件 txt <- readLines("path") //分词前准备 installDict("../dict/default.dic", "default") //默认的包 installDict("path", "dictname") //你自己下载或制作的字典 segment.options(isNameRecognition = TRUE) //分词 txtseg <- segmentCN(txt, nosymbol = T) //制作filter并过滤,这里可以加入自己制作的停止词词典 filter <- function(txt) { txt <- gsub("[a-z]|\\.", "", txt) txt <- gsub("\\d+号", "", txt) txt <- gsub("\\d+", "", txt) txt <- gsub("\\/", "", txt) txt <- gsub("单元|对面|附近|路口|旁边|大道|方向|先生|女士|回复|需要|处理|投诉|资料|保密", "", words) txt[nchar(txt) >= 2] } txtsf <- lapply(txtseg, filter) //词频统计和排序 txtwc <- unlist(lapply(txtsf, length)) //词频计数 txtws <- sort(table(txtwc),decreasing = T) //排序 //提取词名和词频 txtws.name <- names(txtws) txtws.freq <- txtws //绘制词云 windows() par(mar = c(0, 0, 3, 0), bg = "white") wordcloud(sb.tel.w2.name, sb.tel.w2.freq, scale = c(5, 1), min.freq = 1, max.words = 100, colors = c("#BEC0C2", "#049FF1", "#DA891E", "#3F813F", "#712704", "#A2B700"))
看起来简单的词云,其实做起来一点不简单,数据分析还要对业务了解,上边的词云还有很大改进的地方,不过一步步来,等我慢慢掌握了分析方法再继续改进咯。
相关文章推荐
- R语言做文本挖掘:基于网购评论提炼电热水器的差异化卖点
- 基于R语言的文本挖掘技术
- R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
- 【转】互联网时代的社会语言学:基于SNS的文本数据挖掘
- 全文检索、数据挖掘、推荐引擎系列6---基于KMean的文本自动算法
- R语言之文本挖掘
- 【4】构建基于scikit-learn的文本挖掘学习系统
- R语言做文本挖掘 Part5情感分析
- 全文检索、数据挖掘、推荐引擎系列6---基于KMean的文本自动算法
- R语言做文本挖掘 Part1安装依赖包
- R语言做文本挖掘 Part2分词处理
- 互联网时代的社会语言学:基于SNS的文本数据挖掘
- R语言文本挖掘(1):分词(Rwordseg)
- 全文检索、数据挖掘、推荐引擎系列6---基于KMean的文本自动算法
- 大数据环境下基于R语言的数据挖掘平台 之 环境配置
- R语言做文本挖掘 Part3文本聚类
- 数据挖掘---R语言爬虫(基于hardly的rvest包)
- R语言做文本挖掘 Part1安装依赖包
- R语言做文本挖掘 Part4文本分类
- 基于Python爬虫的大众点评商家评论的文本挖掘