您的当前位置:首页正文

主题爬虫的设计与实现

来源:九壹网
第24卷第8期 计算机技术与发展 COMPUTER TECHNOLOGY AND DEVELOPMENT 2014年8月 Vo1.24 No.8 Aug. 2014 主题爬虫的设计与实现 林子皓 (南京邮电大学计算机学院,江苏南京210003) 摘要:在信息化爆炸的时代,一般搜索引擎的搜索结果已经满足不了人们的需要,能获得更准确全面信息的垂直搜索引 擎越来越受到关注。其中,主题爬虫作为垂直搜索引擎的核心部分一直是搜索方向的研究热点。文中在分析主题爬虫的 结构及特征的基础上,通过引入自己的主题相关度评价方法以及HITS网页排序算法,构建了一个主题爬虫。文中给出了 爬虫实现的具体步骤,以云计算为主题,进行了实验。实验结果较好地反映了主题爬虫的实用性。 关键词:主题爬虫;HIS算法;T主题相关度 中图分类号:TP31 文献标识码:A 文章编号:1673—629X(2014)08—0099—04 doi:10.3969/j.issn.1673-629X.2014.08.023 Design and Implementation of Topic-focused Crawler LIN Zi-hao (College of Computer,Nanjing University of Posts&Telecommunications, Nanjing 210003,China) Abstract:In the era of information explosion,the general crawler cannot meet the requirements of personalized search in speciic arfeas, but the topic crawler which can obtain more accurate and comprehensive inform ̄ion gets more attention.Among them,the topic crawler as the COre part of he tvertical search engine has been the research focus in the search diectrion.On he basits of analyzing he sttructure and characteristics of the topic crawler,design a topic crawler by introducing its own measurement of topic similarity and page ranking algo- rithm of HITS.Offer speciic stfeps of implementing the crawler.An experiment wih the theme of tcloud computing has been carried OUt, which proves the practical applicability of topic crawler. Key words:topic crawler;HITS algorihm;ttopic similarity O 引 言 随着信息爆炸式的发展,用户对于信息搜索的需 求越来越多。由于一般搜索引擎查询结果广而不精的 现状满足不了用户需求,查询更精确、分类更细致、数 据更全面的主题搜索引擎应运而生。主题爬虫是主题 搜索引擎的关键和基础,它是根据某一特定的主题,在 因特网上能自动抓取和主题相关网页的程序。 集中。 1主题爬虫模块设计 1.1整体结构 主题爬虫只爬取与主题相关的网页,并且根据分 析、筛选的结果继续爬取合理网页。对比普通爬 虫 J,需要在原来基础上进行扩充,特别是网页处理 部分。整体结构可以看作:初始模块进行初始爬行,主 题相关度分析模块进行相关度分析并行适当筛选页 面,排序模块对网页的重要性进行一个排序,形成一个 优先级序列。每次都从优先级高的网页开始抓取,可 以保持主题不偏移。 系统架构图如图1所示。 主题爬虫的主要目标是以特定的方式,高效地抓 取Web中与主题相关的网页,尽可能过滤与主题无关 的链接,实现搜索的专、深、精。它与传统的通用爬虫 相比,减少了对资源的利用并且支持扩张性的检索处 理。对于主题爬虫而言,最重要的是如何过滤网页中 的前向链接,使得爬虫聚焦在一个特定主题的Web子 收稿日期:2013-10—28 修回日期:2014—01—26 网络出版时间:2014—05—21 基金项目:国家自然科学基金资助项目(61170322) 作者简介:林子皓(1988一),男,硕士研究生,研究方向为智能计算技术;导非经典逻辑及应用。 师:洪龙,教授,研究员级高级工程师,研究方向为分布式系统、 网络出版地址:http://www.cnki.net/kcms/detaiL/61.1450.TP.20140524.2151.061.html ・100・ 计算机技术与发展 第24卷 图1 主题爬虫运行流程及结构示意图 主题爬虫系统运行步骤: (1)根据爬行模块提供的初始种子及主题,从 web中爬取网页; (2)相关度分析模块对网页进行相关度分析; (3)由分析结果进行页面的取舍,舍去不符要求 的网页; (4)从后续等待的URL中继续取出处理,回到第 一步,直到等待为空; (5)最终排序部分根据自己算法对爬取网页进行 重要性排序。 1.2初始种子和关键词模块 由于主题爬虫是面向特定领域的,具有主体性,初 始种子要求是与主题相关领域内的,所以文中定位自 主选初始页面,这样能很好地保证主题爬虫从一开始 顺利进行下去。例如,所选择的主题是云计算,那么初 始种子选择的就是CSDN云计算首页。 在确定主题方面,通过对各个关键词赋予相对应 的权值,组成相应的关键词集,用这些词集来确定主 题。设置权值有人工设置和机器提取两种方法,人工 设置即根据以往经验来制定,机器提取就是用程序提 取主题网页集中各个网页共同的部分。在文中实现 中,为了简便,只统计了种子网页的关键词词频。手工 设置通常操作简便,并且设置值与实际情况误差不大, 不足之处是有缺漏并且准确性不高;机器提取所定权 值更接近标准值,但前提是有主题贴合且代表性和全 面性都具备的网页集,否则偏差将大大增加。实际可 以结合两种方法,综合它们优点 :人工设置关键词赋 予权值,搜出相应网页,再用这些网页组成网页集合进 行机器提取,得到对应关键词集及权值。 1.3主题相关度模块 文中把网页的主题相关度作为筛选页面的一个重 要的衡量标准,这样做能有效地利用爬虫程序处理掉 不相关的网页,避免进行无用爬取,降低准确率。因此 必须计算网页主题相关度 J,并将相关度小于设定 阈值的网页过滤掉。普通爬虫在进行爬取时会对所有 URL进行处理,没有方向性,这样无疑增大了无效工 作量;而主题爬虫会紧扣主题,由主题相关度计算结果 来筛选符合网页,去除无用网页,提高准确率,这就是 两者的根本区别 。 文中将每个关键词看作是一个特征项,作为网页 的一个基本单位。通过统计算法Term Frequency—In— verse Document Frequency(TF—IDF)计算每个特征项的 权值。设某一主题在相关页面中特征项的数目为n, 若以 ,表示第.『个特征项在该页面中的权值,则这n 个特征项权值可以由向量D表示: D=(叫1,W2,…,W ) (1) 定义1:页面关键词权重频率 = 第i个关键词出现的次数 页面中关键词出现的最多次数。 分析待判断的页面统计出关键词出现的次数,分 别表示为a (i=1,2,…,n),以出现次数最高的关键词 作为基准,记为a ,则权重频率 = ,显然出现最高 次数的频率即为 = 0 =1,这样就能通过页面关键 词权重频率反映出第i个关键词在页面中的重要程 度。 其他关键词的权重频率 可以根据以上算式算 出,那么页面中每一维分向量为 W ,待判定网页的关 键词权重向量空间 表示为: T=( lWl,X,2W2,…,XnW ) (2) 文中用主题基准模型向量和待判定网页向量的夹 角余弦来衡量其主题相关度。计算公式如下: sim:cos< ,D>: : l Z’l l D l J— w + 十…+W:Jx1垒  +X2W +…+磐i W:  (3) 当计算的余弦值大于等于系统指定的相关度阈值 时,才会认定当前处理页面为主题相关页面。假设阈 值为r,若cos<T,D>≥r,则认为此页面和主题相关, 保留并下载此页面;若cos<T,D><r,则认为此页面和 主题无关,舍去此页面。r所设值能决定获得页面的 多少,一般根据实际需要来。r越小,筛选条件低,获 得的页面越多;r越大,筛选条件越严格,获得的页面 越少。 1.4 网页价值排序模块 网页价值排序模块是对已筛选留下的网页进行操 作,把这些网页按实际价值高低排序,顺序的先后体现 了网页的重要程度,也方便价值高的网页容易地被选 择到。除了主题相关度因素体现网页重要性以外,其 他因素也是所需要排序模块考虑的,诸如网页链接个 数、链接指向、被其他网页指向等等 。 在Web页面中存在大量的超链接,超链接分析可 以指出更有价值的搜索方向,可以很好地提高检索质 量,HITS算法是其中一个比较有代表性的算法。HITS 第8期 林子皓:主题爬虫的设计与实现 t=1 ・101・ 算法是由康奈尔大学(Cornell University)的JonKlein— berg博士于1998年首先提出的 ,HITS的英文全称 为Hypertext-InducedTopicSearch。 do for each in V HITS算法定义了两个重要概念:Authority页面 (某一主题的权威页面)和Hub页面(与Authority页面 连接在一起的页面)。 Authority:代表了特殊领域内或与主题联系紧密 d。at( )=∑h,-i( ) t(口)= a一( ) a =a,/l a lI lh =h,/l h ll lt=t+1 的高质量网页。它的权威度与自身提供内容信息有 关,即网页被引用的越多,其Authority越大,网页越重 while l la 一a I ll+1I h 一h 一l lI<s 要。 Hub:代表了一种包含了很多指向高质量页面链 接的网页,即提供高质量的超链接。而链接权威度与 网页提供的超链接的质量相关,引用内容质量高的网 页越多,网页的链接权威度越高。它是一种指向权威 网页的链接集合¨ 。 重要性排序模块中的网页排序可以将主题相关度 和链接分析两个因素结合起来考虑,链接分析部分主 要运用上面篇幅所介绍的HITS算法¨卜 ]。以下是 排序模块中HITS算法流程: (1)通过主题爬虫获得与主题最相关的 个网页 的集合,称之为root集。 (2)通过连接分析扩展root集,扩展后得到的集 合称之为base集。扩展方法:对于root集中任一网页 P,加入所有P中所包含的链接到root集,加入最多d 个指向P的连接到base集。 (3)计算base集中所有页面的权威值和中心值: 设n维向量a, 。a ,hi分别表示节点i的Authority值 和Hub值。算法如下:初始化向量口,h,a。=1,h。=1, 然后进行I,0操作。 I操作:at( )=∑【w"】 E h,-1(鲫) 0操作: ( )=∑at_l( ) (4)规范化。 ): _)一 ^/∑[at(q)] h ): 一 ^/∑[ (g)] I操作反映了如果一个网页有很多好的Hub指 向,其权威值会相应增加。 O操作反映了如果一个网页指向很多好的权威 页,Hub值也会相应增加。 重复计算I,O操作和规范化,直至a( )和h( ) 收敛为止。 具体代码实现如下: a,h初始化为1,a。=1,h。=1 return(a ,ht) 2主题爬虫具体实现 2.1 URL相关 实现主题爬虫需要进行主题相关度计算,并根据 计算所得值进行页面筛选,文中定于使用4个URL队 列 “ ,各个队列都是同状态URL集合: (1)等待队列:该队列等待程序处理,并且爬虫新 爬取的网页将加入其中。 (2)异常队列:无法进行下载的链接将被加入其 中,不再进行下一步骤,并且舍弃掉。 (3)抛弃队列:下载可正常进行,但主题相关度小 于阈值的链接放进此队列,程序也将不再进行下一步 骤。 (4)完成队列:下载可正常进行,但主题相关度大 于阈值的链接放进此队列,完成下载后,将已下载过的 URL加入完成队列。 图2说明了URL队列的转化流程及URL所处各 个队列的关系。 图2 URL在队列中的流通过程 2.2网页爬取 在爬取一个网页之前,首先要检查该网页。如果 该网页是一个网络资源,那么就没有必要访问,例如网 页是一个mp3的下载页。需要忽略的网页类型有: if(s.endsWith(”.zip”)ll s.endsWith(”.gz”) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top