用R爬虫+词频统计+数据可视化 - 阿蛮的杜鹃
用R爬虫+词频统计+数据可视化
这篇文章我们将使用爬虫来进行简单静态页面爬取,然后进行文本分词,再进行可视化分析。主要用到以下三个包:
- rvest 爬取网页
- jiebaR 用于分词,词频统计
- wordcloud2 用于文本分词
如果没有安装以上几个包,使用命令:install.packages(“…”)来安装。
1.首先我们进行网页爬取
我使用的是360浏览器,打开连接: http://www.gov.cn/premier/2017-06/04/content_5199817.htm,右键选择审查元素,找到内容标签:
我们写爬虫代码:
> library(rvest) 载入需要的程辑包:xml2 > library(xml2) > url <- \'http://www.gov.cn/premier/2017-06/04/content_5199817.htm\' > web <- read_html(url,encoding="utf-8") > position <- web %>% html_nodes("div.pages_content") %>% html_text() ##%>%为管道函数,将左边的值赋给右边函数作为第一个参数的值。html_nodes()函数获取某网页内节点信息,html()函数获取标签内文本信息
2.分词,统计词频
我们加载jiebaR包,再进行分词:
> library(jiebaR) > engine_s <- worker(stop_word="stopwords.txt") ##用notepad新建一个stopwords.txt文档存在R文档目录下,编码格式为utf-8(可以用getwd()函数查找当前目录)。初始化分词引擎并加载停用词。 > seg <- segment(position,engine_s) ##分词 > f <- freq(seg)##统计词频 > head(f)##列出前六个
3.可视化展示
我们需要使用到wordcloud2包:
> library(wordcloud2) > f2 <- f2[1:100,] ##如果词比较多的情况下,我们只选取最频繁的前100个进行分析 > wordcloud2(f2,size=0.8,shape=\'star\') ##用五角星绘制
4.自定义个性化展示
我们想创建自己想要的形状,在百度搜索图片:
我们利用上图作为底图绘制:
> path <- "c:/Users/zhilei/Documents/test4.jpg" > wordcloud2(f2,size=0.5,figPath=path)
是不是很酸爽啊!那就动手试试吧小伙伴!