黄锦敬,黄锦焕,陈瑞志
(广东海洋大学寸金学院,广东 湛江 524094)
信息化技术的不断发展,使网民人数呈现大规模增长,带动了网页数量的迅速增长。面对网民与网页的爆炸式增长趋势,保障人们在海量信息中快速获取需求信息成为一项巨大的挑战[1]。在网络中,网民通常通过在地址栏内输入访问网址直接浏览网页内容。在地址栏内输入访问网址,直接浏览能够节约用户的时间,使其迅速进入想要访问的网页。然而,网页数量的不断增长,用户仅了解有限的网址,且网址不容易记忆,使用户仅能查找有限的信息资源。利用搜索引擎进行检索也是一种很常用方式,通过提交用户感兴趣的字词获取可访问的网页[2]。随着时代的不断发展,搜索引擎无法满足用户复杂的需求,促使垂直搜索引擎应运而生。垂直搜索引擎主要负责实现专业信息服务,由检索、数据整合、爬虫等模块构成,其性能好坏会对垂直搜索引擎的实际服务质量造成直接影响[3]。因此,对主题退火爬虫技术进行深入研究。
文献[4]提出一种基于灰狼算法的主题爬虫技术。该技术主要针对爬虫在全局中最优解的问题,通过确定主题爬虫的准确率和召回率,通过将灰狼算法相结合,对其最优解进行搜索,将优化后的爬虫技术与现有方法相比,体现了该技术的优势性能。该方法通过灰狼算法优化后的爬虫技术可获取最优解,但由于未过多考虑其它干扰因素,容易导致最优解为局部最优解,存在一定局限性。文献[5]提出基于多目标蚁群算法的主题爬虫策略方法。该方法针对爬虫技术陷入局部最优解的问题进行研究,首先通过确定主题爬虫领域的本体和主题向量,确定锚文本的相似程度,并分析各链接之间的关系,构建多目标优化模型,引入蚁群算法,通过非支配排序和候选解,完成其全局最优解的搜索。该方法爬虫准确度较高,但抓取的网页信息的相关度欠佳,仍需要进一步的改进。
基于上述方法中存在的问题,设计了一种新的主题退火爬虫技术。该技术引入改进的VIPS算法,并通过处理后设计主题退火爬虫的结构,执行抓取任务时状态和网页信息进行获取。与传统方法相比,所提技术在爬虫覆盖率以及主题漂移率得到了一定改进,具有一定优势。
为了实现主题退火爬虫技术,采用改进VIPS算法[6]对视觉块进行提取,将网页内对应的视觉块进行确定。
基于改进VIPS算法设计的视觉块提取规则为:当一个节点不会再被切分,则对该节点进行提取,并对其进行DoC 值赋予[7],将其在视觉块集合内保存。其具体提取规则为:
1)如果当前节点的有效子节点仅有一个,并且其子节点不属于文本节点,则对其进行分割。
2)如果当前节点的全部子节点均为虚拟文本节点或文本节点,不对该节点进行分割。当全部子节点的font-weight和font-size相同,则对该视觉块进行设置,将DoC 值设为10;如果当全部子节点的font-weight和font-size不同,将DoC 值设为9。
3)如果当前节点背景颜色和子节点内的某个背景颜色不相同,那么对其进行分割。如果全部子节点背景颜色均不相同,并且在本次迭代时无法对其进行分割,则根据尺寸和标签的不同将其DoC 值设置为6到8之间。
4)如果当前节点为
5)如果当前节点为
6)如果当前节点为标签,并且有着相似的子节点标签,则不可对其进行分割。
7)如果当前节点没有被分割的兄弟节点,则不继续对该节点进行分割。
8)以当前节点大小和标签为依据对DoC 值进行设置。
在改进VIPS算法中,主题退火爬虫只对链接与文本内容进行提取,相较于VIPS算法,不再对网页间的空格、网页版权信息、图片等进行关注[8]。
改进VIPS算法中对VIPS算法内原本的规则组合进行了更新,加入新定义内容,具体规则组合内容如表1所示。
表1 改进VIPS算法规则组合内容
基于改进VIPS算法对视觉块进行提取后的语义完整度为
(1)
式(1)中,sid表示语义完整度;u表示提取文本内容是选中类型的视觉块;w表示分割内容是文本内容类型的视觉块;v表示有文本内容然而种类不是内容视觉块的视觉块。
在完成视觉块提取后,需要对其内容实施主题判别,从而将与主题特征相符合的内容块筛选存入数据库,而对于那些与主题特征不相符的内容块则直接将其刨除[9]。首先,使用改进加权算法对特征词进行权重赋予,即
(2)
式(2)中,idf代表文本中特征词权重;n代表某类别中特征词所出现的文档数;k代表其它类别中该特征词所出现的文档数;m代表该类别中全部文档数。
然后,对主题相关度进行计算,使用的模型为向量空间模型,转化文档内容为向量并进行计算。
将文本内特征关键词的实际个数设为x,将x当做向量空间内的维数,用ai表示各特征关键词,用ωi表示各特征关键词的对应权值。则文本内的关键词集合为
α=(a1,a2,…,ax)
(3)
式(3)中,α代表文本内的关键词集合;
由特征关键词构成的特征向量(x维)表示为
βi=(ω1,ω2,…,ωi,…,ωx)
(4)
式(4)中,βi代表由特征关键词构成的特征向量。
以余弦定理为依据,对向量空间内特征向量夹角的余弦值进行计算,计算值即为特征向量的相似度。该值越大,则两个特征向量越相似,也就是两个文本越相似[10],即
(5)
式(4)中,βj代表搜索主题所对应的特征关键词构成的特征向量;sim(βi,βj)代表βi与βj之间的相似度;cosθ代表向量空间内特征向量夹角的余弦值;k代表特征关键词的数量序号;ωi,k代表在文本中提取的特征关键词构成的特征向量的权重;ωj,k代表搜索主题所对应的特征关键词构成的特征向量的权重。
在上述视觉块提取规则设计基础上,采用Heritrix设计主题退火爬虫的结构。
所设计的主题退火爬虫由插件模块和核心模块构成。其中,插件模块能够被第三方编程中的插件取代,核心模块可进行不断更新配置,避免其被编程覆盖,从而实现个性化的主题退火爬虫结构设计[11]。
主题退火爬虫的核心模块为抓取控制器,其对抓取任务的结束和开始起决定性作用。当用户制定控制台的一个抓取任务之后,主题退火爬虫利用抓取控制器实例对抓取进程进行启动,主题退火爬虫具体结构如图1所示。
图1 主题退火爬虫具体结构
主题退火爬虫在执行抓取任务时,主题退火爬虫利用边界控制器对爬行范围进行控制。在边界控制器中存储了被抓取地址的各种状态,包括已处理的地址、正被处理的地址、发现的地址。在边界控制器中对要抓取的统一资源定位地址进行获取后,将其放入多线程的对应处理链内,然后在抓取页面内对新的统一资源定位地址分析,并将其添加至边界控制器内,不断循环,直到用户终止或暂停或没有链接可抓,边界控制器完成执行任务[12]。
在抓取整体流程中,最重要的环节是处理器链,该环节处理步骤包括预处理链、处理链抓取、处理链抽取、处理链写入、处理链后置,具体内容如表2所示。
表2 处理器链处理步骤具体内容
在主题退火爬虫中对抓取状态进行定义,具体如表3所示。
表3 主题退火爬虫抓取状态
通过对规则引擎进行整合,使规则引擎可以在主题退火爬虫中运行,并对执行抓取任务时的状态和网页信息进行获取。通过消息转换器实现规则引擎整合,设计的消息转换器的具体结构如图2所示。
图2 消息转换器的具体结构
通过消息转换器实现规则引擎整合的具体步骤,如图3所示。
图3 规则引擎整合具体步骤
为了验证基于改进VIPS算法的主题退火爬虫技术的性能,进行仿真测试。首先对主题退火爬虫的仿真环境进行搭建,如表4所示:
表4 仿真环境
在搭建的仿真环境中,对比本文方法、基于灰狼算法的主题爬虫技术以及于多目标蚁群算法的主题爬虫技术的爬虫覆盖率、主题漂移率。
4.2.1 爬虫覆盖率测试
在爬虫覆盖率性能的测试中,将教育定为搜索主题,利用本文方法、基于灰狼算法的主题爬虫技术以及于多目标蚁群算法的主题爬虫技术,
在多个网站上进行相关网页搜索,获取其爬虫覆盖率实验结果,如图4 所示。
图4 不同技术的爬虫覆盖率对比
分析图4 可以看出,随着迭代次数的不断改变,本文技术、基于灰狼算法的主题爬虫技术以及于多目标蚁群算法的主题爬虫技术,在对多个网页进行搜索时,其爬虫的覆盖率存在一定差异。其中,本文技术的爬虫覆盖率最高约为90%,而其它两种爬虫技术的爬虫覆盖率始终低于本文技术。这是由于本文技术在进行爬虫之前,借助改进的VIPS算法对视觉块进行相应规则的设计,为后续的爬虫实现奠定了基础,进而提升了本文技术的爬虫覆盖率。
4.2.2 主题漂移率分析
在主题漂移率的实验测试中,分成两组进行实验。以足球、手机、区块链这几个语义明确的关键词为查询主题,获取本文方法、基于灰狼算法的主题爬虫技术以及于多目标蚁群算法的主题爬虫技术的主题漂移率,其中主题漂移率越低代表爬虫技术的性能越好。实验结果如图5 所示:
图5 不同主题漂移率对比
分析图5 可以看出,三种技术对不同主题关键词的搜索中主题漂移率不相同。其中,采用本文技术后主题漂移率最低约为5%,而其它两种技术的主题漂移率始终高于本文技术,验证了本文爬虫技术的有效性。
本文基于改进VIPS算法对主题退火爬虫技术,通过改进VIPS算法获取视觉块,并将其中相关数据根据一定规则进行设计,在此基础上,设计了主题退火爬虫结构,在进行抓取任务时,利用边界控制器对爬行范围进行控制等,提升了爬虫技术的性能。与传统爬虫技术相比所提技术具有以下优势:
1)采用本文设计的主题退火爬虫技术后爬虫的覆盖率最高约为90%,爬虫覆盖率较高;
2)采用本文设计的主题退火爬虫技术后爬虫的主题漂移率最低约为5%,降低了爬虫主题的漂移率。