聚焦式Web Crawler工具的设计与开发

资源类型:pdf 资源大小:100.00KB 文档分类:工业技术 上传者:景晓芬

相关文档

批量下载下列文档
关闭

文档信息

【作者】 唐详 

【关键词】Web Crawler 聚类 自动分类 主题挖掘 

【出版日期】2005-04-18

【摘要】进行了一种面向特定领域主题搜索的实践——聚焦式WebCrawler。分析了搜索引擎和聚类算法的一般工作原理,并指出其不足。在此基础上,综合两者的优点形成了聚焦式WebCrawler工具,介绍了该工具的主要技术及实现方式。

【刊名】情报杂志

全文阅读

对一些经常利用互联网进行科研工作的人来说 ,虽然关键词检索和目录索引仍然是他们获取资源的重要手段 ,但这种方式存在着明显的不足。我们可以先分析一下搜索引擎的工作原理。每个搜索引擎都有后台信息收集工具 ,常被人们称为网络爬虫 (WebCrawler)。WebCrawler不间断地在网上下载网页 ,然后对下载的文本建立索引 ,生成倒排文档。可能会根据网页的链接结构计算网页的级别 ,对用户的查询返回最“重要”的结果。这里存在着三个问题。首先 ,搜索引擎索引的只是互联网很小的一部分。面对呈爆炸式增长的互联网规模 ,最大的WebCrawler也只能覆盖 30 %~ 4 0 %的互联网资源 ,而且更新一次也得数周甚至上月的时间。其次 ,基于搜索引擎的广度优先搜索原则 ,许多搜索引擎只是专著于WebCrawler的搜索效率 ,他们只是检查网页的部分数据 ,比如页头数据和正文的首段。最后 ,由于搜索引擎很难分析整个网页的内容 ,所以搜索到的网页似乎对收集者更有兴趣。显然这种方式正越来越不能满足研究者的需求。他们需要一种可以进行全方位动态搜索的工具 ,了解整个研究背景 ,查找相似性课题的研究状况 ,对Internet上分散的半结构化的信息进行分类聚类。解决这一问题的一条出路就是聚集式WebCrawler技术的应用。利用这一技术 ,我们可以实现对Internet上特定领域的文献资源的自动在线收集分类。1 聚焦式WebCrawler聚焦式WebCrawler技术是搜索引擎技术和聚类方法的结合。基本的思路就是从主题层次表开始 ,以聚集式方法下载网页 ,然后分类进入各个主题域。这个过程是完全自动的。  1.1 传统的WebCrawler 传统的WebCrawler的基本算法如图 1所示 ,一般是由一组种子URL开始 ,重复进行以下过程 :从种子URL集中取出一个URL ,确定相应主机的IP地址并下载Robots.txt文件 ,如果该文件不允许Crawler进行爬行 ,则返回种子URL ,否则Crawler就下载相应的页面文档 ,并且提取出包含在页面中的链接。对于提取出来的每个链接 ,如果是相对链接 ,就将其转化为绝对链接。然后 ,对链接按一定策略进行过滤 ,通常包括检验该链接是否已经遇到过 ,如果没有 ,就将其加入待下载的URL序列中。图 1 传统的WebCrawler的基本算法  1.2 聚 类 在聚焦式WebCrawler的设计中 ,要涉及到网页的聚类。长期以来 ,聚类一直是对大量的文档资源进行分类的非常受欢迎的信息检索技术。聚类技术可以对Internet上大量文档集合的内容进行概括、分类、聚类、关联分析。聚类和搜索引擎存在内在的不同 ,前者从一个主题开始 ,理想状态下返回一组记录。后者从一个主题域开始 ,然后返回其中每个主题的集合。聚类算法的基本思路就是对给定的文献集合分析 ,计算文献对的相似度 ,根据所设定的相似度阈值 ,将文献分别集聚在各自的类中。聚类的基本方法主要有 :a .层次聚类法。将给定的文档集合中的每一个文档作为一个聚类中心 ,形成一个聚类集合 ,计算这个聚类集合中每个聚类对之间的相似度 ,选取具有最大相似度的两个聚类合并成一个新的聚类 ,从而构造成了一个新的聚类集合 ,重复上述步骤 ,根据所要产生聚类的数目和相似度阈值限制 ,得到最终的聚类结果。b.图聚类法。计算出文献集内的每一对文献的相似系数 ,得到文献集合的相似矩阵 ,把每篇文献当作图中的一个节点 ,两两文献间的相似系数大于给定的阈值时 ,代表他们之间的节点间就用一连线连接。所有文献结点通过相似矩阵连接 ,就构成了一个图结构。c.平面划分法。确定要生成的聚类数目和聚类中心 ,一次计算每个文档于各个聚类中心的相似度 ,根据预定的相似度阈值 ,将文档聚焦在聚类中心的周围 ,形成稳定的聚类结果。从中我们可以看出 ,基本的聚类方法都是从给定的文档全集开始聚类的 ,显然不适合对Internet上的海量文献进行分类 ,因为Internet的增长规模是无限的。另外聚类中心选取的好坏对聚类结果有很大的影响。聚焦式WebCrawler以传统的WebCrawler为基础 ,主要在网页分析以及种子的动态调整上进行了优化改进。主要的技术涉及链接结构分析和网页内容分析。这些分析技术基于以下一些假设 :a.如果两个互相都有指向对方的链接或者两个网页都被同一个网页链接 ,那么这两个网页的内容就可能描述的是同一个主题。b.网页中链接锚点的文本描述了所指向的网页的内容。研究表明URL中的字符串包含了许多重要的信息。例如我们搜集计算机方面的文献 ,那么包含“dataming”的URL就可能比包含“travel”的URL更接近主题。可能存在的问题是锚点文本太过简单以至没有什么实际意义 ,比如包含“here” ,“this” ,“top” ,“about”的锚点文本。对此 ,我们可以构造一个停用词表 ,对诸如“contents.html”的网页就停止跟踪。c.描述同一主题的两篇文章用词上可能就比较接近。d .通过页面分析技术 (例如TF -IDF)可以确定某一网页是否与特定的主题相关。链接分析和内容分析的结合就能很好地实现相关网页的聚类。通过这种方法收集到的网页的相关性要比搜索引擎得到的结果高得多。2 聚焦式WebCrawler的主要技术  2 .1 聚类中心构造 在聚类的过程中我们需要首先确定聚类中心 ,假定对任意主题 ,Internet上都存在关于该主题的一个虚拟的文档集合 ,我们可以利用搜索引擎选取其中最相关的一部分 ,利用这些精选的网页构造聚类中心。用Google查询每个主题 (假设有 n个 ) ,用每次返回的前k个命中结果构造一个聚类中心 ,从而得到一个聚类中心集。这一过程中还需将每个URL放进种子URL集。k可以取 4到 7之间的数字 ,也就是说如果Google返回的结果不到 4条则返回修订主题表 ,对Google返回的 7条以后的结果予以舍弃 ,这一步可以通过Google公布的SOAPAPI来实现。然后用一个词法分析对象将这k个页面转换成一个关键词向量 ,具体做法如下 :提取下载的每个HTML文件的“>”和“ <”之间的所有文本 ,借用自动切分技术提取关键词 ,去除停用词表中的关键词 ,将n个主题的搜索结果全部提取关键词后得到一个关键词集合 (T1T2 ...Tn) ,这样就可以对每个聚类中心构造关键词向量Ci(ti1ti2 ti3 ...tin)。其中tij表示第i个聚类中心与第j个关键词的相关程度 ,tij的取值范围为 [0 ,1],网页与关键词密切相关其值为1,无关者为 0 ,部分相关者可相关程度给予 0到 1之间的数 ,这个可由网页中关键词的出现频次来确定。最后用关键词向量构成一个 2维聚类中心集矩阵。  2 .2 链接提取 从URL集中取出一条记录 ,下载该页面后必须进行新链接的提取 ,以保证Crawler能够连续不断的爬行。这一过程由一个链接分析对象来完成。主要是从HTML文档的A元素的HREF属性的属性值中 ,IMG元素的SRC属性的属性值中 ,以及FRAME元素的SRC属性的属性值中提取。提取到的链接中 ,相对链接必须转换为绝对链接 ,最后对新链接予以过滤。  2 .3 分类 (网页相关性判断 ) 对下载的每个页面首先利用前面的词法分析对象构造关键词向量 ,然后利用余弦系数法来判断该页与哪个聚类中心更相关。余弦系数法的计算公式如下 :Corrij=∑nk=1tik·tjk∑nk =1t2ik·∑nk=1t2 jk其中 ,Corrij表示第i个聚类中心与第j篇文献的余弦系数 ,tik 和tjk表示第k个关键词在ti和tj中出现的权值或相关值。余弦系数的取值在 0和 1之间 ,值越大表明相关性越高。最后将该网页分类入相关性最高的聚类中心。  2 .4 过滤机制 聚焦式WebCrawler的特点是面向特定领域 ,因此要求WebCrawler的爬行更专业、更专一。在这里我们主要采用两种过滤技术来实现这一目标 ,即URL级过滤和页面内容级过滤。2 .4 .1 URL级过滤。URL级过滤的主要任务是过滤掉不需要的URL。如过滤掉含有非Http协议头的链接 (如ftp ,tel net,mailto等 )和明确含有不处理文件类型后缀名的链接 (如rm ,mp3,wav等 ) ,对以next,previous,about结尾的HTML文件我们也舍弃之。以收集情报学领域的文献为例 ,其过滤范围包括那些构造有误的不合法URL和那些虽然合法 ,但是明显不属于所需下载范围之内的URL ,比如那些属于mil,jp等域的URL ;对URL中Webserver部分中出现cs,edu的予以保留。在此主要是根据域名中出现的文字进行筛选 ,所以对于URL中IP必须反解析为域名形式 ,可以通过域名解析程序加域名库来实现。2 .4 .2 页面内容级过滤。页面内容级过滤主要是将相关性系数与一给定的阈值进行比较 ,如果相关性系数大于阈值 ,就认为该文档属于搜索领域之内 ,保存该文档并提取其中的链接 ,对新链接继续跟踪 ,否则就简单地抛弃该文档。经过以上两种过滤 ,过滤掉那些明显不属于检索范围内的Web页面 ,能够更好地支持面向特定领域Web信息的收集。  2 .5 爬行的结束时机 因为程序永远不会下载相同的页面两次 ,所有整个搜索过程不会形成一个回路 ,事实上可以看作是对树的遍历。现在的问题是对树上的每一个分支网站我们要跟踪 ,下载多少文档才能停止跟踪呢 ?这里我们主要通过threshold和cutoff两个参数来控制。threshold用来确定相关性系数的下限。cutoff表示在一个网站内所能接受的最多的不相关页面数 ,cutoff的取值范围是 0 (整个网站的页面必须全部与主题相关 ,即每个页面的相关性系数都大于threshold)与到整个互联网直径。3 系统实现具体实现过程中 ,我们采用的开发平台是Windows2 0 0 0server,开发工具是VisualC ++.NET ,后台数据库采用MSSQLServer。下载模块中与网络的交互以WINET类为基础 ,数据存储以ODBC来调用后台数据库。系统的内部功能模块主要包括 :下载模块 (Download) ,链接提取模块 (URLExtraction) ,链接过滤 (URLFilter) ,分类 (Classifica tion) ,域名解析模块 (DNSResolve)。在后台数据库中包含有 4种类型的表 :URL种子表 (URLSeeds) ,无效URL表 (InvalidURL) ,文件表 (File) ,站点表 (SiteCatalog)。系统结构如图 2所示 ,实际运行过程中我们需要首先导入一张某特定主题的分类表 ,然后向Google提交主题词进行查询 ,用返回的结果构造聚类中心同时构成最初始的URLSeeds,这样对Internet的爬行就真正开始了。Download模块从现存URL种子集中取URL ,下载网页 ,首先和下载库中的文件比较判断是否遇见过该网页 ,如果没有则DNSResolve模块将域名和IP相互解析 ,并将解析结果存入站点表。Classification模块将下载的文档与聚类中心通过余弦系数法判断其相关性 ,如果满足条件则放入文件表中 ,每个主题对应一个文件表。URLExtrac tion模块从下载文档中提取链接 ,再经由URLFilter模块进行过滤 ,并将有效链接放入URLSeeds表中 ,同时调整Site表中相应URL站点的相关性优先级。聚焦式WebCrawler经过这样不停的爬行 ,最终会在File表中形成各个主题的相关网页集合 ,同时Site表中也能反映出与各个主题最相关的网站。4 结束语本文讨论了聚集式WebCrawler进行特定主题挖掘的技术细节 ,并描述了它的整体框架和各主要功能模块以及主要的技术实现。我们希望它能够广泛地应用于数字图书馆 ,挖掘引擎等领域。目前这一系统还在不断的完善中 ,将来的工作包括 :对

1 2

问答

我要提问
关闭