基于R语言的手动数据搜集:网络抓取和文本挖掘实用手册
优采云 发布时间: 2020-08-15 02:14.你也不要指望本书针对网路抓取或文本挖掘进行全面讲解。首先,我们专门使用了一套软件环境,而它并不是为实现这种目的量身订制的。在一些应用需求下,R 对于你要完成的任务并非理想解决方案,其他软件包可能更合适。我们也不会用如PHP、Python、Ruby或Perl等代替环境来干扰你。要想知道本书是否对你有帮助,你应当扪心自问,你是否早已或计划把R用在日常工作中。如果对这两个问题的答案都是否定的,很可能你就应当考虑取代方案了。但是,如果你早已在用或倾向于使用R了,你就可以市下学习另一个开发语言的精力,留在熟悉的开发环境里。
本书也不会严谨地介绍数据科学。在这个主题上也有一些出众的教材,例如O扤eil and Schutt(2013)、Torgo(2010)、Zhao(2012),以及Zumel and Mount(2014)。在那些书中时常缺位的部份是怎样在真实环境中获取数据科学中用到的数据。在这方面,本书可以作为数据剖析的打算阶段的参考书,它还给出了关于怎么管理可用信息并使它们保持及时更新的指导原则。
最后,你最不可能从本书听到的是针对你的具体问题的完美解答。在数据采集过程中,获取数据的领域从来都不会完全相像,而且其方式有时也会快速变化,这都是固有的问题。我们的目标是使你能改写事例和案例剖析中提供的代码,并创建新的代码,以此帮助你在采集自己所需数据的工作中获得成功。
为什么使用R
对于本书中囊括的问题,R是一个挺好的解决方案,我们如此考虑是有很多缘由的。对我们来说,最重要的几点缘由如下:
R可以自由和简便地获得。你可以按自己的须要随时随地下载、安装和使用它。不去钻研这些高昂的专有软件对你是大有裨益的,因为你不需要依赖于雇主支付软件版权费的意愿。
作为一个主要专注于统计学的软件环境,R拥有一个巨大并且持续繁荣的社区。R被用于各类专业领域,如社会科学、医学科学、心理学、生物学、地理学、语言学以及商业等。这样大的专业范围使你能与好多开发者共享代码,并从文档建立的多领域应用中受益。
R是开源的。这意味着你就能轻松地剖析函数的工作原理并毫不费力地更改它们。这也意味着对程序的更改不会被一个维护产品的独家程序员团队所控制。即使你无意为 R 的开发贡献代码,你依然可以从种类繁杂的可选扩充项(组件)中受益。组件的数目与日俱增,很多已有的组件也会时常更新。你能在这里找到相当棒的关于R应用的流行主题的概述: 。
对常规任务而言,R是相当快的。如果你用过类似于SPSS或Stata的其他统计软件,并养成了在估算复杂模型的时侯顺便度个假的习惯,你应当会赞成这个印象,更不用提那个由“同一个会话,同一个数据框”的逻辑带来的切肤之痛了。甚至还有一些扩充可以拿来加速R,例如,在R的内部通过Rcpp组件调用C语言代码。
R在建立数据可视化疗效方面也太强悍。虽然这对于数据采集并非明显的增值,在日常工作中你还是不应当错过R的图形特色。我们前面会讲解到,对被采集数据的视觉检测才能且必须作为数据校验的第一步,以及图形怎样给海量数据提供直观的总结形式。
使用R进行的工作主要是基于命令行的。这在R“菜鸟”听上去似乎象是一个不足,但相比这些要用滑鼠点击的程序来说,这是惟一能支持形成可再现结果的方法。
R对于操作系统是不挑剔的。它一般可以在Windows、Mac OS和Linux下运行。
最后,R是能自始至终支持研究过程的完整软件包。如果你在读这本书,你应当不是专职程序员,而是对于你要从事的某个主题或特定数据源有相当大的兴趣。在这些情况下,学习另一门语言不会有成效,反而会使你未能举办研究工作。普通研究流程的一个事例如图1所示。它的特征是永远在各类程序之间切换。如果你须要对数据采集过程进行修正,你就不得不顺着整个梯子爬回来。而使用R的研究过程,正如在本书中所述说的,只在单一的软件环境中进行(见图2)。对于网路抓取和文本处理而言,这意味着你何必为这项任务去学习另一门编程语言。你须要学习的只是标记语言 HTML、XML、正则表达式逻辑和XPath的一些基础知识,但所需的操作都是在R内部执行的。
R起步阶段的推荐读物
市面上有很多写得挺好的介绍R的书。在它们当中,我们发觉以下几本尤其有帮助:
Crawley, Michael J. 2012. The R Book, 2nd edition. Hoboken, NJ: John Wiley & Sons.
Adler, Joseph. 2009. R in a Nutshell. A Desktop Quick Reference. Sebastopol, CA: O扲eilly.
Teetor, Paul. 2011. R Cookbook. Sebastopol, CA: O扲eilly.
除了那些商业化的资源,网上还有好多免费的信息。对绝对的菜鸟来说,Code School上有个真正超棒的在线教程,可以在听到。另外,Quick-R()里有好多基本命令的索引。最后,你也可以在 找到好多免费资源和事例。
R是一个不断成长中的软件,为了跟上它的进展,你也许须要定期访问Planet R(),该网站提供了已有组件的发布历史,偶尔就会介绍一些有意思的应用。R-Bloggers()是个博客大杂烩,它专门搜集有关R的各类领域的博客。它提供了由数以百计的R应用构成的宽广视角,这些应用涉及的领域从经济学到生物学再到地理学,大部分都附有再现博文内容所必需的代码。R-Bloggers 甚至推介了一些阐述自动化数据采集的反例。
当你遇见问题的时侯,R的帮助文件有时候不是非常有用。去Stack Overflow()这样的在线峰会或Stack Exchange网路旗下的其他站点寻求帮助常常会更有启发性。对于复杂问题,可以考虑去 GitHub()上找一些R的专家。另外请注意,还有好多非常兴趣小组(SIG)的电邮列表(),里面界定了多种多样的主题,甚至还覆盖全世界的同城R用户小组()。最后,有人建了个CRAN任务视图,较好地概括了近日Web技术的进展和R框架里的服务:。
配套资源
本书的配套网站见。
该网站提供了书中事例和案例剖析的相关代码,以及其他一些内容。这意味着你无须手工从书中复制代码,直接访问和更改相应的R文件即可。你也可以在该网站找到个别练习题的解答,以及本书的勘误表。如果你在书中发觉了任何错误,也请不吝告知。