论文题目nutch搜索引擎 基于HadoopHbaseNutch分布式垂直搜索引擎的研究 
                    施磊磊                     
                  S1208052                     
                           
指导教师               施化吉  教授                 
   
2013 0930
基于HadoopHbaseNutch分布式垂直搜索引擎的研究
一、课题的研究背景、目的和意义
随着互联网的飞速发展,大量网站如同雨后春笋般大批涌现,目前互联网己经发展成为一个拥有上千亿个页面和超链接的海量信息空间,而且所包含的页面仍在继续以惊人的速度增长。人们工作与生活中需要的许多信息都蕴含在信息量庞大的互联网中。互联网信息极大地便利和丰富了人们的生活,但同时也给信息的组织、查与分析等带来了极大的挑战。海量数据增加了用户对信息的阅读和选择。然而面对这么多的网页内容信息,人们怎样准确、快捷地访问到自己所需要的网页呢?在这样的形势下,人们需要借助搜索引擎来帮助他们寻自己需要的资料,因此搜索引擎应运而生。
搜索引擎是指因特网上专门提供查询服务的一类网站,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。通用的搜索引擎如Google、百度等,将很多网站信息自动整理在一个平台上,提供整合导航以及快捷的查询服务,成为互联网发展自门户网站以来的最具开创性和革命性的Web产品,围绕通用搜索引擎的Web搜索与挖掘的研究也越来越深入。与此同时,通用搜索引擎的局限性也逐渐被人们认识到,搜索结果众多导致的海量信息无序化,使得用户很难精化搜索结果,无法将查询结果以结构化的方式展现给用户。虽然Google等通用搜索引擎提供了复杂的Ranking排序机制,使得“重要”查询结果会排在搜索页面的前几页,但是由于通用搜
索引擎的数据来源分布广,而且查询词语的多义性会导致主题的不确定,用户依然难以快捷的到想要的结果。这些搜索引擎面向所有的用户,力争在返回结果上做到全面,但是往往使得用户真正需要的资料淹没在大量的无用的信息中。然而垂直搜索引擎的出现正是为了解决通用搜索引擎的这些难点的。垂直搜索引擎的核心就是集中专题领域资源的专题网络蜘蛛的设计。网络蜘蛛对网页进行预测,赋予不同的优先级,按照与专题相关度的高低进行抓取下载,以便精确集中专题资源信息。一个好的垂直搜索引擎策略既能让最终的检索列表按照网页与主题相关度的高低排列等待检索,又能避免非相关网页的下载和参与计算。这样,面向特定专业领域的搜索引擎,即垂直搜索引擎应运而生了。
垂直搜索引擎,即专业或专用搜索引擎,就是专为查询某一学科或主题的信息而产生的查询工具,专门收录某一方面、某一行业或某一主题的信息,对解决实际查询问题要比搜索引擎门户有效得多。它是针对某一特定领域、某一特定人或某一特定需求提供的有一定价值的信息和相关服务,其特点就是专、精、深,且具有行业彩。它是与通用搜索它是与通用搜索引擎截然不同的引擎类型。垂直搜索引擎专注具体、深入的纵向服务,致力于某一特定领域内信息的全面和内容的深入,对于领域外的闲杂信息不收录。
本文在这种背景下,对垂直搜索引擎的原理及关键技术进行了研究,比较了一些技术的优缺点。在此基础上对以中药为主题的垂直搜索引擎进行了研究,完成了网页爬取、建立索引和用户查询等模块的设计。最后在分布式平台的基础上,对搜索引擎的网页爬取和网页排序算法等部分做了改进,提高了垂直搜索引擎系统的效率和准确率。
一、 国内外研究现状
  搜索引擎的诞生可追溯到1990年,加拿大的麦吉尔大学,一个名叫Alan Emtage的学生制作了一个自动索引互联网上匿名FTP网站文件的程序。这个能自动索引互联网上匿名FTP网站文件的程序被人们称为ArchieArchie要从匿名服务器上下载一个文件,必须知道这个文件的所在地和匿名FTP服务器的地址以及文件所在的目录名。这是早期的具有搜索引擎性质的模型,如今,提供Archie服务的网站己经很少了。受到Archie的启发,美国明尼苏达大学的一个学生Mark McCahill,在1997年发明了一种叫“Gopher”的搜索协议。这种协议与Archie的最大不同之处在于,Archie只能索引网络上的文件,而Gopher对网页也可以索引。直到今天,网上仍有一些Gopher的服务器在运作,许多Gopher协议的狂热者仍然在维护着它们。其实Archie的原理与现代的搜索引擎已经比较接近了。它依靠开发者撰写的脚本程序自动搜索网上的文件,然后对相关信息进行索引,保存在索引库,供用户查询。
    现在,很多人习惯从互联网这个巨大的知识域中获取自己所需要的信息,但网络上的信息的数量过于庞大,内容过于庞杂,加大了人们从中获取真正需要的信息的难度。就在这种情况下产生了我们熟知的传统搜索引擎。其大致可以分为三种类型:(1)目录式搜索引擎,首先根据领域专家的分类,将网站分门别类的归类到相应的目录中,用户利用目录式搜索进行检索时,可以在预先设定的分类中依据搜索关键词查,同时也可以按照目录逐级查;(2)全文搜索引擎一般是基于统计的模型,它通过获取网络上各个网站和网页的信息,对数据进行索引以加快检索速度,在检索时通过计算查询和网页信息的相似度,按照不同的排序方法为用户提供相关结果。(3)元搜索引擎是将相关查询在多个搜索引擎中检索,通过设定的排序方式对多个搜索引擎返回结果的综合,它一般由三个部分构成,即:检索请求提交、检索接口代理、检索结果显示。
目前对搜索引擎潜在价值的开发明显不够,除了网易、新浪、搜狐等少数门户网站使用了搜索引擎外,大多数网站使用的还是基于数据库关键字匹配的简单信息检索系统。这种检索方式,效率低,检索结果准确性也不尽如人意。那些拥有搜索引擎的门户网站,其搜索引擎系统都采用了同样的体系结构集中式结构,即运行各子系统的服务器在物理上集中分布。这也导致了系统对单台服务器性能要求高,易出现故障,可扩展性差等缺点。因此传统的搜索
引擎在实际的使用过程中还存在着种种问题,互联网上各个领域的信息资源夹杂在一起,由于信息覆盖范围很大,无法对各个领域的信息进行分类,然而由于领域背景的不同,各个用户对信息的要求又是各不相同的。在这种情况下通用搜索引擎不能为用户提供个性化的领域信息服务。传统搜索引擎提供的往往是网页的地址信息,而用户想要的信息往往是网页的一小部分内容,需要用户在返回的结果中继续查,效率较低。换句话说,传统的搜索引擎提供的信息是不够精准的。所以就出现了垂直搜索引擎,垂直搜索引擎相对与传统的搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是从网页的某些非结构化然后再对网页进行主题相关度的筛选,分类存储。这种结构化的数据更便于用户查时,提高主题相关度,甚至还能进行高级数据查询和数据挖掘。用户使用google, baidu等通用搜索引擎的方式是通过关键字的方式实现的,是语义上的搜索,返回的结果倾向与知识成果,比如文章、论文、新闻等。垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。
本论文以垂直搜索引擎为研究对象,分析垂直搜索引擎的优缺点,以及它得以广泛发展的原因,并根据它的不足,进行了一些改进,最后对它进行了实际的应用。本论文主要研究内容以中药网站信息作为搜索对象,在研究过程中,重点在垂直搜索引擎的设计与优化,通过该
垂直搜索引擎的设计与研究,能够提高原来搜索中药领域信息的速度和搜索信息的准确率,节约了搜索的时间,同时为网页信息的个性化检索提供了准备。通过对传统搜索引擎的分析可以看出,传统搜索引擎所提供的服务很难满足各个领域用户的需求。因此,建立垂直搜索引擎就成为一个非常有意义的工作。
二、 研究的主要内容
(1) 面向中药领域的网络爬虫算法的定制
(2) 面向中药领域的中文分词算法的改进
(3) 网页排序算法的优化
三、 研究过程中问题与解决方法
(1)面向中药领域的网络爬虫算法的定制
1.面临的问题:
主题爬虫的设计是以普通爬虫为基础的,实际上它是对一个普通爬虫进行功能上的扩充。在对网页的整个处理过程中需要增加模块:主题确立模块、优化初始种子模块、主题相关度分析模块、排序模块。
主题确立模块用于确立爬虫面向的主题;主题相关度分析模块用来进行网页主题相关度的计算;初始种子模块用于生成面向特定主题的较好的种子站点,使爬行模块能够顺利展开爬行工作;主题相关度分析模块是主题爬虫的核心模块,它决定页面的取舍;排序模块是对页面的最终处理,给与主题相关页面的价值一个较为全面的评价排序。
主要问题:
1、 主题确立
2、 优化初始种子
3、 主题相关度分析
2.解决思路:
1)利用关键词集来确立主题,其中每个关键词拥有指定的不同权值。
2)由于主题爬虫是面向选定主题的,所以初始种子的赋予应该来自本领域,否
则爬虫无法展开爬行工作,具体做法是采用元搜索引擎搜索出有关“中药”、“人参”、“当归”等主题的的网页,从中选取质量较高的主题URL,通常由人工完成筛选,这样可信度会更高。
3)为了保证爬虫获取的网页能够尽量向主题靠拢,必须对网页进行过滤,利用向量空间模型将主题相关度较低的网页剔除,这样就不会在下一步爬行中处理该页面中的链接。因为一个页面的主题相关度如果很低,说明该网页很可能只是偶尔出现某些关键词,而页面的主题可能和指定主题几乎没有什么关系,处理其中的链接意义很小,这是主题爬虫和普通爬虫的根本区别。普通爬虫是根据设定的搜索深度,对所有链接进行处理,结果返回了大量无用的网页,而且进一步增加了工作量。