本文作者:陈宏武,2013年华中科技大学毕业,之前从事搜搜网页搜索的下载调度,数据质量优化工作。目前在内部搜索平台部外站数据组从事网络爬虫、下载调度、页面抽取及数据整合相关工作。
“你百度一下会死啊”?答:“会”。
最近的WZX事件闹得沸沸扬扬,不由得引起我们思考,如果WZX能获取更多更全的相关数据,如synovial sarcoma(滑膜肉瘤) 的DC CIK免疫疗法临床现状、武警二院属于莆田系等,也许当前的医疗手段依然无法挽回他的生命,但是他的求医体验应该不会是现在这样。
大数据是什么?个人认为,大数据就是通过对之前数据的分析挖掘,预测出以后将会产生的数据。那么,之前数据的多少,将直接影响了数据挖掘的难度和效果。随着计算机的处理能力的日益强大,你能获得的数据量越大,你能挖掘到的价值就越多。试想一下,如果卫生部收集国内所有医院的诊治数据,建立一个医疗大数据平台,个人认为这将会在流行病预测、疑难杂症治疗、甚至医疗资源不足等问题上产生十分重大的积极作用。
三军未动、粮草先行,截其源,断其粮,敌可擒也。数据对于各个产品乃至于各个公司都是有如粮草一般十分重要。目前,很多公司已经十分注意数据的保护,采用登录、爬虫检测、JS异步拉取、JS、CSS混淆等技术保护已有数据,如百度就对其搜索结果的URL进行了加密处理,防止竞争对手通过关键词搜索窃取数据。同时从2015年3月21日,百度全站使用了HTTPS,进一步加强其网站的安全性。随着大数据的不断发展,数据获取难度及数据量规模增大,未来大数据的获取成本将会越来越高。
那么,目前的主流数据获取方式包括哪些呢?1. 众包方式通过大量人力产生,如人工标注的数据,很多政府通过人力搜集的数据也暂且归为此类;2. 数据API获取,很多商业数据平台提供了有偿数据获取的API,通过这些API可以获取想要的数据;3. 系统日志,很多系统或平台产生的日志也是重要的数据来源,如微信、淘宝的用户产生的数据;4. 网络爬虫,通过网络爬虫获取海量数据。
前三种方式是简单粗暴的,要么有钱,要么有关系,那么第四种方式则是当前大数据获取技术领域探讨得相对较多的问题。
在爬虫领域,数据获取又可以分为数据获取和数据清洗两个方面。
数据获取主要是针对各大公司对于数据保护所采取的错失,如快速频率访问被封禁,需要登录认证,数据由AJAX动态拉取产生,国内外代理以及数据的快速自动发现。封禁问题可以通过增加访问代理或者增加访问延时解决、而登录认证大部分可以通过携带COOKIE解决,AJAX动态拉取产生数据则可以模拟浏览器引擎解决,国内外代理的问题可以通过购买IP资源或者在网络动态挖掘免费代理来解决,而数据的快读发现,目前已经有很多成熟的算法甚至开源的系统可以做到了。
大数据环境下数据来源丰富且多种多样,在大量数据中包含有大量的数据噪音,这就需要对数据进行清洗。首先的清洗便是对网页数据的清洗,网页数据是非结构化的数据,而大数据应用的往往是结构化的数据,这就需要我们去掉网页中的无用数据,如导航栏、广告栏等。抽取有用数据、生成结构化数据并存储。对于较小的数据量,网页抽取有一些开源的库可以使用,如python的BeautifulSoup、java的Jsoup等。但是对于大数据而言这些工具可能无法较好的实现数据清洗。目前,主流的做法是通过DOM树解析将网页源代码拆分为一个个的节点,然后通过一些人工运营的规则和算法将分开的节点进行聚合,生成正文块、评论块、广告块、导航块等,然后进行过滤抽取。另外也有一些公司采用基于规则或者所谓视觉(其实是XPATH、CSS)等的抽取,通过人工配置一些数据模版的XPATH、CSS规则来获取结构化的数据。这些方式的有一个较大的问题是准确性较大的依赖人工配置的规则、成本太高,而且对于网站模版的变动较不敏感,需要后验进行修正。乘着AI的春风,我们目前正在实现一种智能的数据清洗方案,针对统一垂直领域这样一类近似的实体,基于语义分析,结合网页分类、内容分类和结构分类,在减少甚至省去人工配置规则的同时,达到自动智能抽取的目的。
5月9日,号称“超级大脑”(The Global Brain)的人工智能平台Viv问世,Viv不下载 App、不输入文字、不拨打电话、甚至不按键盘,只用语音就能完成服务,似乎离图灵测试所描述的又进了一步,让我们开一下脑洞,也许以后还会出现更多更加智能的数据获取方式,如基于视觉、听觉甚至感觉的数据获取,就如同人类一样,通过眼镜、耳朵和皮肤获取数据,那时候又将是一番怎样的景象呢?