查看原文
其他

我把我用R写的第一个爬虫就献给了国家

2017-06-04 王亨 R语言中文社区

作者:王亨 ,R语言中文社区专栏作者,跟着菜鸟一起一步步学习R语言,争做R语言高手。

个人公众号:跟着菜鸟一起学R语言(微信ID:learn_R)


作为我国社会主义事业的建设者和接班人,不仅要继承前辈开创的伟大事业,更要推进中国特色社会主义的航船继续破浪前进。

这不,为了响应习大大开展的“两学一做”学习教育,我不仅认真学习共产党党章党规,学习贯彻习近平总书记系列重要讲话精神,争做一名合格党员。今天我就要用自己的技术来学习今年的《政府工作报告》。

今天我们要用爬虫来爬取这篇文章,然后进行文本分词,再到文本可视化。我们需要使用下面这三个包:

(1)rvest 爬取文章内容

(2)jiebaR 用于分词,统计词频

(3)wordcloud2 用于对文本进行可视化

1.使用rvest包爬取文章

首先,我需要对网页标签进行查看分析,下面这张图就是我用谷歌浏览器对网页标签进行分析的过程。

 不知道大家有没有注意到下面这个表签。我们需要爬取的文字就在这个标签里面。

现在我们就开始写爬取代码:

library(rvest)
url<-'http://www.gov.cn/premier/2017-03/16/content_5177940.htm'

web<-read_html(url,encoding="utf-8")
#读取数据,规定编码
position<-web %>% html_nodes("div.pages_content") %>% html_text()

%>%  为管道函数,将左边的值赋给右边函数作为第一个参数的值。

web  就是存储网页信息的变量。

html_nodes() 函数获取网页里的相应节点。

html_text() 函数获取标签内的文本信息。

2.使用jiebaR进行分词,统计词频

library(jiebaR)
engine_s<-worker(stop_word = "stopwords.txt")#初始化分词引擎并加载停用词。

seg<-segment(position,engine_s)#分词
f<-freq(seg) #统计词频
f<-f[order(f[2],decreasing=TRUE),]
#根据词频降序排列

3.使用wordcloud2包进行可视化。

使用jiebaR包统计完词频之后,就很容易使用wordcloud2包进行可视化。

library(wordcloud2)#加载包
f2<-f2[1:150,]     #总共有2000多个词,为了显示效果,我只提取前150个字
wordcloud2(f2, size = 0.8 ,shape='star') #形状设置为一颗五角星



作为一名爱国爱党人事,我们都知道我们的国旗是五星红旗,所以就用这颗星来代表我的爱国之心吧。那也许就有人要说,你也体现以下你的爱党之心吧。行,没问题,接下来我就来体现一下我的爱党之心。我要把这个五角星形状改成一张党徽形状。

只怪自己PS技术太差,所以在网上找了下面这张图,找这张图的目的是要将绘制词云图形设置为一个党徽。



path<-"D://dang.png"#图片路径
wordcloud2(f2,size = 1.3,figPath =path)
#绘图,如果词云形状和图片形状不太像时,可以调节size值

怎么样,是不是和党徽形状基本一样。不过细心的小伙伴估计会发现“发展”这个词没了,它可是词频最高的一个词啊。我个人认为原因是我们这个党徽图片中各个边太细,“发展”这个词的词频有太高于其他词频才导致这张词云里面没有“发展”这个词。“发展”的词频是125,差不多是“改革”的词频是68的两倍.为了验证这个想法,我决定选一个边更细的形状。


letterCloud(f2, word="党",size = 1)  #Word参数用于设置绘制词云形状为“党”这个字。

刚才还有的“改革”,“推进”,“经济”等词现在也没有了。所以证明我的说法基本没错。于是我就P了下面这一张图。把词绘制在图片黑色的地方,白色党徽的地方留下。


path3<-"D://3.png"
f3<-f[1:1000,]  
#因为图片面积比较大,所以这次选前1000个词
wordcloud2(f3,size = 1.7,figPath =path3,background='black') #background用于设置背景颜色,为了便于观察我设置为黑色


这下好了,刚才丢失的词现在已经回来了,就是不知道中间那块黑色党徽那块你注意到没有。所以在这个给各位小伙伴提个醒,在用这个包绘制词云时,背景图片不要选择那些整体边太细的图,否则会影响结果。

4.总结

现在,我来总结一下,大家都知道我们党执政兴国的第一要务是——发展。与我们的分析结果是一致的。在过去的一年,我们党仍然以发展作为第一要务,全面推进“一路一带”建设,加快创新发展,大力发展深化改革开放,明确政府职能,不断完善社会体制,不断提高服务能力,注重保障和改善民生,增加就业机会,实现经济的稳定增长。推动各族人民在全面建成小康社会进程中实现共同发展繁荣。

不知道我总结的怎么样,不足的话留言区就留给你们了。


微信回复关键字即可学习

回复 R              R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存