硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31

上传人:仙*** 文档编号:149442522 上传时间:2022-09-07 格式:DOC 页数:72 大小:1.92MB
收藏 版权申诉 举报 下载
硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31_第1页
第1页 / 共72页
硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31_第2页
第2页 / 共72页
硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31_第3页
第3页 / 共72页
资源描述:

《硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31》由会员分享,可在线阅读,更多相关《硕士论文基于Lucene的Nutch垂直搜索引擎系统的设计与实现31(72页珍藏版)》请在装配图网上搜索。

1、学校代码: 10289分类号: 论文题目 基于Lucene的Nutch垂直搜索引擎系统的设计与实现 姓 名欧阳丽娜 江苏科技大学密 级: 学 号: (宋体小四)硕 士 学 位 论 文 (工程硕士) 基于Lucene的Nutch垂直搜索引擎系统的设计与实现 研究生姓名 导师姓名 申请学位类别 工程硕士 学位授予单位 学科专业 计算机 论文提交日期 20 年 月 日 研究方向 论文答辩日期 20 年 6 月 12 日 答辩委员会主席 评 阅 人 20 年 月 日摘 要现代互联网技术的更新换代以及人类对信息技术坚持不懈地追求,促使世界上每个国家都在进行史无前例的科技革命。一个国家的发展需要信息技术,

2、一个公司的发展需要信息技术,生活中的每个人也同样需要不断变革与发展的信息技术。同时互联网上的各种信息每天都在迅速增长着,互联网已经成为人们信息最重要的来源。信息技术的不断发展必然带来信息技术的爆炸性增长。如此海量的信息资源聚集必然导致用户获取有效信息的难度增加以及用户不需要的垃圾信息量的增加。就这样,能够快速准确地获取有用信息的工具即搜索引擎就这样诞生了。然而,随着互联网信息多元化的进一步发展,传统的搜索引擎系统爬虫需要爬取、索引和进行查询的网页内容急剧增加,因此,通常会出现这样的一种情况,我们用户不得不在海量的无关信息中困难地寻找自己所需要的信息。目前,对搜索引擎系统的主要关注点转向应该怎样

3、快速、准确地让用户能够找到对自己有用的信息。人们对得到的专业领域相关信息资源的实时性、针对性和准确性等方面有了更加严格的要求。鉴于此,垂直搜索引擎就这样诞生了。垂直搜索引擎系统是一种面向特定专业、特定领域的分类比较细致、精确、更新比较及时的搜索引擎。随着互联网上信息的爆炸式增长以及信息多元化的快速发展,垂直搜索引擎系统正成为研究热点和发展趋势。本文对面向手机数码领域的垂直搜索引擎系统的关键技术进行了研究,并提出了一种基于Lucene的面向手机数码领域的垂直搜索引擎系统的解决方案,研究、设计并实现了面向手机数码领域的垂直搜索引擎系统。本文的主要写作过程如下:首先,介绍搜索引擎的历史发展情况和研究

4、的背景,同时阐述了本文的研究内容和各个章节的安排。然后介绍搜索引擎的关键技术,同时分析了搜索引擎和垂直搜索引擎的工作原理以及各自的差异,并详细说明垂直搜索引擎研究中需要用到的关键技术,重点对网络爬虫的信息爬取技术和用户检索结果的排序技术进行了研究与分析。接着介绍开源搜索引擎Nutch和全文检索工具包Lucene的基本概念、工作原理,同时针对全文检索工具包Lucene的检索结果排序算法的不足之处,提出了一种改进的检索结果排序算法。其次根据相关的功能需求,对基于Lucene的面向手机数码领域的垂直搜索引擎系统的各个功能模块进行详细的分析与设计。同时利用垂直搜索引擎系统的开发环境Linux和开发工具

5、Cygwin、Tomcat、Ant、Luke,同时使用Java语言编程实现系统中的相关算法和模块的具体功能。详细介绍了基于Lucene的Nutch垂直搜索引擎系统的具体实现过程。并对系统运行情况和结果进行了相关的展示。最后,对论文的各项工作进行了总结,并指出了今后发展方向和下一步的研究工作,以便后续不断更新和完善。关键词: Lucene ;Nutch ;垂直搜索引擎;爬虫AbstractModern Internet technology upgrading of information technology and human perseverance in pursuit , prompt

6、ing every country in the world are conducting an unprecedented technological revolution . A countrys development needs of information technology , a companys development needs of information technology, the life of every people also need to constantly change and development of information technology

7、 . Meanwhile all kinds of information on the Internet are growing rapidly every day , the Internet has become the most important source of information .Continuous development of information technology will inevitably bring the explosive growth of information technology. So gather vast amounts of inf

8、ormation resources will inevitably lead to the difficulty of users to access useful information and an increase in the amount of information users to unwanted junk . Thus , it is possible to obtain useful information quickly and accurately search engine tool that was born .However, with the further

9、development of a wide range of information on the Internet , traditional search engine crawlers require crawling , indexing and query a sharp increase in web content , so often there will be such a situation , we have to mass -independent user information difficult to find the information they need

10、. Currently, the main focus should turn to search engines what the system quickly and accurately so that users can find useful information on their own . People timeliness , relevance and accuracy of the other aspects of professional fields related to information resources have more stringent requir

11、ements . In view of this , the vertical search engine was born .System is a vertical search engine for specific professional categories in specific areas more detailed, accurate , and timely updates comparison search engine . With the explosive growth of information on the Internet and the rapid dev

12、elopment of a wide range of information , the vertical search engine is becoming a hot research and development trends .In this paper, the key areas for mobile digital technology vertical search engine system is studied and proposed a vertical search engine for mobile phones based on Lucene field of

13、 digital solutions , research, design and implement the digital field for mobile phones vertical search engine system .The main process of writing the paper is as follows :Firstly, it introduces the history and background of the development of the study of search engines, and sets out the content an

14、d the various chapters of this paper .Then introduces the key technologies of search engines, while analyzing the working principle of search engines and vertical search engines as well as their differences , and details key technology vertical search engines need to use research , focusing on the n

15、etwork crawling reptiles of information technology and user search results sorting techniques were studied and analyzed.Then introduced Nutch open source search engine and full-text retrieval toolkit Lucene s basic concept , principle, while the package Lucene search results ranking algorithm inadeq

16、uate for full-text search tool , an improved search results ranking algorithm .Secondly, according to the relevant functional requirements for various functional modules for mobile phones based on Lucene field of digital vertical search engine for detailed system analysis and design . While taking a

17、dvantage of vertical search engine system development environment for Linux and development tools Cygwin, Tomcat, Ant, Luke, while using the Java programming language to achieve specific functions of the system of algorithms and modules. Details of the implementation process based on Lucene Nutch ve

18、rtical search engine system. The operation of the system and the results were related to the show.Finally, the paper summarizes the work and points out the future direction of development and further research work in order to follow constantly updated and improved.Keywords:Lucene ;Nutch ;Vertical Se

19、arch Engine;Crawlervii- vii -目 录摘 要IIABSTRACTIV第一章前言11.1 课题的研究背景11.2 研究意义和研究现状21.3 本文的研究内容41.4 本文的组织结构5第二章 搜索引擎的关键技术62.1 搜索引擎的基本架构62.2 垂直搜索引擎82.2.1 垂直搜索引擎定义82.2.2 垂直搜索引擎特点82.2.3 垂直搜索引擎优势92.3 网络爬虫92.4 主题网络爬虫技术研究102.4.1 主题网络爬虫工作原理及关键技术概述102.4.2 主题网络爬虫结构模型112.5 中文分词122.5.1基于字符串匹配的分词方法142.5.2基于统计的分词方法15

20、2.5.3基于理解的分词方法152.6 网页相关性排序152.6.1 向量空间模型(VSM)152.6.2 搜索引擎的网页结果排序17第三章 开源搜索引擎NUTCH193.1搜索引擎工具包Lucene193.1.1 Lucene简介193.1.2 Lucene与Nutch的关系193.1.3 Lucene的结构203.1.4 Lucene的使用213.1.5 Lucene的评分公式243.1.6 Lucene的搜索结果排序253.2 Lucene的搜索结果排序算法的改进273.3 Nutch的介绍283.4小结29第四章 基于LUCENE的NUTCH垂直搜索引擎系统总体设计304.1系统体系结

21、构304.1.1信息抓取部分314.1.2信息预处理部分314.1.3查询服务部分324.2系统用例模型334.2.1角色的确定334.2.2创建用例334.3系统动态模型354.4系统整体工作说明384.4.1系统整体工作图解384.4.2系统总体工作流程描述384.5主题过滤说明394.5.1主题过滤的研究现状394.5.2主题过滤的评估简介404.5.3摘要分析41第五章 基于LUCENE的NUTCH垂直搜索引擎系统详细设计与实现425.1开发环境介绍425.2 Nutch主题网络爬虫模块的设计与实现425.2.1 Nutch采集策略425.2.2 Nutch数据采集实现435.3分词模

22、块的设计与实现455.4查询模块的设计与实现455.5 Nutch垂直搜索引擎的详细配置与实现过程465.5.1 第一部分 网页内容的下载465.5.2 第二部分 网页内容的搜索50第六章 结论与展望54参考文献56致谢58第一章 前言22.11.1 课题的研究背景现代互联网技术的更新换代以及人类对信息技术坚持不懈地追求,促使世界上每个国家都在进行史无前例的科技革命。一个国家的发展需要信息技术,一个公司的发展需要信息技术,生活中的每个人也同样需要不断变革与发展的信息技术。同时互联网上的各种信息每天都在迅速增长着,互联网已经成为人们信息最重要的来源。信息技术的不断发展必然带来信息技术的爆炸性增长

23、。如此海量的信息资源聚集必然导致用户获取有效信息的难度增加以及用户不需要的垃圾信息量的增加。就这样,能够快速准确地获取有用信息的工具即搜索引擎就这样诞生了。搜索引擎是信息检索领域的工具,所以我们对搜索引擎的研究就属于信息检索领域的一个分支。表1-1列举了搜索引擎诞生以及发展的一些历史。表1-1 搜索引擎的诞生历史1990年麦吉尔大学学生发明Archie只是一个可以搜索的FTP文件名列表,用户通过输入精确的文件名来查询哪个FTP站点可以获得该文件1993年Martin Koster发明了ALIWEBArchie的HTTP版本,靠主动提交信息来建立链接索引,类似Yahoo!1993年斯坦福大学学生

24、发明Excite分析字词关系,以对互联网上信息做更有效的搜索1997年卡耐基梅隆大学的Michael Mauldin创建了Lycos第一次在索引程序中接入了spider程序;除相关度排序外,还提供了前缀匹配和字符相近限制;第一次使用了网页自动摘要1998年Google诞生Google在Pagerank、动态摘要、网页快照、DailyRefresh、多文档格式支持、地图、股票、词典、寻人等集成搜索、多语言支持、用户界面等功能上带来革新然而,随着互联网信息多元化的进一步发展,传统的搜索引擎系统爬虫需要爬取、索引和进行查询的网页内容急剧增加,因此,通常会出现这样的一种情况,我们用户不得不在海量的无关

25、信息中困难地寻找自己所需要的信息。目前,对搜索引擎系统的主要关注点转向应该怎样快速、准确地让用户能够找到对自己有用的信息。人们对得到的专业领域相关信息资源的实时性、针对性和准确性等方面有了更加严格的要求。鉴于此,垂直搜索引擎就这样诞生了。1.2 研究意义和研究现状搜索引擎极大的方便了用户在互联网上搜索自己需要的信息资源。但是,随着科学技术的进一步发展以及用户日益显著的个性化需求,传统意义上的通用搜索引擎系统已经很难满足专业领域用户的快速、及时响应的查询需求。并且,通用的搜索引擎系统也很难及时地更新互联网上的信息。面对以上通用搜索引擎系统出现的这个问题,我们就需要设计出一种垂直搜索引擎系统,它专

26、注于专门的领域,同时对该领域的信息全面深入挖掘,并且系统的更新要比较及时。这种面向专门领域进行搜索的垂直搜索技术在最近几年中已经变得相当的热门。开源搜索引擎的研究具有非常重大的意义。首先,现实生活中只有很少的一部分人能够了解、接触和研究到真正的搜索引擎,绝大部分的人都不懂得专业的搜索引擎技术,也根本无法了解到这方面的技术和知识,因此这个时候,开源的搜索引擎系统就成为人们在学习和研究搜索引擎系统技术时一个相当不错的学习途径和方法。同时,开源搜索引擎系统能够吸引更多有能力、有本事的人贡献出自己的才能,这肯定会推动搜索引擎技术的进一步发展 。开源搜索引擎就是在这样一种急切的需求中诞生出来的,同时经过

27、很多人的努力与贡献,已经在搜索引擎领域取得了巨大的进步,收获丰硕。然而在开源搜索引擎这个领域中最出名、功能最强大的就是Dog Cutting发明的Nutch家族,它是以Lucene全文索引工具包为基础进行索引和搜索的Web搜索引擎框架。通过对Nutch进行配置,就可以实现许多非常强大的功能,此外它使用Java语言进行开发,所以具有跨平台应用的优点,作为网络爬虫和lucene索引器的结合,功能上来说极其强悍,每个月数以亿计的网页爬取量,网页搜索的高速,开源的功能剖析都是我们选择研究它的关键因素。此外基于 Lucene全文索引工具包的索引和检索功能、基于底层云计算平台Hadoop的分布式编程模型和

28、基于云存储的分布式文件系统,都能够让我们用户可以快速高效地把海量网页数据在数百台乃至数千数万台计算机上运行起来,并且能够在短时间内完成海量数据的计算与分析。总的来讲,研究开源的搜索引擎是很有实际应用意义和价值的。国内的研究者们对搜索引擎系统的研究起步比较晚,然而在搜索引擎领域中仍然取得了非常多的成绩。例如北京大学的研究者们研究开发出了“天网”搜索引擎系统,同时在全球的搜索引擎行业中,中国的百度已然成为了世界上使用人数最多的中文搜索引擎。现代搜索引擎按照信息的组织方式和服务的提供方式将搜索引擎分成以下三类。(1) 目录式搜索引擎目录式搜索引擎是采用人工发现有用信息,同时依靠研究人员自己所拥有的知

29、识对发现的有用信息进行人工分类,然后提取出网页信息中的主题词,接着根据关键字进行索引,最后生成相关的目录。我们用户可以通过两种方法来使用:一种是浏览式查询。它是从最高层的根目录开始搜索,然后沿着目录树逐层逐渐的深入,直到用户找到自己所需要的信息为止;另一种是通过用户输入的关键词来进行检索。这一类搜索引擎的优点是检索效率比较高,但也有其不足之处,就是建立索引的效率很低,同时网站信息更新的速度也比较慢。著名的目录式搜索引擎有雅虎和新浪等。(2) 全文搜索引擎 全文搜索引擎的关键技术是一个被叫做网络爬虫(Spider)或网络网络爬虫(Robot)的程序,它是根据自己的特定搜索策略和相应的网络协议,自

30、动地从互联网上爬取网页信息,然后建立索引。并定期采用一定的方法对索引库进行更新,从而可以保证本地索引库与互联网上信息的实时有效对应。这类搜索引擎的优点就是依靠网络爬虫程序自动地爬取、维护和更新网页信息,从而能够将目录式搜索引擎中的工作人员解放出来,同时它的索引库可以很大,和目录是搜索引擎相比较实时性更强。著名的全文搜索引擎有Google,百度等。(3) 元搜索引擎元搜索引擎也叫做集合式搜索引擎,顾名思义,它能够同时管理多个搜索引擎,给用户提供统一的检索接口。所以元搜索引擎可以理解为一个由很多的搜索引擎系统组建而成的搜索引擎系统群。通常,元搜索引擎有两种工作方式。一种是并行式元搜索引擎或者叫做分

31、布式元搜索引擎,另外一种是单机式元搜索引擎,并行式元搜索引擎在用户提交查询词后,能够同时将用户提交的查询词请求发给多个搜索引擎系统,然后在接收到各个搜索引擎返回的结果列表后,根据自己特定的网页排序算法进行重新排序,最后将排序的结果页面返回给用户;单机式元搜索引擎只能提供给用户一个搜索引擎的排序结果页面列表,最后只能由用户自己来选择使用哪个搜索引擎进行查询,所以可以说它是基于搜索引擎的搜索引擎,可以用来帮助用户选择使用哪种搜索引擎。虽然现在的搜索引擎分类很多,但是他们的基本思想和原理都是相同的。图1-1展示了搜索引擎的基本原理。首先是网络爬虫程序在互联网上进行抓取目标站点的信息,然后将抓取下来的

32、信息进行分析处理,分词和索引,并按照一定的数据结构存储到本地网页索引数据库,最后用户通过自己的客户端浏览从这些被索引的数据中检索出自己想要的信息。信息检索信息存储分析处理信息搜集图1-1 搜索引擎基本原理目前,手机数码领域的应用越来越广,产品的种类也越来越丰富,已经变成人们日常生活中不可或缺的一部分,然而我们用户使用通用搜索引擎系统,以手机数码产品的品牌名、系列等作为关键字来搜索相关产品时,网站返回给用户的结果中有大量的无用信息,很难帮助用户进行了解和选择。本文针对这个实际问题,根据用户搜索手机数码产品相关信息的需求,提出并设计了一个基于Lucene的面向手机数码领域的垂直搜索引擎系统,最后根

33、据设计进行相关模块功能以及整个系统功能的实现。1.3 本文的研究内容本文针对手机数码领域,以手机数码的网站作为本文主题爬虫爬取的对象,最后通过分析、研究和设计实现了基于Lucene的Nutch垂直搜索引擎系统。本文的研究内容包括:(1)面向手机数码产品领域网络爬虫的设计垂直搜索引擎系统的网页爬取和通用搜索引擎系统是有很大差别的,本文依照手机数码领域垂直搜索引擎系统的特点,设计了相应的主题网络爬虫。(2)改进了Lucene索引器的网页排序算法由于垂直搜索引擎最终返回的检索网页结果对用户来说是至关重要的,所以怎样能够从多的网页信息集合中把最重要的用户真正想要的结果页面选择出来排在网页集合的前面,是

34、我们研究和设计垂直搜索引擎系统的关键问题之一。经过改进后的网页排序算法除了考虑到原来Lucene自带的词频因素外,同时还考虑到:网页文档的链接信息、正文大小以及用户查询关键词在文档中位置的情况等相关因素。(3)面向手机数码领域垂直搜索引擎系统的设计通过详细分析面向手机数码领域的垂直搜索引擎系统所需要的关键技术,包括手机数码领域网页信息的搜索和爬取、对爬取到的网页信息的处理、建立网页信息的索引库和提供给用户进行检索,最后给出了该垂直搜索引擎系统的总体设计结构以及各个功能模块的模块设计。(4)面向手机数码领域的垂直搜索引擎系统的实现最后在基于Linux+Nutch+Lucene+Tomcat的开发

35、环境与技术支持下实现了面向手机数码领域的垂直搜索引擎系统设计的所有功能。1.4 本文的组织结构本文各章节结构安排如下:第一章主要介绍搜索引擎的历史发展情况和研究的背景,同时阐述了本文的研究内容和各个章节的安排。第二章介绍搜索引擎的关键技术,同时分析了搜索引擎和垂直搜索引擎的工作原理以及各自的差异,并详细说明垂直搜索引擎研究中需要用到的关键技术,重点对网络爬虫的信息爬取技术和用户检索结果的排序技术进行了研究与分析。第三章介绍开源搜索引擎Nutch和全文检索工具包Lucene的基本概念、工作原理,同时针对全文检索工具包Lucene的检索结果排序算法的不足之处,提出了一种改进的检索结果排序算法。第四

36、章根据相关的功能需求,对基于Lucene的面向手机数码领域的垂直搜索引擎系统的各个功能模块进行详细的分析与设计。第五章利用垂直搜索引擎系统的开发环境Linux和开发工具Cygwin、Tomcat,同时使用Java语言编程实现系统中的相关算法和模块的具体功能。第二章 搜索引擎的关键技术2.1 搜索引擎的基本架构不一样的搜索引擎采用不一样的架构,会有一定程度的差异,但是他们的基本功能模块是相似的。如图2-1-1给我们展示了一个通用搜索引擎基本工作原理的架构。索引库是下载的网页存储的地方,采用倒排索引之后,这里的网页信息库已经变成了倒排结构。通常,倒排索引技术就是通过将DocumentWord的初始

37、状态结构(如图2-1-2所示)转变为WordDocument的倒排索引结构(如图2-1-3所示)。全文搜索引擎采用这样的倒排索引结构的好处就是可以根据对Word的搜索很快就能定位到相应的是哪个Document,例如:当在搜索引擎中搜索“我们”的时候,返回的结果中应该会出现Document1和Document21。索引器(Indexer)是用于生成索引的一个程序模块,我们将处理过的大量网页信息包装后,转变成相应的文档,然后交给索引器来进行索引,索引器就会在索引库中建立该文档的一个索引,这个结构也就是倒排索引结构2。检索器(Searcher)是用户在使用搜索引擎进行信息查询时的一个程序模块。当用户

38、提交自己查询关键词给检索器客户端以后,检索器首先对用户提交的查询关键词进行分词等处理操作,然后生成相应的Query去网页信息索引库中进行关键词匹配,最后才将查询匹配得到的网页结果以一定的列表排序格式返回给用户3。索引库、索引器、检索器是搜索引擎的三大核心程序模块。我们研究者可以利用这三大程序模块来建立一个垂直搜索引擎4。本文利用到的Lucene 全文索引工具包的直接调用就等同于建立了一个搜索引擎,Lucene本身就可以建立索引和进行相关搜索,不过这样简单的搜索引擎只有开发人员才能够熟练使用,用户使用起来将会非常的困难,而且对各种网络上现有的文件(MS Word、MS Excel、HTML等)处

39、理起来很不方便,所以想要搭建真正用户能够直接使用的垂直搜索引擎还需要其他程序模块的功能支持。图2-1-1 搜索引擎基本架构文档解析模块用于解析爬取到的特定格式的文档,通过提取出文档中的文字信息,同时建立文档对象,然后再交给索引器进行处理,网页处理模块用于对Crawler获取的网页信息进行解析,提取出文字信息,然后建立文档对象后再交给索引器进行处理5 6。用户查询界面是用户通过向搜索引擎检索端输入自己的关键词时才使用到,它考虑到用户的使用习惯,从用户出发,提供方便、优化、快捷的查询界面,并将最终搜索引擎查询的结果能够按照用户的要求呈现给用户6。我们是中国人文档1文档2中国很我们美丽图2-1-2

40、文档的初始结构我们中国文档2文档1图2-1-3 文档的倒排结构2.2 垂直搜索引擎2.2.1 垂直搜索引擎定义垂直搜索引擎也叫专业搜索引擎,它是针对某一个特定领域或行业的主题搜索引擎,是通用搜索引擎功能上的细分和扩展7。和通用搜索引擎相比,垂直搜索引擎的优点是查询准确,响应速度快。它是针对通用搜索引擎的信息量很大、查询很不准确、专业深度不够等问题提出来的一种新的搜索引擎模式,主要目的在于为某一专业领域、某类人群或某个特定的需求提供的相关的信息和服务。它的特点就是专、精、深且具有行业色彩。2.2.2 垂直搜索引擎特点垂直搜索引擎和通用搜索引擎的最大区别是对网页信息的处理方式不同,垂直搜索引擎对网

41、页数据进行了结构化抽取和整理。也就是将网页中的非结构化数据抽取整理出来,构成特定的结构化信息数据。在整个过程中,网页数据由非结构化数据转变成结构化数据,最后再经过深度加工处理之后以非结构化的方式或结构化的数据返回给用户。总之一句话,垂直搜索引擎是针对某个特定领域或行业,其主要特点8如下:(1) 垂直搜索引擎中的主题网络爬虫爬取到的网页数据主要来源于搜索引擎关注的专门的网站。(2) 垂直搜索引擎中的主题网络爬虫爬取到的网页数据主要都是结构化数据和元数据。(3) 垂直搜索引擎的搜索策略是基于结构化数据和元数据的。2.2.3 垂直搜索引擎优势和通用搜索引擎相比,垂直搜索引擎的优势表现在,通用搜索引擎

42、主要是将爬取到的网页信息存放到本地数据库。然而垂直搜索引擎主要是以网页的方式返回给用户,通用搜索引擎主要是利用一个网络爬虫程序到互联网上进行随机爬取,一般是按照某个特定的时间周期进行二次爬取,以便于更新网页库;垂直搜索引擎同样有一个网络爬虫程序,但是它的网络爬虫程序只是在一些特定的网站上进行爬取,并不会对网页上的每一个超链接都感兴趣,相对来说,垂直搜索引擎的信息收录范围大大缩小了,但并不意味着网页内容的缩小。和通用的搜索引擎相比,垂直搜索引擎的查全率和查准率都提高了很多,因为它只是关注了一小部分特定的网站,可以做到内容上很齐全,准确率很高。2.3 网络爬虫网络爬虫(Web Crawler)也称

43、作网络蜘蛛,是搜索引擎的核心功能模块之一,它的功能是从各个网站上获取网页文件(这个过程叫网页爬取)并提取出有用的文字信息,然后分词、交给索引器建立索引7。网络爬虫的爬行策略主要有广度优先策略和深度优先策略9。广度优先策略首先爬行第一层的网页,将第一层网页解析所得的发出链接存起来,待第一层链接都处理完毕,接着依次处理第二层的链接,如此一层一层地进行下去。深度优先策略从第一层链接中选取一个,抓取其指向网页并解析出发出链接,然后从发出链接中选出一个继续前述过程,直到达到一定得限制条件后,重返上层选取新的链接进行爬行。两种策略如图2-3所示。图2-3 广度优先与深度优先策略对比2.4 主题网络爬虫技术

44、研究2.4.1 主题网络爬虫工作原理及关键技术概述通用搜索引擎的信息搜集任务主要是超链接URL抓取的过程。通用的网络爬虫进入若干初始的种子网页中,爬取信息,同时新的 URL链接不断的被放在队列中等待被抓取,直到达到预期设定的阈值或者URL列表为空时停止,它的缺点是网页信息爬取的不确定性。相比较而言,主题网络爬虫则具有非常明显的优势,在主题网络爬虫中引入了智能分析步骤,也就是在 URL 抓取之前进行主题的筛选,将与主题相关的URL放入待抓取的URL队列中,与主题不相关的URL则去除,不断重复这个过程,直到达到设定的阈值或者URL列表为空为止,这样的话既可以缩小爬取的范围,又可以将用户查询所需的专

45、业性很强的关键词和相关的结果保存下来,为以后相同或相似的搜索提供参考,并且能够保证信息的及时更新信息,也改善了之前比较容易出现的空链接、死链接现象。通用搜索引擎与垂直搜索引擎的爬虫过程对比流程如图 2.4.1 所示:图 2.4.1 通用网络爬虫和主题网络爬虫的基本工作原理架构流程对比与通用搜索引擎相比,垂直(Vertical)搜索引擎主要有三个方面的突破:一是主体网页目标的阐述和定义,二是URL主题相关度的判定算法,三是主题爬虫的搜索策略。在以上三个关键性技术问题中,URL主题的相关度算法和主题爬虫的搜索策略是垂直搜索引擎的核心技术。2.4.2 主题网络爬虫结构模型主题网络爬虫是以普通网络爬虫

46、为基础的,是对普通网络爬虫功能的提升和改进。其中主要的改进部分为以下三个方面,如图 2.4.2 所示:图 2.4.2 主题网络爬虫的工作原理和基本架构(1)采集网页信息模块:此模块在超链接(URL)分析模块与页面相关度分析模块之间起到协调的作用。同时也是网络爬虫正常运行的必要组成部分。第一步,网络爬虫采集模块负责将网页的信息采集集中,此过程中爬行顺序和方法都决定于链接分析部分。第二步,网页的相关度分析模块会将这些网页信息进行分析处理。也就是说采集模块是网络爬虫模块与页面相关度分析模块之间的媒介,起到了平衡调节的重要作用。(2)链接分析模块:这个模块是整个垂直爬虫过程的指挥中心,相当于人类的大脑

47、。一方面将爬行采集的数据进行相关度分析后选择合适的爬虫策略,从而分析出爬虫的顺序与信息的优先级取舍。也就是说,爬行的策略与无关链接与潜在链接的删除都是由链接分析模块分析得到的。它的功能完善与否直接对整个爬虫过程起到了至 关重要的作用。(3)相关度分析模块:此模块在这个系统过程中,起到了筛选的作用。相当于一个类别提取器。开始时,根据用户的关键搜索词汇在网页信息中进行主题相关度分析,如果被该模块认定为是与主题相关的,则该文本所在的网页被提交给页面相关度分析模块,反之则被剔除。被提交到网页相关度分析模块的文本,经分析,若主题相关度大于提前预设的一个初始值,则该网页在被储存于本地的信息磁盘中。如达不到

48、此初始值,则别舍弃。2.5 中文分词垂直搜索引擎返回给用户的搜索结果的准确性,很大程度上是依赖采用的中文分词技术。早期的搜索引擎当用户搜索“和服”的时候,类似于包含技术和服务之类的结果就会返回给用户,造成大量垃圾信息,而现在的搜索引擎由于采用了高效的中文分词技术,则避免了这一现象的出现。现有的分词算法可分为三大类5:基于字符串匹配的分词方法;基于统计的分词方法;基于理解的分词方法;其中,字符串匹配的分词方法(机械分词方法)需要分词词典的支持,具有效率高,算法简单的特点,但难以排除机械切分产生的歧义,准确率较差;基于统计的分词方法根据词的频度来判断成词的概率,这种方法能有效地识别新词,时空开销大

49、,效率有限;基于理解的分词方法通过让计算机模拟人对句子的理解,达到识别词的效果,由于语言知识和语言规则过于复杂,因而这种方法尚处于研究的阶段。把中文的汉字序列切分成有意义的词,就是中文分词,所谓分词技术就是指将一个完整的句子划分成一个个Token的过程。由于索引库中的数据是一种索引结构,因此需要有一组固定的Key,又因为索引库是WordDocument的倒排结构,所以这组索引键应该是词语。这就需要将句子进行相应的切分,来获得单个的词语。尽管每一种语言都要进行分词,但是英文可以利用空格来作为天然的分隔符。然而对于中文来说,分词的情况却要复杂的多。中文分词对于中文搜索引擎领域来说极其的重要。首先,

50、中文分词会影响用户查询效率。假如有如下的四篇文档:doc1(中国在亚洲)doc2(心中有梦想)doc3(中国在发展)doc4(中心大街)我们分别使用单字分词(如图2-3-1所示)和非单字分词(如图2-3-2所示)来建立索引。当用户输入“中国”作为查询词时,对于单字分词将经历以下过程。(1)“中国”分词为“中”和“国”。(2)查索引表得包含“中”字的文档集合为A(doc1、doc2、doc3、doc4),包含。国。字的文档有B(doc1、doc3)。(3)将Document A与Document B相与得含有“中国”的Document集合称为C(doc1、doc3)。 而采用非单字的分词方式一步

51、就可以查得结果,可见,中文分词方式将影响到查询的效率。doc1(中国在亚洲)doc2(心中有梦想)doc3(中国在发展)doc4(中心大街)中国在心亚梦大图2-3-1 单字分词效果doc1(中国在亚洲)doc2(心中有梦想)doc3(中国在发展)doc4(中心大街)中国亚洲梦想 图2-3-2 非单字分词效果2.5.1基于字符串匹配的分词方法基于字符串匹配的分词方法是按照一定的策略将待切分的汉字串与分词词库中的词条进行匹配,若在词库中找到相应的词条,则匹配成功。目前实用的分词系统基本上都是以基于字符串匹配的分词方法为主,辅之以少量的词法、语法和语义信息,根据扫描的方向不同,基于字符串匹配的分词方

52、法可分为正向匹配分词方法和逆向匹配分词方法;按照优先匹配的长度不同,又可分为最大匹配分词方法和最小匹配分词方法。总的来说,机械分词方法中共有三种基本的分词方法,分别是最大正向匹配法、最大逆向匹配法和逐词遍历法 。2.5.2基于统计的分词方法基于统计的分词方法也叫统计取词方法或无词典分词方法。它基于这样一个思想:在上下文中,两个(或多个)字相邻出现的频率越高,那么他们成词的概率就越高。不过这样的分词方式有其弱点,有许多字相邻频率很高,但是未必成词,例如“我的”。所以基于统计的分词方法更多地用于新词识别,以作为词典分词方法的补充。2.5.3基于理解的分词方法基于理解的分词方法模拟人对语言的理解来进

53、行分词。其基本思想是在分词的同时引入句法信息和语义信息来处理歧义。由于汉语的语义的复杂性和汉语句法的多变性,该方法目前还处于研究阶段。2.6 网页相关性排序2.6.1 向量空间模型(VSM)向量空间模型由Gerald Salton提出,该模型用于计算文档与查询的相关程度,仅仅用于普通文本。对于网页与查询的相关度需引入新的方法来计算。假设词典包含N个词语,那么词典集合T可以表示为T = t1, t2, ,tN其中ti为词项,即每个词。这时文档d和查询q可以表示为d=q =其中mi为T中词项ti在d中的出现频率(即词频),ni为T中词项ti在q中出现频率。这样,文档与查询的相关度就可以表示为d与q

54、的。相似程度。,通常d与q的夹角越小,表示两个向量越相近,所以d与q的相似度R(d,q)为R(d,q)=cos(d,q)下面使用2维词典空间(即N为2)来直观地看看如何用向量空间模型来比较文档与查询相关度。假设词典空间T=足球,爱好d1、d2、q为d1=d2=q =即文档d1、d2、q中。足球。分别出现2、4、1次,爱好分别出现2、2、2次。d1、d2、q在词典空间中的曲线如图2-7所示。由于d1与q的夹角小于d2和q的夹角,我们可因认为对于q,d1的相关度高于d2。 qd1d2爱好足球图2-4-1 二维词典空间中d,q关系向量空间模型很容易从直观上理解,但是在实际使用过程中还要在此基础上作出

55、更多的处理。词频通常将所有原始词频除以一个共同的分母,将词频约束到一个范围内(如大于0小于1),这叫词频的规格化处理。这样d=可以变为d=其中wi=mi/mj,也就是将所有词频除以所有词频的和,得到规格化的词频。这个经过规格化的词频必定在0和1之间。2.6.2 搜索引擎的网页结果排序对于搜索引擎而言,最终返回给用户的网页结果排序非常的重要。它不仅仅要考虑到用户的查询关键词与查询文档之间的关系,此外还需要考虑到用户的查询关键词在网页文件中的位置、链接和被连接关系。(1)HTML页面中有很多的标签,这些标签有的是表明title的,有的是表明布局、大小、是否粗体的。一个网页的主题词肯定比其他词重要,

56、它应该被重视;字号较大的字应该比字号较小的字更加重要;粗体字应该比非粗体字更加重要。基于上述原则,我们设计出不同标签表示的字的权值表(如表2-4-2所示),这些权值可以在建立索引的时候反应到词语所在域(field)上。这里主要说明一种思路,因此并不包含全部标签,同时这里的权重已经规格化,实际实现中,我们可以暂时不规格化,等到加入词频,链接权重等因素后再规格化。表2-4-2 HTML标签权重表标签wt标签wt0.40.040.040.040.120.160.080.120.040.080.020.040.010.02(2)根据“高质量网页链接过来的网页,必定是高质量的网页”这种思想,网页的重要性

57、与链接该网页的父网页的重要性有关。Google的PageRank算法就是基于这样的思想。 网页的出度是指有该网页发出至其它网页的链接的数目,网页的入度是指指向该网页的网页的数目。PageRank算法认为,其它网页对本网页的链接是其它网页对本网页的。投票。,某个网页的入度越大(也就是被链接次数多),票数也就越多,则该网页就越重要;同时,高质量的网页投来的票对本网页质量的肯定作用较大,其对本网页重要性影响权重也应更大些。 公式2-4-2用于计算页面j的PageRank值。 Wj=(1-d)+dli,jWi/ni (2-4-2)其中Wj表示页面j的PageRank值,li,j表示页面i到页面j是否有

58、链接,ni代表页面i的出度,d为沿着链接访问网页的概率。图2-4-2 PageRank算法示意图图2-4-2直观地展示了PageRank算法,这里d取为1。Page1的PR值为100,出度为2,所以由Page1发出的每个链接获得PR为50,同理Page3每个链接获得PR值为3。Page2的入度为2,两个链接分别带来PR值为50和3,所以Page2的PR值为53,同理Page4的PR值为3。在搜索引擎真正计算PR值的时候没有这么简单,现实生活中的网络中各种各样的链接非常复杂,每个网页会先获得一个初始PR值,然后再根据网页的链接关系,递归地使用PageRank算法进行求PR值。第三章 开源搜索引擎

59、Nutch3.1搜索引擎工具包Lucene3.1.1 Lucene简介Lucene是Apache软件基金会Jakarta项目组的一个子项目,是一个开放源代码的全文检索工具包。它不是一个完整搜索引擎,仅提供了构建搜索引擎的基础架构,我们可以通过Lucene官网站13下载该工具包,然后利用这个基础架构快速地开发出搜索引擎。Lucene的原作者是Doug Cutting,一位资深的全文检索专家,最初将Lucene发表在自己的个人主页上,2001年将Lucene捐献给Apache,使得Lucene成为Jakarta的一个子项目。Lucene经过多年的发展,已经成为最流行的Java开源全文检索工具包。L

60、ucene已经在诸多全文检索领域取得成功。例如,Eclipse的帮助文档就使用了Lucene来作为检索引擎。3.1.2 Lucene与Nutch的关系Nutch是对Lucene工具包的扩展,Lucene是Nutch的一部分。Nutch是在Lucene的基础上进行包装,成为一个企业级搜索服务器开发框架。我们可以从其官方网站14下载Nutch项目文件,然后利用它快速开发自己的搜索引擎服务器。Nutch与Lucene的主要区别体现在:Nutch更加贴近实际应用,是Lucene在面向企业搜索服务领域的扩展;Nutch的缓存等机制使全文检索获得性能上的提升;通过配置文件的开发使得Nutch具有良好的扩展

61、性;Nutch提供了用户友好的管理界面与查询结果界面。Nutch的与Lucene的关系如图3-1-2所示。索引库Lucene索引检索缓存配置管理主控Nutch.site.xmlNutch.default.site.xml-Nutch图3-1-2 Nutch-Lucene关系图3.1.3 Lucene的结构图3-1-3 Lucene的结构图Lucene具有清晰的包结构和严密的逻辑,每个包就是一个模块,正是这个严密的结构提供了稳定的基础来构建稳定的搜索引擎。Lucene的结构如图3-1-3所示,每个包的功能见表3-1-3。表3-1-3 Lucene包结构功能表7org.apache.lucene.analysis语言分析,主要在建立索引和检索时对文本进行分词org.apache.lucene.document文档结构(包含Document和Field),该结构对象被用于建索引,可以对应于关系数据库的表结构org.apache.lucene.index索引管理,实现对索引的建立、读取、写入、

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!