硕士论文-基于Lucene的Nutch垂直搜索引擎系统的设计与实现31.doc_第1页
硕士论文-基于Lucene的Nutch垂直搜索引擎系统的设计与实现31.doc_第2页
硕士论文-基于Lucene的Nutch垂直搜索引擎系统的设计与实现31.doc_第3页
硕士论文-基于Lucene的Nutch垂直搜索引擎系统的设计与实现31.doc_第4页
硕士论文-基于Lucene的Nutch垂直搜索引擎系统的设计与实现31.doc_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

- i -i 学校代码: 10289 分类号: 密 级: 学 号: (宋体小四) 硕硕 士士 学学 位位 论论 文文 (工程硕士) 基于 lucene 的 nutch 垂直搜索引擎系统的设计与实现 研究生姓 名 导 师 姓名 申请学位类别 工程硕士工程硕士 学位授予单位 学 科 专业 计算机计算机 论文提交日期 2020 年年 月月 日日 研 究 方向 论文答辩日期 2020 年年 6 6 月月 1212 日日 答辩委员会主席 评 阅 人 20 年 月 日 论文题目论文题目 基于 lucene 的 nutch 垂直搜索引擎系统的设计与实现 姓 名欧阳丽娜 江苏科技大 学 - ii -ii 摘摘 要要 现代互联网技术的更新换代以及人类对信息技术坚持不懈地追求,促使世界上 每个国家都在进行史无前例的科技革命。一个国家的发展需要信息技术,一个公司 的发展需要信息技术,生活中的每个人也同样需要不断变革与发展的信息技术。同 时互联网上的各种信息每天都在迅速增长着,互联网已经成为人们信息最重要的来 源。 信息技术的不断发展必然带来信息技术的爆炸性增长。如此海量的信息资源聚 集必然导致用户获取有效信息的难度增加以及用户不需要的垃圾信息量的增加。就 这样,能够快速准确地获取有用信息的工具即搜索引擎就这样诞生了。 然而,随着互联网信息多元化的进一步发展,传统的搜索引擎系统爬虫需要爬 取、索引和进行查询的网页内容急剧增加,因此,通常会出现这样的一种情况,我 们用户不得不在海量的无关信息中困难地寻找自己所需要的信息。目前,对搜索引 擎系统的主要关注点转向应该怎样快速、准确地让用户能够找到对自己有用的信息。 人们对得到的专业领域相关信息资源的实时性、针对性和准确性等方面有了更加严 格的要求。鉴于此,垂直搜索引擎就这样诞生了。 垂直搜索引擎系统是一种面向特定专业、特定领域的分类比较细致、精确、更 新比较及时的搜索引擎。随着互联网上信息的爆炸式增长以及信息多元化的快速发 展,垂直搜索引擎系统正成为研究热点和发展趋势。 本文对面向手机数码领域的垂直搜索引擎系统的关键技术进行了研究,并提出 了一种基于 lucene 的面向手机数码领域的垂直搜索引擎系统的解决方案,研究、设 计并实现了面向手机数码领域的垂直搜索引擎系统。 本文的主要写作过程如下: 首先,介绍搜索引擎的历史发展情况和研究的背景,同时阐述了本文的研究内 容和各个章节的安排。 然后介绍搜索引擎的关键技术,同时分析了搜索引擎和垂直搜索引擎的工作原 理以及各自的差异,并详细说明垂直搜索引擎研究中需要用到的关键技术,重点对 网络爬虫的信息爬取技术和用户检索结果的排序技术进行了研究与分析。 接着介绍开源搜索引擎 nutch 和全文检索工具包 lucene 的基本概念、工作原理, - iii -iii 同时针对全文检索工具包 lucene 的检索结果排序算法的不足之处,提出了一种改进 的检索结果排序算法。 其次根据相关的功能需求,对基于 lucene 的面向手机数码领域的垂直搜索引擎 系统的各个功能模块进行详细的分析与设计。同时利用垂直搜索引擎系统的开发环 境 linux 和开发工具 cygwin、tomcat、ant、luke,同时使用 java 语言编程实现系 统中的相关算法和模块的具体功能。详细介绍了基于 lucene 的 nutch 垂直搜索引擎 系统的具体实现过程。并对系统运行情况和结果进行了相关的展示。 最后,对论文的各项工作进行了总结,并指出了今后发展方向和下一步的研究 工作,以便后续不断更新和完善。 关键词: lucene ;nutch ;垂直搜索引擎;爬虫 - iv -iv abstract modern internet technology upgrading of information technology and human perseverance in pursuit , prompting 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 . 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 information 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 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 . 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 requirements . 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 development 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 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 and 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 - v -v network 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 inadequate 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 advantage 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 vertical 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 search engine;crawler - vi -vi 目目 录录 摘摘 要要ii abstract.iv 第一章第一章前言前言1 1.1 课题的研究背景1 1.2 研究意义和研究现状.2 1.3 本文的研究内容4 1.4 本文的组织结构5 第二章 搜索引擎的关键技术.6 2.1 搜索引擎的基本架构6 2.2 垂直搜索引擎.8 2.2.1 垂直搜索引擎定义 .8 2.2.2 垂直搜索引擎特点 .8 2.2.3 垂直搜索引擎优势 .9 2.3 网络爬虫9 2.4 主题网络爬虫技术研究.10 2.4.1 主题网络爬虫工作原理及关键技术概述 .10 2.4.2 主题网络爬虫结构模型 .11 2.5 中文分词12 2.5.1 基于字符串匹配的分词方法 14 2.5.2 基于统计的分词方法 15 2.5.3 基于理解的分词方法 15 2.6 网页相关性排序15 2.6.1 向量空间模型(vsm).15 2.6.2 搜索引擎的网页结果排序 .17 第三章 开源搜索引擎 nutch19 3.1 搜索引擎工具包 lucene19 3.1.1 lucene 简介19 3.1.2 lucene 与 nutch 的关系19 3.1.3 lucene 的结构20 3.1.4 lucene 的使用21 3.1.5 lucene 的评分公式24 3.1.6 lucene 的搜索结果排序25 3.2 lucene的搜索结果排序算法的改进.27 - vii -vii 3.3 nutch的介绍 28 3.4 小结29 第四章第四章 基于基于 lucene 的的 nutch 垂直搜索引擎系统总体设计垂直搜索引擎系统总体设计30 4.1 系统体系结构.30 4.1.1 信息抓取部分 31 4.1.2 信息预处理部分 31 4.1.3 查询服务部分 32 4.2 系统用例模型.33 4.2.1 角色的确定 33 4.2.2 创建用例 33 4.3 系统动态模型.35 4.4 系统整体工作说明.38 4.4.1 系统整体工作图解 38 4.4.2 系统总体工作流程描述 38 4.5 主题过滤说明.39 4.5.1 主题过滤的研究现状 39 4.5.2 主题过滤的评估简介 40 4.5.3 摘要分析 41 第五章 基于 lucene 的 nutch 垂直搜索引擎系统详细设计与实现.42 5.1 开发环境介绍.42 5.2 nutch主题网络爬虫模块的设计与实现 42 5.2.1 nutch 采集策略 42 5.2.2 nutch 数据采集实现 43 5.3 分词模块的设计与实现.45 5.4 查询模块的设计与实现.45 5.5 nutch垂直搜索引擎的详细配置与实现过程 46 5.5.1 第一部分 网页内容的下载 .46 5.5.2 第二部分 网页内容的搜索 .50 第六章 结论与展望.54 参考文献参考文献.56 致谢致谢.58 - 1 - 第一章第一章前言前言 1.11.1 课题的研究背景课题的研究背景 现代互联网技术的更新换代以及人类对信息技术坚持不懈地追求,促使世界上 每个国家都在进行史无前例的科技革命。一个国家的发展需要信息技术,一个公司 的发展需要信息技术,生活中的每个人也同样需要不断变革与发展的信息技术。同 时互联网上的各种信息每天都在迅速增长着,互联网已经成为人们信息最重要的来 源。 信息技术的不断发展必然带来信息技术的爆炸性增长。如此海量的信息资源聚 集必然导致用户获取有效信息的难度增加以及用户不需要的垃圾信息量的增加。就 这样,能够快速准确地获取有用信息的工具即搜索引擎就这样诞生了。 搜索引擎是信息检索领域的工具,所以我们对搜索引擎的研究就属于信息检索 领域的一个分支。表 1-1 列举了搜索引擎诞生以及发展的一些历史。 表 1-1 搜索引擎的诞生历史 1990 年麦吉尔大学学生发明 archie 只是一个可以搜索的 ftp 文件 名列表,用户通过输入精确的 文件名来查询哪个 ftp 站点可 以获得该文件 1993 年martin koster 发明了 aliweb archie 的 http 版本,靠主动 提交信息来建立链接索引,类 似 yahoo! 1993 年斯坦福大学学生发明 excite 分析字词关系,以对互联网上 信息做更有效的搜索 1997 年 卡耐基梅隆大学的 michael mauldin 创建了 lycos 第一次在索引程序中接入了 spider 程序;除相关度排序外, 还提供了前缀匹配和字符相近 限制;第一次使用了网页自动 摘要 1998 年google 诞生 google 在 pagerank、动态摘要、 网页快照、dailyrefresh、多文 档格式支持、地图、股票、词 典、寻人等集成搜索、多语言 支持、用户界面等功能上带来 革新 - 2 - 然而,随着互联网信息多元化的进一步发展,传统的搜索引擎系统爬虫需要爬 取、索引和进行查询的网页内容急剧增加,因此,通常会出现这样的一种情况,我 们用户不得不在海量的无关信息中困难地寻找自己所需要的信息。目前,对搜索引 擎系统的主要关注点转向应该怎样快速、准确地让用户能够找到对自己有用的信息。 人们对得到的专业领域相关信息资源的实时性、针对性和准确性等方面有了更加严 格的要求。鉴于此,垂直搜索引擎就这样诞生了。 1.2 研究意义和研究现状 搜索引擎极大的方便了用户在互联网上搜索自己需要的信息资源。但是,随着 科学技术的进一步发展以及用户日益显著的个性化需求,传统意义上的通用搜索引 擎系统已经很难满足专业领域用户的快速、及时响应的查询需求。并且,通用的搜 索引擎系统也很难及时地更新互联网上的信息。 面对以上通用搜索引擎系统出现的这个问题,我们就需要设计出一种垂直搜索 引擎系统,它专注于专门的领域,同时对该领域的信息全面深入挖掘,并且系统的 更新要比较及时。这种面向专门领域进行搜索的垂直搜索技术在最近几年中已经变 得相当的热门。 开源搜索引擎的研究具有非常重大的意义。首先,现实生活中只有很少的一部 分人能够了解、接触和研究到真正的搜索引擎,绝大部分的人都不懂得专业的搜索 引擎技术,也根本无法了解到这方面的技术和知识,因此这个时候,开源的搜索引 擎系统就成为人们在学习和研究搜索引擎系统技术时一个相当不错的学习途径和方 法。同时,开源搜索引擎系统能够吸引更多有能力、有本事的人贡献出自己的才能, 这肯定会推动搜索引擎技术的进一步发展 。 开源搜索引擎就是在这样一种急切的需求中诞生出来的,同时经过很多人的努 力与贡献,已经在搜索引擎领域取得了巨大的进步,收获丰硕。然而在开源搜索引 擎这个领域中最出名、功能最强大的就是 dog cutting 发明的 nutch 家族,它是以 lucene 全文索引工具包为基础进行索引和搜索的 web 搜索引擎框架。通过对 nutch 进行配置,就可以实现许多非常强大的功能,此外它使用 java 语言进行开发,所以 具有跨平台应用的优点,作为网络爬虫和 lucene 索引器的结合,功能上来说极其强 悍,每个月数以亿计的网页爬取量,网页搜索的高速,开源的功能剖析都是我们选 - 3 - 择研究它的关键因素。此外基于 lucene 全文索引工具包的索引和检索功能、基于 底层云计算平台 hadoop 的分布式编程模型和基于云存储的分布式文件系统,都能够 让我们用户可以快速高效地把海量网页数据在数百台乃至数千数万台计算机上运行 起来,并且能够在短时间内完成海量数据的计算与分析。总的来讲,研究开源的搜 索引擎是很有实际应用意义和价值的。 国内的研究者们对搜索引擎系统的研究起步比较晚,然而在搜索引擎领域中仍 然取得了非常多的成绩。例如北京大学的研究者们研究开发出了“天网”搜索引擎 系统,同时在全球的搜索引擎行业中,中国的百度已然成为了世界上使用人数最多 的中文搜索引擎。 现代搜索引擎按照信息的组织方式和服务的提供方式将搜索引擎分成以下三类。 (1)目录式搜索引擎 目录式搜索引擎是采用人工发现有用信息,同时依靠研究人员自己所拥有的知 识对发现的有用信息进行人工分类,然后提取出网页信息中的主题词,接着根据关 键字进行索引,最后生成相关的目录。我们用户可以通过两种方法来使用:一种是 浏览式查询。它是从最高层的根目录开始搜索,然后沿着目录树逐层逐渐的深入, 直到用户找到自己所需要的信息为止;另一种是通过用户输入的关键词来进行检索。 这一类搜索引擎的优点是检索效率比较高,但也有其不足之处,就是建立索引的效 率很低,同时网站信息更新的速度也比较慢。著名的目录式搜索引擎有雅虎和新浪 等。 (2)全文搜索引擎 全文搜索引擎的关键技术是一个被叫做网络爬虫(spider)或网络网络爬虫 (robot)的程序,它是根据自己的特定搜索策略和相应的网络协议,自动地从互联 网上爬取网页信息,然后建立索引。并定期采用一定的方法对索引库进行更新,从 而可以保证本地索引库与互联网上信息的实时有效对应。这类搜索引擎的优点就是 依靠网络爬虫程序自动地爬取、维护和更新网页信息,从而能够将目录式搜索引擎 中的工作人员解放出来,同时它的索引库可以很大,和目录是搜索引擎相比较实时 性更强。著名的全文搜索引擎有 google,百度等。 (3)元搜索引擎 - 4 - 元搜索引擎也叫做集合式搜索引擎,顾名思义,它能够同时管理多个搜索引擎, 给用户提供统一的检索接口。所以元搜索引擎可以理解为一个由很多的搜索引擎系 统组建而成的搜索引擎系统群。通常,元搜索引擎有两种工作方式。一种是并行式 元搜索引擎或者叫做分布式元搜索引擎,另外一种是单机式元搜索引擎,并行式元 搜索引擎在用户提交查询词后,能够同时将用户提交的查询词请求发给多个搜索引 擎系统,然后在接收到各个搜索引擎返回的结果列表后,根据自己特定的网页排序 算法进行重新排序,最后将排序的结果页面返回给用户;单机式元搜索引擎只能提 供给用户一个搜索引擎的排序结果页面列表,最后只能由用户自己来选择使用哪个 搜索引擎进行查询,所以可以说它是基于搜索引擎的搜索引擎,可以用来帮助用户 选择使用哪种搜索引擎。 虽然现在的搜索引擎分类很多,但是他们的基本思想和原理都是相同的。图 1-1 展示了搜索引擎的基本原理。首先是网络爬虫程序在互联网上进行抓取目标站点的 信息,然后将抓取下来的信息进行分析处理,分词和索引,并按照一定的数据结构 存储到本地网页索引数据库,最后用户通过自己的客户端浏览从这些被索引的数据 中检索出自己想要的信息。 目前,手机数码领域的应用越来越广,产品的种类也越来越丰富,已经变成人 们日常生活中不可或缺的一部分,然而我们用户使用通用搜索引擎系统,以手机数 码产品的品牌名、系列等作为关键字来搜索相关产品时,网站返回给用户的结果中 有大量的无用信息,很难帮助用户进行了解和选择。本文针对这个实际问题,根据 用户搜索手机数码产品相关信息的需求,提出并设计了一个基于 lucene 的面向手机 数码领域的垂直搜索引擎系统,最后根据设计进行相关模块功能以及整个系统功能 的实现。 1.31.3 本文的研究内容本文的研究内容 本文针对手机数码领域,以手机数码的网站作为本文主题爬虫爬取的对象,最 后通过分析、研究和设计实现了基于 lucene 的 nutch 垂直搜索引擎系统。本文的研 信息搜集 图 1-1 搜索引擎基本原理 分析处理信息存储信息检索 - 5 - 究内容包括: (1)面向手机数码产品领域网络爬虫的设计 垂直搜索引擎系统的网页爬取和通用搜索引擎系统是有很大差别的,本文依照 手机数码领域垂直搜索引擎系统的特点,设计了相应的主题网络爬虫。 (2)改进了 lucene 索引器的网页排序算法 由于垂直搜索引擎最终返回的检索网页结果对用户来说是至关重要的,所以怎 样能够从多的网页信息集合中把最重要的用户真正想要的结果页面选择出来排在网 页集合的前面,是我们研究和设计垂直搜索引擎系统的关键问题之一。经过改进后 的网页排序算法除了考虑到原来 lucene 自带的词频因素外,同时还考虑到:网页文 档的链接信息、正文大小以及用户查询关键词在文档中位置的情况等相关因素。 (3)面向手机数码领域垂直搜索引擎系统的设计 通过详细分析面向手机数码领域的垂直搜索引擎系统所需要的关键技术,包括 手机数码领域网页信息的搜索和爬取、对爬取到的网页信息的处理、建立网页信息 的索引库和提供给用户进行检索,最后给出了该垂直搜索引擎系统的总体设计结构 以及各个功能模块的模块设计。 (4)面向手机数码领域的垂直搜索引擎系统的实现 最后在基于 linux+nutch+lucene+tomcat 的开发环境与技术支持下实现了面向 手机数码领域的垂直搜索引擎系统设计的所有功能。 1.41.4 本文的组织结构本文的组织结构 本文各章节结构安排如下: 第一章主要介绍搜索引擎的历史发展情况和研究的背景,同时阐述了本文的研 究内容和各个章节的安排。 第二章介绍搜索引擎的关键技术,同时分析了搜索引擎和垂直搜索引擎的工作 原理以及各自的差异,并详细说明垂直搜索引擎研究中需要用到的关键技术,重点 对网络爬虫的信息爬取技术和用户检索结果的排序技术进行了研究与分析。 第三章介绍开源搜索引擎 nutch 和全文检索工具包 lucene 的基本概念、工作原 理,同时针对全文检索工具包 lucene 的检索结果排序算法的不足之处,提出了一种 改进的检索结果排序算法。 - 6 - 第四章根据相关的功能需求,对基于 lucene 的面向手机数码领域的垂直搜索引 擎系统的各个功能模块进行详细的分析与设计。 第五章利用垂直搜索引擎系统的开发环境 linux 和开发工具 cygwin、tomcat, 同时使用 java 语言编程实现系统中的相关算法和模块的具体功能。 - 7 - 第二章 搜索引擎的关键技术 2.12.1 搜索引擎的基本架构搜索引擎的基本架构 不一样的搜索引擎采用不一样的架构,会有一定程度的差异,但是他们的基本 功能模块是相似的。如图 2-1-1 给我们展示了一个通用搜索引擎基本工作原理的架 构。 索引库是下载的网页存储的地方,采用倒排索引之后,这里的网页信息库已经 变成了倒排结构。通常,倒排索引技术就是通过将documentword的初始状态结构 (如图2-1-2所示)转变为worddocument的倒排索引结构(如图2-1-3所示) 。全文 搜索引擎采用这样的倒排索引结构的好处就是可以根据对word的搜索很快就能定位 到相应的是哪个document,例如:当在搜索引擎中搜索“我们”的时候,返回的结 果中应该会出现document1和document21。 索引器(indexer)是用于生成索引的一个程序模块,我们将处理过的大量网页信 息包装后,转变成相应的文档,然后交给索引器来进行索引,索引器就会在索引库 中建立该文档的一个索引,这个结构也就是倒排索引结构2。 检索器(searcher)是用户在使用搜索引擎进行信息查询时的一个程序模块。 当用户提交自己查询关键词给检索器客户端以后,检索器首先对用户提交的查询关 键词进行分词等处理操作,然后生成相应的query去网页信息索引库中进行关键词匹 配,最后才将查询匹配得到的网页结果以一定的列表排序格式返回给用户3。 索引库、索引器、检索器是搜索引擎的三大核心程序模块。我们研究者可以利 用这三大程序模块来建立一个垂直搜索引擎4。本文利用到的lucene 全文索引工具 包的直接调用就等同于建立了一个搜索引擎,lucene本身就可以建立索引和进行相 关搜索,不过这样简单的搜索引擎只有开发人员才能够熟练使用,用户使用起来将 会非常的困难,而且对各种网络上现有的文件(ms word、ms excel、html等)处理 起来很不方便,所以想要搭建真正用户能够直接使用的垂直搜索引擎还需要其他程 序模块的功能支持。 - 8 - 图 2-1-1 搜索引擎基本架构 文档解析模块用于解析爬取到的特定格式的文档,通过提取出文档中的文字信 息,同时建立文档对象,然后再交给索引器进行处理,网页处理模块用于对crawler 获取的网页信息进行解析,提取出文字信息,然后建立文档对象后再交给索引器进 行处理5 6。 用户查询界面是用户通过向搜索引擎检索端输入自己的关键词时才使用到,它 考虑到用户的使用习惯,从用户出发,提供方便、优化、快捷的查询界面,并将最 终搜索引擎查询的结果能够按照用户的要求呈现给用户6。 我们 是 中国人 文档 1文档 2 中国 很 我们 美丽 图 2-1-2 文档的初始结 构 - 9 - 我们中国 文档 2 文档 1 图 2-1-3 文档的倒排结 构 2.2 垂直搜索引擎 2.2.1 垂直搜索引擎定义 垂直搜索引擎也叫专业搜索引擎,它是针对某一个特定领域或行业的主题搜索 引擎,是通用搜索引擎功能上的细分和扩展7。和通用搜索引擎相比,垂直搜索引 擎的优点是查询准确,响应速度快。它是针对通用搜索引擎的信息量很大、查询很 不准确、专业深度不够等问题提出来的一种新的搜索引擎模式,主要目的在于为某 一专业领域、某类人群或某个特定的需求提供的相关的信息和服务。它的特点就是 专、精、深且具有行业色彩。 2.2.2 垂直搜索引擎特点 垂直搜索引擎和通用搜索引擎的最大区别是对网页信息的处理方式不同,垂直 搜索引擎对网页数据进行了结构化抽取和整理。也就是将网页中的非结构化数据抽 取整理出来,构成特定的结构化信息数据。在整个过程中,网页数据由非结构化数 据转变成结构化数据,最后再经过深度加工处理之后以非结构化的方式或结构化的 数据返回给用户。总之一句话,垂直搜索引擎是针对某个特定领域或行业,其主要 特点8如下: (1) 垂直搜索引擎中的主题网络爬虫爬取到的网页数据主要来源于搜索引擎关 注的专门的网站。 (2) 垂直搜索引擎中的主题网络爬虫爬取到的网页数据主要都是结构化数据和 - 10 - 元数据。 (3) 垂直搜索引擎的搜索策略是基于结构化数据和元数据的。 2.2.3 垂直搜索引擎优势 和通用搜索引擎相比,垂直搜索引擎的优势表现在,通用搜索引擎主要是将爬 取到的网页信息存放到本地数据库。然而垂直搜索引擎主要是以网页的方式返回给 用户,通用搜索引擎主要是利用一个网络爬虫程序到互联网上进行随机爬取,一般 是按照某个特定的时间周期进行二次爬取,以便于更新网页库;垂直搜索引擎同样 有一个网络爬虫程序,但是它的网络爬虫程序只是在一些特定的网站上进行爬取, 并不会对网页上的每一个超链接都感兴趣,相对来说,垂直搜索引擎的信息收录范 围大大缩小了,但并不意味着网页内容的缩小。 和通用的搜索引擎相比,垂直搜索引擎的查全率和查准率都提高了很多,因为 它只是关注了一小部分特定的网站,可以做到内容上很齐全,准确率很高。 2.32.3 网络爬虫网络爬虫 网络爬虫(web crawler)也称作网络蜘蛛,是搜索引擎的核心功能模块之一,它 的功能是从各个网站上获取网页文件(这个过程叫网页爬取)并提取出有用的文字 信息,然后分词、交给索引器建立索引7。 网络爬虫的爬行策略主要有广度优先策略和深度优先策略9。广度优先策略首 先爬行第一层的网页,将第一层网页解析所得的发出链接存起来,待第一层链接都 处理完毕,接着依次处理第二层的链接,如此一层一层地进行下去。深度优先策略 从第一层链接中选取一个,抓取其指向网页并解析出发出链接,然后从发出链接中 选出一个继续前述过程,直到达到一定得限制条件后,重返上层选取新的链接进行 爬行。两种策略如图 2-3 所示。 - 11 - 图 2-3 广度优先与深度优先策略对比 2.4 主题网络爬虫技术研究 2.4.1 主题网络爬虫工作原理及关键技术概述 通用搜索引擎的信息搜集任务主要是超链接 url 抓取的过程。通用的网络爬虫 进入若干初始的种子网页中,爬取信息,同时新的 url 链接不断的被放在队列中 等待被抓取,直到达到预期设定的阈值或者 url 列表为空时停止,它的缺点是网页 信息爬取的不确定性。相比较而言,主题网络爬虫则具有非常明显的优势,在主题 网络爬虫中引入了智能分析步骤,也就是在 url 抓取之前进行主题的筛选,将与 主题相关的 url 放入待抓取的 url 队列中,与主题不相关的 url 则去除,不断重 复这个过程,直到达到设定的阈值或者 url 列表为空为止,这样的话既可以缩小爬 取的范围,又可以将用户查询所需的专业性很强的关键词和相关的结果保存下来, 为以后相同或相似的搜索提供参考,并且能够保证信息的及时更新信息,也改善了 之前比较容易出现的空链接、死链接现象。通用搜索引擎与垂直搜索引擎的爬虫过 程对比流程如图 2.4.1 所示: - 12 - 图 2.4.1 通用网络爬虫和主题网络爬虫的基本工作原理架构流程对比 与通用搜索引擎相比,垂直(vertical)搜索引擎主要有三个方面的突破:一是 主体网页目标的阐述和定义,二是 url 主题相关度的判定算法,三是主题爬虫的搜 索策略。在以上三个关键性技术问题中,url 主题的相关度算法和主题爬虫的搜索 策略是垂直搜索引擎的核心技术。 2.4.2 主题网络爬虫结构模型 主题网络爬虫是以普通网络爬虫为基础的,是对普通网络爬虫功能的提升和改 进。其中主要的改进部分为以下三个方面,如图 2.4.2 所示: - 13 - 图 2.4.2 主题网络爬虫的工作原理和基本架构 (1)采集网页信息模块:此模块在超链接(url)分析模块与页面相关度分析模 块之间起到协调的作用。同时也是网络爬虫正常运行的必要组成部分。第一步,网 络爬虫采集模块负责将网页的信息采集集中,此过程中爬行顺序和方法都决定于链 接分析部分。第二步,网页的相关度分析模块会将这些网页信息进行分析处理。也 就是说采集模块是网络爬虫模块与页面相关度分析模块之间的媒介,起到了平衡调 节的重要作用。 (2)链接分析模块:这个模块是整个垂直爬虫过程的指挥中心,相当于人类的大 脑。一方面将爬行采集的数据进行相关度分析后选择合适的爬虫策略,从而分析出 爬虫的顺序与信息的优先级取舍。也就是说,爬行的策略与无关链接与潜在链接的 删除都是由链接分析模块分析得到的。它的功能完善与否直接对整个爬虫过程起到 了至 关重要的作用。 (3)相关度分析模块:此模块在这个系统过程中,起到了筛选的作用。相当于一 个类别提取器。开始时,根据用户的关键搜索词汇在网页信息中进行主题相关度分 析,如果被该模块认定为是与主题相关的,则该文本所在的网页被提交给页面相关 度分析模块,反之则被剔除。被提交到网页相关度分析模块的文本,经分析,若主 题相关度大于提前预设的一个初始值,则该网页在被储存于本地的信息磁盘中。如 达不到此初始值,则别舍弃。 2.52.5 中文分词中文分词 垂直搜索引擎返回给用户的搜索结果的准确性,很大程度上是依赖采用的中文 - 14 - 分词技术。早期的搜索引擎当用户搜索“和服”的时候,类似于包含技术和服务之 类的结果就会返回给用户,造成大量垃圾信息,而现在的搜索引擎由于采用了高效 的中文分词技术,则避免了这一现象的出现。 现有的分词算法可分为三大类5:基于字符串匹配的分词方法;基于统计的分 词方法;基于理解的分词方法;其中,字符串匹配的分词方法(机械分词方法)需要 分词词典的支持,具有效率高,算法简单的特点,但难以排除机械切分产生的歧义, 准确率较差;基于统计的分词方法根据词的频度来判断成词的概率,这种方法能有 效地识别新词,时空开销大,效率有限;基于理解的分词方法通过让计算机模拟人 对句子的理解,达到识别词的效果,由于语言知识和语言规则过于复杂,因而这种 方法尚处于研究的阶段。 把中文的汉字序列切分成有意义的词,就是中文分词,所谓分词技术就是指将 一个完整的句子划分成一个个 token 的过程。由于索引库中的数据是一种索引结构, 因此需要有一组固定的 key,又因为索引库是 worddocument 的倒排结构,所以 这组索引键应该是词语。这就需要将句子进行相应的切分,来获得单个的词语。 尽管每一种语言都要进行分词,但是英文可以利用空格来作为天然的分隔符。 然而对于中文来说,分词的情况却要复杂的多。 中文分词对于中文搜索引擎领域来说极其的重要。首先,中文分词会影响用户 查询效率。假如有如下的四篇文档: 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) 。 - 15 - 而采用非单字的分词方式一步就可以查得结果,可见,中文分词方式将影响到 查询的效率。 doc1(中国在亚洲)doc2(心中有梦想) doc3(中国在发展) doc4(中心大街) 中国在心亚梦大 图 2-3-1 单字分词效果 doc1(中国在亚洲)doc2(心中有梦想) doc3(中国在发展) doc4(中心大街) 中国亚洲梦想 图 2-3-2 非单字分词效果 2.5.1 基于字符串匹配的分词方法 基于字符串匹配的分词方法是按照一定的策略将待切分的汉字串与分词词库中 的词条进行匹配,若在词库中找到相应的词条,则匹配成功。目前实用的分词系统 基本上都是以基于字符串匹配的分词方法为主,辅之以少量的词法、语法和语义信 息,根据扫描的方向不同,基于字符串匹配的分词方法可分为正向匹配分词方法和 逆向匹配分词方法;按照优先匹配的长度不同,又可分为最大匹配分词方法和最小 匹配分词方法。总的来说,机械分词方法中共有三种基本的分词方法,分别是最大 正向匹配法、最大逆向匹配法和逐词遍历法 。 - 16 - 2.5.2 基于统计的分词方法 基于统计的分词方法也叫统计取词方法或无词典分词方法。它基于这样一个思 想:在上下文中,两个(或多个)字相邻出现的频率越高,那么他们成词的概率就 越高。不过这样的分词方式有其弱点,有许多字相邻频率很高,但是未必成词,例 如“我的” 。所以基于统计的分词方法更多地用于新词识别,以作为词典分词方法的 补充。 2.5.3 基于理解的分词方法 基于理解的分词方法模拟人对语言的理解来进行分词。其基本思想是在分词的 同时引入句法信息和语义信息来处理歧义。由于汉语的语义的复杂性和汉语句法的 多变性,该方法目前还处于研究阶段。 2.62.6 网页相关性排序网页相关性排序 .1 向量空间模型(向量空间模型(vsmvsm) 向量空间模型由 gerald salton 提出,该模型用于计算文档与查询的相关程度, 仅仅用于普通文本。对于网页与查询的相关度需引入新的方法来计算。 假设词典包含 n 个词语,那么词典集合 t 可以表示为 t = t1, t2, ,tn 其中 ti为词项,即每个词。这时文档 d 和查询 q 可以表示为 d= q = 其中 mi为 t 中词项 ti在 d 中的出现频率(即词频) ,ni为 t 中词项 ti在 q 中出 现频率。这样,文档与查询的相关度就可以表示为 d 与 q 的。相似程度。 ,通常 d 与 q 的夹角越小,表示两个向量越相近,所以 d 与 q 的相似度 r(d,q)为 r(d,q)=cos(d,q) 下面使用 2 维词典空间(即 n 为 2)来直观地看看如何用向量空间模型来比较 - 17 - 文档与查询相关度。假设词典空间 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。 q d1 d2 爱好 足球 图 2-4-1 二维词典空间中 d,q 关系 向量空间模型很容易从直观上理解,但是在实际使用过程中还要在此基础上作 出更多的处理。词频通常将所有原始词频除以一个共同的分母,将词频约束到一个 范围内(如大于 0 小于 1) ,这叫词频的规格化处理。这样 d=可 以变为 d= 其中 wi=mi/mj,也就是将所有词频除以所有词频的和,得到规格化的词频。 这个经过规格化的词频必定在 0 和 1 之间。 - 18 - .2 搜索引擎的网页结果排序搜索引擎的网页结果排序 对于搜索引擎而言,最终返回给用户的网页结果排序非常的重要。它不仅仅要 考虑到用户的查询关键词与查询文档之间的关系,此外还需要考虑到用户的查询关 键词在网页文件中的位置、链接和被连接关系。 (1)html 页面中有很多的标签,这些标签有的是表明 title 的,有的是表明 布局、大小、是否粗体的。一个网页的主题词肯定比其他词重要,它应该被重视; 字号较大的字应该比字号较小的字更加重要;粗体字应该比非粗体字更加重要。基 于上述原则,我们设计出不同标签表示的字的权值表(如表 2-4-2 所示) ,这些权值 可以在建

温馨提示

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

评论

0/150

提交评论