专栏首页机器学习养成记R语言爬虫与文本分析

R语言爬虫与文本分析

之前用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 class="comment">...</div>下的<p>...</p>标签中。

  • 代码实现

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

read_html()函数负责读取网页,html_nodes()负责筛选出相应标签,html_text()负责抓出标签内文本。因为<div class="comment">...</div>标签是<p>...</p>的父标签,所以倒数3行可以写成如下更简单的模式:

变量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下载的,自定义图片运行后无法出来词云效果,具体原因也不是很清楚?

本文分享自微信公众号 - 机器学习养成记(chenchenwings)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • No module named RequireDebugFalse

    python@ubuntu118:~/pythonwork/mysite$ python manage.py runserver Traceback...

    闵开慧
  • Go实现海量日志收集系统(一)

    项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现...

    coders
  • Python 黑客——使用Python破解门禁系统

    如何使用Python破解门禁系统 前言 Solesec白帽团队楚轩大校原创文章 正文 说起黑客,从小的我就觉得黑客很炫酷,我以前经常看...

    用户1467662
  • 推荐一款src自动化扫描和收集的工具

    目前支持的功能 全自动扫描: python webmain.py -a target.com --> baidu_site && port/...

    用户1467662
  • chmod: changing permissions of `/usr/local/bin/...

    python@ubuntu118:~/Django-1.4.1$ python setup.py install running install...

    闵开慧
  • 一篇文章帮你解决python的包管理

    写python代码的人都知道,一个项目写下下来,不可避免的都需要使用很多第三方包,通常我们都是通过pip install ,然而当我们需要上线的时候问题来了,如...

    coders
  • python中重要的模块--asyncio

    一直对asyncio这个库比较感兴趣,毕竟这是官网也非常推荐的一个实现高并发的一个模块,python也是在python 3.4中引入了协程的概念。也通过这次整理...

    coders
  • 让你用sublime写出最完美的python代码--windows环境

     至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病 但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到...

    coders
  • windows中django的安装

    1 下载python,解压,配置环境变量,将python的路径复制出来D:\tools\python273,粘贴到环境变量path中即可。 2 下载django...

    闵开慧
  • DiscuzX v3.4 任意文件删除漏洞

    漏洞影响 DiscuzX版本 ≤ v3.4 官方于9月29日修复该漏洞: https://gitee.com/ComsenzDiscuz/DiscuzX/com...

    用户1467662

扫码关注云+社区

领取腾讯云代金券