数码产品信息的主题爬虫设计_第1页
数码产品信息的主题爬虫设计_第2页
数码产品信息的主题爬虫设计_第3页
数码产品信息的主题爬虫设计_第4页
数码产品信息的主题爬虫设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数码产品信息的主题爬虫设计

0查询结果的干扰自web站点出现以来,该网站一直在开发。通用搜索引擎是基于整个Web采集信息,采集的页面数量非常大,因此在检索的结果中,包含了大量与查询不相关或相关性很小的内容,这些查询结果都极大地干扰到了用户。随着Web信息的急剧膨胀,这种干扰也越来越严重,同时用户也越来越渴望得到与特定主题相关的信息。通用搜索引擎向用户提供几乎所有类型、任何主题的资源,这显然已经不能满足用户针对特定主题的查询要求。针对这种情况,需要一个数据全面深入精确且更新及时的主题搜索引擎。1开展特定领域、特定人群开展的检索服务主题搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等因素而提出来的新的搜索引擎服务模式,它是通用搜索引擎在某个类别的专业化,就是针对性地为某一特定主题、特定领域、特定人群或是特定需求提供的信息检索服务。通用搜索引擎好比是“超市”,商品应有尽有,而主题搜索引擎就好比是“家具城”、“电脑城”,提供专项服务。主题搜索引擎因为具有较强的领域针对性,能够排除很多冗余信息,在很大程度上减少了不相关的检索结果,从而提高了检索的准确性。主题搜索引擎与通用搜索引擎在工作原理上是相似的,也是由信息采集、信息处理和信息检索三部分组成。不同的是主题搜索引擎只采集与主题相关的信息。主题爬虫就是为其搜集与主题相关的网页资源。2主题设计2.1种子网页的体系结构如果将互联网看成是一张图,那么每个网页就是其中的节点,网页与网页之间的链接则构成弧,用图的遍历算法通过弧可以遍历每个节点。爬虫就是这样顺着链接按图索骥,爬行整个网络的。爬虫从种子网页出发,向服务器发送HTTP请求,请求URL对应的资源,分析下载的页面,提取链接,将链接加入URL队列,以便后续读取。普通爬虫的体系结构如图1所示。种子网页用来赋予抓取模块初始的URL,抓取模块以这些初始URL去Internet上爬行;爬行模块向URL对应的Server发送HTTP请求,请求URL所标识的资源,Server返回响应消息,响应消息中的响应正文即为我们请求的资源;链接抓取模块,得到我们请求的网页之后,抓取其中的超级链接,将没有访问过的链接存放到URL哈希表中。抓取到的网页存放在网页库中,为后面的预处理索引模块提供基础。主题爬虫是以普通爬虫为基础的,实际上它是对普通爬虫功能上的扩充,用于搜集与主题相关的网页,其组成如图2所示。包括种子网页、主题确立模块、爬行模块、过滤模块、链接抓取模块和排序模块等等。种子网页和普通爬虫的种子网页的作用一样,爬虫以种子网页为起始网页爬行,但是所不同的是种子网页的选取有一定的限制;主题确立模块用于确立爬行的主题;爬行模块和普通爬虫的相应模块功能相同;过滤模块对爬行的网页进行相关性判定,提取与主题相关性强的网页;链接抓取是抓取网页中的链接以便爬虫的后续爬行;排序模块是对与主题相关的网页进行重要性判定。2.2种子网页的自动选取由于主题搜索引擎是面向特定主题或是领域的,所以初始种子网页的选取是比较关键的。种子网页首先应该是与该主题相关的,否则爬虫无法工作。那么如何来选取种子网页呢?种子网页的选取可以自动选取,但是不确定因素太多,作者采用的是人工干预方式,好处是实现简单,而且比较准确;缺点是加入了过多的主观因素,导致种子选取不够全面,这点通过下面的主题确立模块改善。首先,通过咨询该领域专家获取主题关键词集合,利用这些关键词去元搜索引擎中查找,从中选取质量较高的网页作为种子网页。关键词主要集中于数码产品的性能元素。2.3.基于文本特征的权值提取关键词集合采取专家意见,比较准确,可以将专家提供的关键词集合作为主题,但是由于主观因素分量太重,导致可能会有遗漏不全面,所以需要重设主题关键词集合。本文采用的是专家意见和特征提取相结合的方式。特征提取是利用一个与主题相关的网页集合,由程序自动提取网页集合的共同特征。这里利用种子网页集合更新主题关键词集合。特征提取主要基于以下两种方式:(1)基于主题词典的特征词向量提取主题搜索引擎网页的特征项一般都是专业词汇或是特定领域的常见词汇,所以用主题相关的词条才能更好地表征网页。参照主题词典进行特征提取,只匹配那些在词典中存在的词,文档向量空间维数大大降低,可以用少量的词汇较好地涵盖某一主题的同时降低计算复杂度。这种方式存在的缺陷在于特征项的权值量化不够精确,不具备全面概括性。本文采用的是下面一种方式。(2)基于权重特征词提取文本词条数量众多,如果用文本中的所有词条做文本向量,向量空间的维数可想而知,进而影响系统效率,而且文本词条包括大量如停用词等与主题没有多大关联的词条,所以必须进行特征提取,用有代表性的特征词表征网页。这里用到向量空间模型VSM(VectorSpaceModel)算法。VSM是一种文本特征的表示方法,它的基本思想就是任何文本文档都可以用一组文本向量(T1,T2,…,Tn)表示,其中Ti(1≤i≤n)是文本中的词条。每个特征项Ti在网页中都有一定的权重,于是网页就可以用一个向量(W1,W2,…,Wn)(其中Wi为特征项Ti在页面中的权重)来表征其特性。权重大的词也必然是文档中较重要的词,将这些词条抽取作为特征词Ti(1≤i≤n)。在这里计算权重使用的是TF-IDF算法。TF(TermFrequency),即词条频率,用词条在文档中出现的次数进行归一化来表示,也就是词条出现的次数除以网页的总词数(Fi/Z)。但是这明显存在漏洞。如“的”等词通常没有什么意义,但是它往往占了总词频的80%以上,称这种词为“应删除词”。针对上面的情况,信息检索中又提出了逆文本频率IDF(InverseDocumentFrequency)计算权重,使得在越多文档中出现的词条的权重越小,在越少文档中出现的词条权重越大。,其中D为全部网页数,Di为出现了词条Ti的网页个数。所以特征项Ti的权重Wi=(Fi/Z)·log(D/Di)。2.4下载资源获取爬行模块和通用搜索引擎的对应模块基本上没有什么区别,读取等待队列中URL,向对应服务器请求资源,服务器予以响应,爬虫下载资源。在爬行模块中,为便于爬行数码产品的性能参数页面,在该部分加入了正则表达式加以限制。2.5.种子网页的相似度爬行模块下载了网页内容,为了确保网页的主题相关性,必须对网页进行相关性判定。与主题不相关或是相关性较低的网页的价值甚小,必须将它们过滤掉,这是普通蜘蛛与主题蜘蛛的根本区别之所在。如何判断网页与主题的相关性呢?在上文中已经提到了VSM,每一个网页都可以用一个特征向量来表征。计算两个向量的相似度,在向量代数中,可以简化为求两个向量的一致性,确定向量是否一致,可以用余弦定理来实现。两个向量的夹角越小说明这两个向量越接近,表现在网页上就是两个网页的内容越相似。假设网页A的特征项的权重向量为α=(W1,W2,…,Wn);网页B的权重向量β=(V1,V2,…,Vn)(WI和Vi分别为向量α、β的特征项权重),那么A和B的相似度就可以用如下的公式来判定:如何比较相似度已经解决了,余下的问题是新的网页和种子网页中的哪个网页进行比较呢?种子网页中某一个网页是不能代表主题的,所以提供了下面两种方法:(1)将新的网页与种子网页中的每一个求相似度,然后求相似度的平均值,缺点是每个网页都要重复多次计算,增加了计算复杂度。本文采用下面的计算中心向量的方法。(2)求出主题中心向量Vector,新的网页再与中心向量求相似度。种子网页可以看成是与主题密切相关的一类网页,可以用类内的全部元素的质心(Centroid)来刻画一个类的总体特性,从而得到中心向量Vector。设种子网页的集合为D=(D1,D2,…,Dn),每个网页向量Di∈D,其中Di=(W1i,W2i,…,Wni)(Wji为特征项的权重),那么主题中心向量可以用如下公式来计算:得到了中心向量,将新的网页向量与之求相似度,指定一个阈值r,当相似度大于r时就认为该页面和主题是相关的,添加到网页库中,以待后续的索引,否则丢弃该页面。2.6选择匹配页面的方案得到新的网页后,需要进一步提取新网页的链接以便爬虫继续展开工作。链接的提取可以设定URL模板,通常是采用正则表达式来提取与之匹配的URL,这样可以针对性的采集网页,适合规模比较小、信息源稳定的需求,但是后期维护成本太高,不太适合网页库搜索引擎级别的要求。但是既然是一种技术,就可以与其他的技术相互补充,因为技术只是手段,目的是切返用户之需。总的来说链接的抓取模块和普通蜘蛛的相应模块没什么本质区别。2.7网页具体的相似度和选择实验数据显示,约85%的用户只翻看搜索引擎返回结果的前10个结果,即返回结果页面的第一页。这个用户行为决定了尽管搜索引擎返回的结果数据十分庞大,但真正可能被用户所浏览的只是前面的很小一部分而已,所以排序策略是至关重要的,也是搜索引擎成败的关键。用户排序模块的作用是依据网页的质量进行排序,将价值大的网页排在前面,以便用户方便获得所需资源。现在的排序算法有很多,诸如HITS、词频和位置的加权排序、基于Alexa的网站排序等等,这里提出的是相似度和PageRank的结合算法。PageRank基于“从许多优质网页链接过来的网页,必定还是优质网页”的回归关系来判定所有网页的重要性的。PageRank的思想源于学术引文机制:当从网页A链接到网页B时,就认为网页A投了网页B一票,增加了B的重要性,最后根据B的得票数来评定其重要性。计算公式如下:其中:PR(B)为页面B的网页级别;Pi为页面B的链入网页;PR(Pi)为页面Pi的网页级别;C(Pi)为页面Pi链出的链接数量;d为阻尼系数,取值范围为(0,1),一般为0.85,因为并不是每一个网页都有出度或入度的;N为总网页数量;n为页面B的入度;(1-d)非链接进入页面浏览的概率,即用户没有对当前页面继续链接访问,而是转到其他的页面随机访问的概率;(1-d)/N即为随机访问页面B的概率。页面Pi(i=1,…,n)拥有到页面B的链接,页面Pi的出度为C(Pi),所以由页面Pi到页面B的概率为1/C(Pi),进而页面Pi通过链接进入页面B的概率为d/C(Pi),那么页面Pi传递给页面B的PR值则为,入度为n,将n个页面传递给B的PR值求和即可得到通过链接传递到B的PR值。PageRank算法在很多大型搜索引擎中都有很好的效果,网页PR值成为网页质量的评价标准。在主题网页集合中,相似度可以从很大程度上决定该网页的重要性,与主题越相似,所含的信息也必然与主题也相近,其质量也就越高。综合PageRank和相似度的分析,网页质量可以用下面的方法计算:其中t∈(0,1)。3主题跟踪计划的实现3.1确定使用md5算法的生成和传播信息根据URL的处理状态将URL存放在四个不同的队列中,分别是等待队列、处理队列、异常队列和完成队列。当有新的链接产生时,为防止重复抓取,则要检查队列,查看当前URL是否已经被处理过,这势必要用到查找算法。URL的最大长度可达2083字节,同时URL数量庞大,用顺序匹配显然是不合理的;URL的排列也没有什么顺序可言,所以用二分法等都是不可取的,这里用到的是MD5算法。信息摘要MD5(Message-Digest)算法,是一种单向的HASH函数,它的功能是将输入的任意长度的信息,生成一个128位信息,而且不同的输入得到的结果不同,通常将它比喻成“信息指纹”,就好像我们每个人都有独一无二的指纹一样,MD5算法就是给不同的信息加指纹。根据它的唯一性,可以对每个URL生成其指纹(MD5值)存储,将新的URL的指纹与已存储的URL的指纹进行比较,如果指纹不同,则必定是两个不同的URL,将该URL加入到等待队列中等待抓取,否则即表明两个URL相同,则丢弃。3.2使用线程池的注意事项为了控制速度,使用线程池来实现,多线程充分利用资源,提高了效率。当然采用线程池也有一定的弊端,如果因为网络不畅通或是其它原因而导致当前占有的资源的线程始终等待,那么其它任务也会因为等待资源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论