R语言爬虫与文本分析

作者: 三猫后端 | 来源:发表于2018-03-25 11:12 被阅读18次

    原文链接:R语言爬虫与文本分析

    微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings


    之前用python做过简单的爬虫与分析,今天尝试一下用R完成相应的功能。首先用R爬取了《了不起的麦瑟尔夫人》豆瓣短评作为语料,然后进行了词云绘制、关键词提取的基本操作。

        语料爬取

    寻找链接

    之前在《无问西东》豆瓣短评分析一文中已对豆瓣短评的url做了研究,此处不再赘述。《了不起的麦瑟尔夫人》短评url为:“https://movie.douban.com/subject/26813221/comments?start=0&limit=20&sort=new_score&status=P&percent_type=”,每页显示20条短评,通过改变start参数控制翻页。

    定位标签

    使用Chrome开发者工具,发现短评的内容在<div>下的<p>标签中。

    代码实现

    R语言中,有两种进行数据获取的方式。一种是RCurl包+XML包,过程与python中的urllib与bs4相似,先读取网页代码再对html代码进行解析。另一种为rvest包,rvest包使用起来更方便快捷。这里,我们使用rvest包进行数据获取的工作。

    read_html()函数负责读取网页,html_nodes()负责筛选出相应标签,html_text()负责抓出标签内文本。后三行可以简写为如下形式:

    变量comments_text就是短评的文本结果。观察文本结果,发现每条短评后面都有很多空格和\n,因此我们用gsub函数,去除文本中的\n与空格。注意,“[\n.* ]”中的“]”前面有一个空格。

    可以看到,经过修改后,文本中的空格和末尾的\n没有了,文本的格式更加规整。

        关键词提取

    jiebaR包可以进行分词、关键词提取等操作。jiebaR中,用的TF-IDF算法来得到关键字。首先通过paste()将字符串进行拼接,调用分词引擎的同时,自定义停用词和关键词个数。

        词云绘制

    分词后,用table()可以直接统计出每个词的频数,安频数从大到小排序,选取前100个词。之后,我们用wordcloud2包进行词云绘制。用wordcloud2绘制词云的方法在十九大讲话文本分析(R语言)中也有介绍,本次我们用自定义图片的方式设置词云形状,即设置figPath参数,注意,图片需要存放在wordcloud2中默认的文件夹下,否则应写完整的图片路径。下载wordcloud2包时,可以从github下载,方法如下:devtools::install_github("lchiffon/wordcloud2"),直接从cran下载的,自定义图片运行后无法出来词云效果,具体原因也不是很清楚😂


    推荐文章

    · Bagging算法(R语言)

    ·静态爬虫与地址经纬度转换(python)

    ·《无问西东》豆瓣短评分析

    ·《无问西东》豆瓣短评分析【二】

    · 小案例(六):预测小偷行为(python)

    ·ggplot2:正负区分条形图及美化

    扫描二维码,关注我们。

    如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。

    快来关注我们吧!

    相关文章

      网友评论

        本文标题:R语言爬虫与文本分析

        本文链接:https://www.haomeiwen.com/subject/zgshcftx.html