基于主题网络爬虫的创业政策信息采集研究与实现

2017-07-10 06:16郑正赵飞周昕砀
电脑知识与技术 2017年14期

郑正+赵飞+周昕砀

摘要:为了快速地获取创业政策信息的采集与定位,該文设计了一种基于主题网络爬虫的爬行策略和网页相关度算法,文中详细描述了种子URL的设计,定时更新策略,网页相关性的识别分类方法,以及该网页在创业政策信息中的重要性设计算法,并呈现了设计的相关流程和实现界面。

关键词:主题爬虫;爬行策略;网页相关度评价

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)14-0049-03

1研究背景

由于世界经济复苏乏力,中国经济面临转型,我国经济发展亟须寻找新型动能,随着李克强总理在2014年夏季达沃斯论坛开幕式上提出形成“大众创业”、“草根创业”的新局面和在两会政府报告中加以强调,“大众创业、万众创业”的新浪潮开始引发公众关注。

国家对创业创新非常重视,频频出台多项法律法规予以支持,各级政府也纷纷响应,鼓励广大社会人士进行创业。但在实际的实施中,一些政策存在交叉重复现象,缺乏一个能将所有相关政策整合起来的系统,恰是由于顶层宏观设计的缺乏,导致政策效果大打折扣,执行程序繁琐,大众群体很难迅速准确的找到自己希望得到的相关创业信息。

本文旨以“大众创业、万众创新”为主题,建立一个基于主题网络爬虫数据采集系统,将从不同层面从网络中采集相关信息,通过过滤和整理形成创业政策信息数据库,为所有创业意向的人提供方便的相关创业政策和法规信息的咨询与浏览,让他们能够更快地寻找到他们所在地政府支持创业的相关政策。

2网络爬虫相关研究

网络爬虫(Web Crawler),又称为网络蜘蛛(Web Spider)或者是网络机器人,是一个自动下载网页的计算机程序或自动化脚本,在网络搜索引擎中起着非常重要的作用。网络爬虫通常从一个已有的URL子集出发,沿着网页的超链接按照一定的顺序从中取出URL,下载所指向的页面,分析页面内容,提取新的URL并存入待爬行URL集合中,不断重复上述过程,当满足某一终止条件(达到指定数量或者爬行队列为空)后停止爬行。

网络爬虫是帮助客户从网络中获取信息的有效工具,但是随着网络普及和网络社交的泛滥,网络上的数据呈现爆炸式的增长,互联网上含有超过16亿的网站,而这些被索引的网站至少包含了217亿的页面。面对如此多的数据,通用网络爬虫出现以下几个方面的问题:单位时间内获取的数量不满足用户需求、采用并行爬行后页面质量下降、爬取的内容大量重复、对通信带宽造成巨大压力。

主题网络爬虫相对于通用网络爬虫有几点的改进:1)主题网络爬虫的初始URL种子集是与主题相关度高的页面;2)在爬虫的爬取过程中下载与主题相关的页面,从中取出并取URL;3)引入优先级队列,判断URL是否重复出现,按照优先级对URL进行访问,无关的URL将会被抛弃。这样做的优点是:产生的数据更加准确和契合用户需求、处理大量数据信息速度更快捷、节省了硬件和网络资源,降低了硬件成本地投入。

3设计与实现

主题网络爬虫的设计要考虑四个方面:1)主题信息的定义与描述:主题描述主要采用关键词描述、基于概念或本体的语义描述等方法;2)如何评估网页的主题相关度:主要方法是基于文本的挖掘技术;3)如何决定URL的访问顺序:一般采取设置主题相关度较高的URL优先爬取;4)如何提高主题网络爬虫的覆盖度:需要透过主题无关的网页,寻找主题相关信息,提供主题资源的覆盖度。

3.1主题信息下的全局周期性扫描设计

为了获得主题信息全面和最新的相关网页,本文采用基于主题的全局周期性扫描设计。定时更新扫描流程如图1所示。具体详细描述如下。

首先,设置初始化URL主题子集存放在txt文本中,当爬行开始时将一个初始化的URL放入到爬行队列中。为了实现实时对URL监控,设置了三个队列:爬行队列、不相关队列和完成队列,每个URL在某一时间点一定处于在某个队列中。爬行队列用于存储要访问的URL(初始URL子集和后续爬取到的URL);不相关队列用于存储无法访问的URL和与主题不相关的URL;完成队列用于存储与主题相关的URL。三个队列需要满足先进先出的原则,URL入队时从队首入队,从队尾出队。

其次判断爬行队列是否为空,如果爬行队列为空的话,表示没有URL待访问,这时候可以结束爬虫。否则,从爬行队列中获得URL后,系统采用GET方式向http协议发出请求,根据http协议的响应判断网页是否可以打开。如果响应失败,将URL放人到不相关队列中。如果响应成功的话,利用java中的DownLoadFile(方法下载网页内容,并且以字符串的形式用文本保存。

最后对已爬取的网页实现更新。通过获取http报头的LastModifiedtime计算网页的checkpoint。使用网页内容的MD5(Message-Digest Algorithm 5(信息一摘要算法))值加上网页长度作为checkpoint。MD5算法取清洗后的网页的内容计算摘要值,将网页内容变换成一个128bit的整数。如果HTTP头中没有返回Last Modified time,或者返回值无意义,LMT的取值为发现该网页变化的时间,否则取值为Last Modified。如果发现网页本次更新时间(LMT1)大于上次网页访问时间(LVT),则保存当前网页,提取网页中的URL,将URL加到爬行队列中。

3.2评估网页的相关性

采用LibSVM分类器设计,网页的相关性用相关分词、词频、分词所归属的行政级别作为数据集的特征属性,以此评估网页内容的相关性。网页相关性的评估流程如图2所示。

分类器主要分为两个流程:训练分类器和测试相关性。

第一个流程:通过样本训练得到分类器。

1)首先对网页进行预处理和清洗,去除无用信息。

2)读取网页内容,進行分词、选择出名词,建立词袋模型。

3)用CHI算法的卡方统计量,建立特征向量词表。

41对训练集中的文档进行量化处理,使用TF-IDF度量,得到LibSVM输入的训练样本格式文件。

5)将训练数据输入,训练得到模型文件,使用线性核函数,建立相关度的分类器。

第二个流程:对测试网页进行测试相关性。

1)读取待分类URL对应的网页文本,进行分词,去停用词,建立词袋模型。

2)加载特征向量,取出不在特征向量中的词语。

3)将待分类文本与训练样本一起计算TF-IDF值,得到符合LibSVM数据输人格式的数据文件。

4)使用该数据文件作为输入,利用第一步建设好的分类器评估网页的相关度。

3.3提取高相关度的网页

利用加权计算的方法得到网页相关度。设网页与众创政策法规的相关度设置为R,网页中的文字、锚文本和URL的相关度分别设置为C1、C2和C3。权重设置为W1、W2和W3。所以一个网页的相关度R可按如式1:

设计主题相关度的阈值TH,当网页相关度R的数值大于阈值时就被定义为相关网页,否则定义为不相关网页,将其放在不相关队列中,放弃进一步的处理。对于相关网页,将相关网页的文本内容保存到本地的txt文件中,然后将在全局扫描模块解析得到的URL(当前网页中含有的超链接)送入到爬行队列。最后,将当前URL加入到完成队列,从而完成了对当前URL网页的信息采集。

因为有新的URL加入,爬行队列得以持续的爬行。而整个网络爬虫也会重复上述的步骤不断采集与众创政策法规类信息相关的网页内容。当爬行队列不再有新的URL加入并且为空时,爬虫结束。

3.4实现结果

本文设计实现的内容表述如下:

1)初始主题的URL种子集,如图3所示。

2)基于主题种子数据集,爬虫爬行的URL链接如图4所示。

3)对URL爬取到许多链接进行LibSVM相关性测试和标注。测试结果如图5所示,列出了所有删除和相关的网页内容。

4结束语

本文介绍了众创政策法规类信息采集的主题爬虫的爬行策略和网页相关度算法,在爬行算法上应用了初始种子URL、定时启动爬行和更新种子策略,在网页相关性上使用了分类识别模式,自动甄别相关性网页,在网页相关度排序算法中使用了文本关键词、词性统计以及词所属级别等评价统计方法,以上方法的综合使用,大大提高了主体网络爬虫的搜索效率和准确性,减少了频繁无效的过度访问,为用户定位众创政策法规类信息网址定位提供了高效自动的采集方法。