利用2018年政府工作报告的例子向大家展示一下R语言如何进行文本挖掘的~用到的包有jiebaR和wordcloud2。
1、安装并加载jiebaR
install.packages("jiebaR") library(jiebaR)
2、以2018年政府工作报告为文本,进行分词
(1)首先要将2018年政府工作报告以txt的形式下载到R语言的工作路径中
读取文本:
text<-readLines("E:/R-3.4.4/bin/workdirection/report.txt");text #readLines()用来读取不规则文本
(2)分词处理:
seg<-worker();seg<=text
segment(text,seg) #方法2
(3)词性标注(不是必要的步骤)
seg2<-worker("tag") segment(text,seg2)
(4)关键词提取
seg3<-worker(type="keywords",topn=3) seg3<=text
发现报错了:Error in key_ptr(topn, dict, hmm, idf, stop_word, user) : std::bad_alloc
应该是段落太多了,尝试另外一种方法
for(i in text){a<-seg3<=i;print(a)}
4.95979
"代表"
11.7392 11.7392 9.43974 8.55357
"过五" "请予" "提出" "全国政协"
8.40548 7.26211 6.71757 6.4807
"工作" "审议" "委员" "国务院"
6.16263 5.87811
"大会" "意见"
这是一部分的关键词,这样就可以了。
(5)对文本去除一些不必要的
text1<-gsub('[a-zA-Z]','',text) #去除所有英文字母 text2<-gsub("[的|和|了|来|与|到|由|等|从|以|一|为|在|上|各|去|对|侧|多|并|千|万|年|更|向|这是]","",text1)
再进行分词:
seg<-worker()
seg<=text2
(6)建立词频
freq<-freq(segment(text2,seg))
排序!很重要:
index <- order(-freq[,2]) order2<-freq[index, ];order2
这是降序排的,如果升序排最后显示的词云图词频大的词在外边
(7)制作词云图
library(wordcloud2) wordcloud2(order2,size = 1,minRotation = -pi/3, maxRotation = pi/3,rotateRatio = 0.8,fontFamily = "微软雅黑", color = "random-light")
展示一下主旋律嘻嘻嘻
————————————————————————————
第一篇写的很匆忙,很多都没有扩展,下次会继续加油的!!
:)
请发表评论