利用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")

展示一下主旋律嘻嘻嘻

————————————————————————————

第一篇写的很匆忙,很多都没有扩展,下次会继续加油的!!

:)

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!