垂直搜索引擎的设计与实现

更新时间:2023-08-15 23:54:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学

硕士学位论文

垂直搜索引擎的设计与实现

姓名:吴欣茹

申请学位级别:硕士

专业:软件工程

指导教师:王庆

20061201

[硕士论文] 垂直搜索引擎的设计与实现

摘要

随着Internet的迅速发展,Web己经发展成为包含多种信息资源、站点分

布全球的海量信息服务网络。搜索引擎是一种用于帮助Web用户查询信息的搜索工具,它以一定的策略在Internet中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务和信息导航。通用搜索引擎的特点是:索引数据库的规模大;检索结果数据量特大。

随着信息多元化的发展,通用搜索引擎己经不能满足主题用户的需求。用户

迫切需要一个数据分类细致、精确、全面、更新及时的面向特定主题的搜索技术和方法来获得主题资源信息。在这种需求的推动下,垂直搜索引擎应运而生。

论文研究了搜索引擎的相关技术,通过分析基于查询串方式的搜索引擎和分

类目录式搜索引擎的整体结构,设计了垂直搜索引擎的系统结构,并对其中涉及的关键技术:Web搜集器、信息抽取技术、中文分词和检索技术进行了深入研究,期望对推进本领域的技术发展作一点贡献。

在总体设计方面采用的是模块化思想,垂直搜索引擎被分为搜集子系统、索

引子系统和检索子系统,各子系统相对独立,实现较为方便。

本文实现的垂直搜索引擎已经在实际中成功运用,具有较好的效果,很好地

满足了主题用户的需求,具有广阔的市场前景。关键词:搜索引擎,信息抽取,下推自动机,中文分词,页面距离

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文Abstract

Abstract

Withthepfeval锄ccofthenetworkapplications,theInteracthasbcc0蚰ea

∞wicenetworkprovidingmassinformation,whichincludesvariousinformationresourcesandsitesdistributedall

webuserovertheworld.Thesearchengineisupakindofsearchtoolshelpingtolookinformation.Itcollectsandseeks

information

information

andmassintheInteractwithcertainstrategiesandprovidesretrievalserviceandnavigationOnthebasisofextracting、organizinganddealingwiththeinformation.The

Withcharacteristicsofthegeneralenginemelarge—scaleindexdatabaseretrievalresultdata..thedevelopmentofdisparateinformation,the

ageneralsearchenginecan'tmeetthetopiccustomers.Thecustomersneedparticularsubject-orientedtechnique

toobtainandmethod,which

sometopic.By

emergeatthisisaccurate,all—sidedandupdatedtimelyresourcesaboutthepromotionofthiskindofdemandstheverticalsearchenginebackground.

Thethesisstudiedtherelatedtechniqueofthe

architectureoftheverticalsearchenginebasedsearchonengine,designedthesystemanalyzingthetraditionalsystemstructureofthesearchengine.Inthisarticle,somekeytechniquesinvolvedinthesearchenginesuchasweb

arecrawler,informationextraction,Chineseparticipleandtheretrievingtechniquesstudiedindetail,Bylucubrafingthesekeytechniques,the

authorexpectSomehelptothedevelopmentinthisfield.

Modularthoughtwasadoptedinthesystemdesign.Theverticalsearchengineis

dividedintothreeparts:thecollectsub-system,theindexsub-system

sub system.Each

expediently.andtheretrievalsub—systemisindependenceoppositelyandimplemented

andThe

haveverticalsearchenginehasbeenputintocanUSCandprovedsuccessfullyeffidenflyinpractice.Itasatisfytheneedofthetopiccustomerprimly,SOitwillvastmarketinfuture

Keywords:searchengine,theinformationextraction,thepush—downautomaticmachine,Chineseparticiple,thepagedistance¨

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学

学位论文知识产权声明书

本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属于西北工业大学。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为西北工业大学。

保密论文待解密后适用本声明。

学位论文作者签名:墨!逸基学位论文作者签名:盘!迭丛!指导教师签名:

DZ年Jf月ItZ日口彳年11月J上日

西北工业大学

学位论文原创性声明

秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果,不包含本人或他人己申请学位或其它用途使用过的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明0

本人学位论文与资料若有不实,愿意承担一切相关的法律责任。

学位论文作者签名:墨殛盘口6年c|只|’B

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第一章绪论

第一章绪论

1.1研究背景

随着信息技术的快速发展,互联网得到了飞速的发展,成为人们学习、工作、

生活中的最重要的知识和信息来源。根据CNNIC(中国互联网络信息中心)2006年1月17日发布的<中国互联网络发展状况统计报告》“1,截止到2005年12月31日,我国的网民总人数为11100万人,上网计算机总数已达4950万台,我国网站数为694,200个.目前,整个互联网中文网页数超过20亿,Google收录了5亿中文网页,百度收录了8亿中文网页嘲.

Internet上的信息资源随着Internet的发展呈现出以下特点;

l、信息量大而且分散

2、自治性强

3、信息资源多种多样

4、不一致和不完整

为了获取所需的信息,用户必须借助一定的工具,他们通常使用以下两类网

站:一

第一类是分类目录式搜索引擎,其典型代表是Yahoo。它主要采用人工方式

或半自动方式收集和整理Internet上的信息,根据所搜集网页的内容再手工将其网址分配到所采用的分类主题目录的不同层次级别类目之下。用户查询时,通过逐级层层浏览这些类目,寻找自己所需的网址信息。这类搜索引擎因为加入了

人的智能,所以信息准确、导航质量高,缺点是需要人工介入、维护量大、信息量少等。

第二类是基于查询串方式的搜索引擎(也称为通用搜索引擎),这类搜索引

擎指的是一种在Web上应用的软件系统,它以一定的策略在Web上搜集和发现信息,在对信息进行处理和组织后,为用户提供Web信息查询服务。从使用者的角度看,这种软件系统提供一个网页界面,让他通过浏览器提交一个词语或者短语,

然后很快返回一个可能和用户输入内容相关的信息列表。这类通过关键词匹配实现查询的自动更新的搜索引擎优点是涵盖的网页数量巨大,因为它拥有基于关键字的全文索引,它为所有网上冲浪的用户提供了一个入口,所有的用户都可以从搜索引擎出发到达自己想去的网上任何地方。搜索引擎对用户是这样的重要,成为了用户上网的常用服务,根据《中国互联网络发展状况统计报告》“1,用户经常使用的网络服务是:浏览新闻(67.996)、搜索引擎(65.7%)、收发邮件(64.7%)、

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第一章绪论即时通讯(41.996)、论坛/BBS/讨论组等(41.6%)。

然而,事实也已经证明单纯依靠搜索引擎提供的分类目录和关键词检索,搜

索效果并不理想。分类目录所涵盖的网页资源需要人工编辑,因此数量有限。而对于关键词检索,虽然搜索引擎技术几经完善,但是信息的查全率和查准率还是相当低下,特别是较低的查准率使得用户得到搜索结果后还需进一步挑选,智力负担相当重。即使比较著名的诸如Google等搜索引擎对检索结果采用了基于超链接的相关度排序,但它们主要依据的也只是网页被其他网页认可的程度,并非网页与用户真实检索需求之间的关联程度,同时结果中包含了大量与用户查询请求不相关的文档,用户在返回的动辄成千上万条记录中寻找相关文档犹如大海捞针。

造成这种现象的原因很多,从主观上讲,对于分类目录,用户通常并不一定

清楚搜索引擎提供的分类目录是否真正包含自己所需的内容,而且缺乏必要的分类知识也会使得用户难以在庞大的、经常动态调整的类目间准确定位。1。而对于关键词检索,用户通常键入的词语是非常简练的,而且也无法保证是否与命中记录存在关系。从客观上讲,搜索引擎技术还有相当大的完善空间。目前的技术在提高网页查全率和相关度排序上已经达到了较高的水平,但是对于自动网页分类和聚类、基于概念的检索词匹配等方面仍然要求技术突破。除了这些技术原因外,产生目前问题的原因还包括一些设计方面存在的缺陷。如搜索引擎系统与用户的接口设计存在障碍,让彼此难以通过现有的界面进行良好的表达和反馈,用户无法有效地根据搜索引擎的提示调整检索策略,搜索引擎也无法以一种方便用户操作的合理方式来展示查询结果。作为一项直接面对普通用户的检索技术,搜索引擎要想实现检索的成功,一定要能在用户与检索系统之间建立良好的沟通渠道。这个渠道能使用户准确表达自己的检索需求,同时系统能够准确理解用户的检索意图,并且能以一种用户感觉良好的方式显示结果。但事实上,孤立地使用单一的分类目录和关键词检索,往往都使得这种愿望难以实现。在现阶段技术水平下,要提高搜索引擎的检索效果,必须从搜索引擎的基础收录入手,并采用分类目录和主题检索相结合的方法。

1.2搜索引擎的现状分析

搜索引擎起源于传统的全文检索理论,即通过扫描每一篇文档资料中出现的

词语,建立以关键词为单位的索引文件,并通过界面让用户使用关键词进行检索。从深层次来看,搜索引擎的出现有技术的必然性,主要原因在于快速发展的网络提供的资源极大地超出了人们能够自然有效地利用传统方法进行管理的能力范围。传统的管理信息资源的方法主要基于人们对信息的再消化、再理解,以信息

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第一章绪论重组的方式重构整体的信息框架,并将所得信息资源分门别类,而用户的检索显然也要按照这种事先规定好的类目结构来进行。但由于自动分类技术的难度,基于全文检索的方法就巧妙地绕开了这个障碍,即使人们不具备理解信息资源本身的条件,也可以借助计算机技术快速地进行全文索引和全文检索匹配。从理论上讲,每个词语都成为了检索的依据,以信息理解为基础的信息检索行为逐渐过渡到以信息单纯匹配为基础的检索行为(即以关键词为主的主题检索).

现代的搜索引擎在面对海量数据的时候,通过简单的全文检索匹配来返回最

终结果,但是仍然缺乏有效的手段让用户通过键入的少量关键词就能快速准确定位到自己所需要的信息嘲。从本质上讲,这由于两方面的原因:首先,互联网信息量巨大,哪怕用户只是搜索其中的一小部分内容,搜索引擎返回的命中页面数量也是巨大的,从本质上看,这也是应该的,利用用户键入的词语来进行全文检索就应该返回所有相关信息;其次,用户本身检索专业能力有限,最为普遍的关键词检索行为中用户通常只是键入几个词语,如A.Spink等人曾对Excite等搜索引擎的近300位用户做过实验后发现人均输入的检索词为3.34个,国内部分学者也有相似的结论,发现90%左右的用户输入的中文检索单字为2~6个,。过少的检索词事实上无法真正表达用户的检索需求。而且用户通常也不去进行复杂的逻辑构造,只有相当少的用户使用布尔逻辑检索、限制性检索和高级检索等方法,如A.Spink等人发现,仅有5.24%的检索式中包含有布尔逻辑运算符,国内部分学者的研究结果也表明约40%的用户不能正确运用字段检索或二次检索,

80%左右的用户不能正确运用高级检索功能,甚至还发现用户缺乏动力去学习复杂的检索技能,多数用户都寄希望于搜索引擎能够自动地为他们构造有效的检索式“1。由于缺乏过去联机检索中常常具备的检索人员,用户实际的检索行为与用户理想的检索行为存在事实上的差距,因此信息查准率非常低。

进一步提高搜索引擎的查询效率和效果,必定是下一代搜索引擎的主要目

标。从检索专业角度来看,基于关键词的主题检索一定要和基于目录的分类检索进行有机的结合才能提高检索的成效,主要原因在于这种结合有两方面的好处:

首先,在检索界面中,它可以利用主题词表达分类目录,能有效地提高类目的可理解性,同时也可以利用类目修饰关键词,加强关键词的指向度;其次,在返回结果界面中,通过目录和关键词的组合表达,使得用户更加易于定位所需信息。

随着信息多元化的发展,通用搜索引擎己经不能满足主题用户的需求。用户

迫切需要一个数据分类细致、精确、全面、更新及时的面向特定主题的搜索技术和方法来获得主题资源信息。在这种需求的推动下,垂直搜索引擎应运而生。

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第一章绪论1.3选题意义

综合分类和主题的优势,垂直搜索引擎将能展示更为优秀的检索功能。它在

实际应用中,也有广阔的使用范围。具体的表现形式有三个:

1、垂直搜索引擎系统检索时采用分类目录和主题检索相结合的方法有利于

专业信息的查找,同时消除无关信息,这其实正是专业搜索引擎的一种表现。专业搜索引擎主要针对某一专业的相关网页信息进行索引和提供检索,此时分类且录扮演着重要的角色,因为专业搜索引擎在遍历互联网的时候,通常是利用搜集的网页索引词来给出所属类目,从而判断是否为专业的相关网页。

2、垂直搜索引擎在显示时采用主题和类目结合的方法有利于结果的展示,

提高了网页相关度显示能力,即结果呈现以类聚集的特点,用户以类为对象进行整体查询,效率和查准率都能得到提高。

3、用于构建中、小企业的门户网站或分类信息网。

1.4论文贡献

互联网的快速发展,对搜索引擎提出了更高的要求。巨大的使用需求推动了

搜索引擎技术的发展,各种新技术纷纷应用到搜索引擎中。搜索引擎是这些技术的基础和平台,它决定着这些技术的开发和应用。但一般的研究机构不可能拥有和商业搜索引擎一样规模的计算机资源,因此需要一种对资源要求低、体系开放的搜索引擎来作为各种新技术的平台。

本文在深入分析网页获取、索引生成、信息检索等搜索引擎核心技术的基础

上,设计并实现了一种新的搜索引擎一垂直搜索引擎。该搜索引擎使用网络蜘蛛实现网页获取;通过信息抽取、中文分词和建立倒排文件等技术建立索引数据库;信息检索返回的网页的级别使用本文定义的“页面距离”来度量,大大降低了搜索引擎对于计算机资源的要求。论文主要贡献如下:

1、提出了一种Web搜集器算法,并用.1ava成功实现。

2、在分析了HTML语法特点的基础上,利用Chorasky语法分析的方法,归纳

HTML数据的语法规则,从而达到抽取模式数据,为存储设计提供元数据的目的。这种方法不但能够快速、准确地提取元数据信息,而且容错性强,能够处理不完整的HTML数据片断。

3、提出了一种对HTML数据的检索方法。该方法吸收了信息检索领域的倒排

表索引的优点,结合HTML数据的结构和内容双重索引的设计,能发挥结构信息的语义指导作用,提高了检索的查询精度。

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第一章绪论1.5论文的组织结构

本文中,各章的具体内容概括如下:

第二章介绍垂直搜索引擎的结构。首先,介绍基于查询串方式的搜索引擎和

分类目录式搜索引擎的整体结构;然后在此基础上,设计了垂直搜索引擎的系统结构,并介绍了各部分所完成的工作。

第三章详细讨论了实现搜集器的主要类结构以及数据库设计,然后描述了本

文设计的Web搜集器的执行流程,最后简述了Web搜集器的实现难点.

第四章详细介绍垂直搜索引擎采用的信息抽取技术——基于语法的信息抽

取技术。首先介绍HTML数据的语法特点及理论基础;然后,介绍本文所利用的下推自动机模型;最后,详细描述了模式获取算法(ExtractSchema,简写为ES)的实现。

第五章详细介绍垂直搜索引擎采用的中文分词技术。首先,将现有的中文分

词技术进行比较;然后,详细介绍本文所采用的中文分词技术——全二分最大匹配快速分词算法.

第六章介绍垂直搜索引擎采用的检索机制。首先介绍传统的信息检索技术;

然后在此基础上,设计了垂直搜索引擎检索子系统的结构;最后介绍本文提出的检索技术。第七章总结全文,并给出需要进一步改进的问题。

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构

第二章垂直搜索引擎的结构

垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延

伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据,进行处理后再以某种形式返回给用户。本章首先介绍基于查询串方式的搜索引擎和分类目录式搜索引擎的整体结构,然后在此基础上,设计了垂直搜索引擎

的系统结构,并介绍了各部分所完成的工作。

2.1基于查询串的搜索引擎

基于查询串的搜索引肇通常是由网络蜘蛛(Spider,)以某种策略自动地在互

联网中搜集和发现信息,并将搜集到的信息建立索引,形成索引库。由检索器根据用户输入的关键词检索索引库,并将查询结果返回给用户“1。典型的搜索引擎有:Alta

2.1.1Vista,Excite,NorthernLight,Google等。AltaVista搜索引擎结构

AltaVista搜索引擎结构如图2-1所示。1:

图2—1AltaVista结构

AltaVista软件结构主要包括两个部分:第一部分是用户接口和查询机制,

主要实现用户所提交的查询条件在索引库中完成搜索,并将相关的检索结果反馈给用户的过程,索引机制采用集中式的方式应答用户的请求;第二部分包含网络蜘蛛和索引机制,网络蜘蛛运行在本地机上,通过自动将请求发送给远程Web服务器,获取相应服务器上的信息,经过处理后存入索引库,从而实现索引库的动态扩充。

1998年,AltaVista运行在20个CPU上,130GB内存和500GB的硬盘。6

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构单查询机制就使用了75%以上的资源。

2.1.2Harvest搜索引擎结构

Harvest结构是基于网络蜘蛛与索引机制结构的几种变种之一,其结构如图

2—2所示阍。Harvest使用分布式体系结构获取数据与分发数据,已被CIA,NASA,USNationalAcademyofScience和USGovernmentPrintingOffice使用,另外Netscape的目录服务也是Harvest的一种商业化版本;网络应用缓存是Harvest缓存的一种商业化应用。

图2-2Harvest结构

Harvest结构包含两个方面的内容:收集器(gathering)与Broker。收集器的

任务是定期收集并从多个服务器中抽取索引信息,完成信息的搜集过程。Broker主要对搜集的数据建立索引机制,并完成用户对搜索引擎的查询过程。Broker可以从搜集器中接收信息或从其他的Broker中获取信息来更新其本身的索引。

同时,Broker也可以通过过滤信息或者将所获得的信息发送给其他的未获取相应信息的Broker来节省这些Broker的时间开销。

2.I.3GoogIe搜索引擎结构

Google搜索引擎主要依赖于超文本中的结构信息,利用C/c++编写,运行在

Solaries/Linux平台,其结构如图2—3所示:

网页爬行(Crawling,指网页的下载过程)技术是由若干个分布式的网络爬

虫实现的。其中,一个叫做URLServer的服务器负责把需要下载的URL地址列表分派给这些网络爬虫进行处理。网页数据如果被取回,将立即被送到StoreServer中。StoreServer对网页数据进行压缩,然后保存到Repository数据库中。每一个文档都拥有一个与之相关的唯一的ID编号,Go091e称它为docID。每当有一个新的链接从网页中破解析出来,它所指向的文档就自动获得一个

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构docID。

建立索引的任务则交给索引器和排序器来完成。Indexer依次从Repository

中取出文档,对文档解压缩,然后对文档进行解析。随后文档被解析为一组命中。

在Google中,命中是一种数据结构,用来记录单词在文档中每一次出现的信息。

在命中结构中,记录了每个词、词在页面中的位置、大小写、字体相对大小写等

信息。这样,每个词都有很多不同的命中,这些命中的组合又称为该词的命中列

表。索引器把这些命中再写入一组桶中,并建立一个部分排序的前序索引。索引

器还同时把网页中所有的链接的重要信息解析出来,并记录到一个叫做Anchors的文件中。该文件包含了足够多的信息,从中可以查询出每一个链接的来源、指

向以及该链接的文本。

URLServer卜———叫Crawler卜———叫StoreServe

RLResolveAnchorsReposit

Links

DocIndexllSorter

图2—3Google结构

URLResolver服务器负责从Anchors文件中读取出这些链接,把相对路径

转换为绝对路径,再转换为相应的docID。通过docID的关联,锚文件的信息也

被加入到前序索引的anchorhit结构中。URLResolver同时创建了一个Links数据库,用来存放两两相互对应的docID。Links数据库被用来计算所有文档的

PageRank。

接着排序器接管这些桶。排序器的主要任务是按照WordID重新进行排序。

从而为这些桶生成一个倒排索引。这个操作是在每个桶中执行的,所以只需用很

少的临时空间。排序器还建立了一个wordlD列表。列表中同时记录了该wordID在倒排索引中的偏移量大小。有一个叫做DumpLexicon的工具,用来把wordlD和由索引器产生的词典相结合,并产生一个新的词典。这个新的词典被用在最终8

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构的搜索程序中,连同PageRank和倒排索引一起,为用户提供查询服务。

2.2分类目录式搜索引擎

分类目录式搜索引擎是互联网上最早提供唧资源查询的工具。分类目录式

搜索引擎,也称为目录型检索工具,或目录搜索引擎。它主要包含:网页采集、网页分类、网页索引、搜索器等旧。其中网页的采集过程一般需要由编辑人员查看信息后人工生成信息摘要,并将信息置于事先确定的分类框架中m。网页的分类过程分为人工和自动两种,由于一个分类目录式搜索引擎一般要采集数亿个网页,因此,信息的分类是个非常繁琐的工作。用户查询时,通过逐级层层浏览这些类目,寻找自己所需的网址信息。这类搜索引擎因为加入了人的智能,所以信息准确、导航质量高,缺点是需要人工介入、维护量大等。国外具有代表性的目录搜索引擎有:Yahoo,LookSmart,OpenDirectory,60Guide等。国内具有代表性的目录搜索引擎有:搜狐、新浪,中文雅虎等。

2.3垂直搜索引擎的结构

根据搜索引擎设计的复杂度不同,搜索引擎的设计框架也不一样,简单的基

于查询串的搜索引擎如AltaVista等,只包含两部分的功能:搜索与用户查询服务。复杂的搜索引擎提供目录服务以及其他的内容。本文根据常用的搜索结构,

有机地将分类目录式搜索引擎和基于查询串的搜索引擎结合起来,设计了一个垂直搜索引擎的体系结构,如图2—4所示。

其各部分功能简述如下:

l、爬虫软件:也称为spider,crawler和robot等,定向搜索各类信息前

十名的网站,并负责将这些Web文档搜集到原始数据库中。

2、索引器:负责对原始数据库的文档构造索引,并且存储在索引数据库中。

索引是检索的有利工具,好的索引机制会导致检索效率的提高。

3、检索器:是垂直搜索引擎的核心。检索器利用索引数据库中的索引来查

找与用户查询相匹配的文档,计算各个文档和查询关键词的相关度,并将相关度大于阈值的文档按照相关度递减的顺序排列,返回给用户。

4、用户接口:提供可视化的查询输入和结果输出界面。一般来说,在输出

界面中,垂直搜索引擎将检索结果展示为一个线形的文档列表,其中包含了文档的标题和超链等信息。

从图2-4可以看出:垂直搜索引擎系统包括搜集子系统、索引子系统和检索

子系统三个组成部分。9

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构

罔圜国:::闰;

爬虫软件

('L上3

原始数据库

—丁厂一

索引器

可索引数据库

检索器』上<二_1二)

用户接口

jr

用户

图2-4垂直搜索引擎的体系结构

2.3.1搜集子系统

搜集子系统的功能是在互联网中漫游、发现和搜集信息。它常常是一个计算

机程序(也称为spider,crawler和robot等),日夜不停地运行。它要尽可能多、尽可能快地搜集各种类型的新信息,同时因为互联网上信息更新很快,所以还要定期访问已经搜集过的旧信息,以避免死链接和无效链接。由于互联网中存】0

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构在海量信息而且复杂多变,Web搜集器的实现常常采用分布式、并行计算技术,

以提高信息发现和更新速度。

本文设计的%b搜集器能够根据某一类信息需求,从互联网上的各个信息网

站(主要是独立制作发布信息的网站),收集围绕着某个(或某类)主题的相关信息资料。它是垂直搜索引擎的核心部分,详细内容将在第三章介绍.

2.3.2索引子系统

索引予系统包括索引器和索引数据库。索引器将原始数据库的内容重新组

织,建立索引数据库,以提高检索效率.索引子系统如图2—7所示。

图争7索引子系统结构

索引予系统的第一步就是为原始网页建立索引,实现图2-7中索引网页库;

接下来对索引网页库进行分析,它包括提取正文信息和把正文信息切分为索引项两个阶段;最后将网页到索引项的映射转化为索引项到网页的映射,形成倒排文件(包括倒排表和索引项表),同时将网页中包含的不重复的索引项汇聚成索引项表。

2.3.2.1索引网页库

索引网页库的任务就是完成给定一个URL,在原始网页库中定位到该URL所

指向的记录旧。

如果不对网页库建立索引信息,可以通过顺序查找的方法完成URL到指定记

录的过程,但是会消耗大量的I/o,数据量增大的时候不能满足垂直搜索引擎的快速响应要求,所以需要创建索引。对原始网页集R,索引网页库算法描述如图2—8所示”’。

网页索引文件以ISAM(索引顺序访问模式)存储。这种结构可以保证数据的紧凑性和O(1)的检索能力。为节省空间,索引文件中的每一行记录不保存文

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第二章垂直搜索引擎的结构档的长度,因为文档长度可以通过后续文档起始位置偏移和当前文档起始位置偏

移的差获得。

URL索引文件以ISAM存储,包含了URL的摘要和文档编号。为了能够快速

地给指定的URL找到对应的文档编号,URL索引文件按照URL摘要排序,这样就可以根据二分查找算法在URL索引文件中查找到对应的文档编号。

图2-8索引网页库算法

2.3.2.2分析网页

分析网页包括提取正文信息和把正文信息切分为索引项两个阶段。形成的结

果是文档号到索引项的对应关系表。每条记录中包括文档编号,索引项编号,索

引项在文档中的位置信息。

提取正文信息是本文研究的重点之一,垂直搜索引擎采用的是基于语法的信

息抽取技术,详细内容将在第三章介绍。

得到网页正文信息,调用分词程序,获得正向索引。垂直搜索引擎采用的分

词算法——全二分最大匹配快速分词算法将在第五章详细介绍。

2.3.2.3建立倒排文件

垂直搜索引擎面临大量的用户检索请求(几十~几千点击/秒),要求垂直搜

索引擎在检索程序的设计上要高效,尽可能地将大运算量的工作在索引建立时完

成,使检索时的运算尽量的少。一般的数据库系统不能快速响应如此大量的用户

请求,本文采用倒排索引技术。

创建倒排索引包括建立正向索引和反向索引。分析完网页后,得到以网页编

号为主键的正向索引表,如图2-9(a)所示。当索引建立完成后,得到图2-9(b)。

这是一个表的重组的过程,时间复杂度为0(n),为了加快速度,全过程需要在内存中完成。在小数据量时,有足够的内存保证该创建过程可以一次完成。数据

[硕士论文] 垂直搜索引擎的设计与实现

规模增大后,可以采用分组索引,然后再归并索引的策略。该策略是,建立索引的模块根据当时运行系统所在的计算机的内存大小,将索引分为n组,使得每组运算所需内存都小于系统能够提供的最大使用内存的大小。按照倒捧索引的生成算法,生成n组倒捧索引。然后将这n组索引归并,即将相同索引项对应的数据合并到一起,就得到了以索引项为主键的最终的倒捧文件索引,即反向索引。

网页1

网页2索引项1索引项2索引项1索引项2网页1网页2

网页k索引项1

索引项2

索引项3索引项k网页1网页2网页3

图2-9由正向索引建立反向索引

倒排文件机制是一种面向索引项的机制,利用它可以提高检索速度。倒排文

件结构由索引项和索引项出现情况两部分组成。对于每个索引项,都必须有一个列表(称为词汇表)来记录索引项在所有文本中出现的位置。

在倒排索引中,词汇表对空间的需求相对较小,它的增长率为O(nB),其中

B为0到1之间的常量。在实际操作中,B的取值一般在0.4到0.6之间。这样,

对于1GB的文本信息来说,词汇表的大小也就是5MB。可以利用词干提取技术和其他标准化技术来进一步对词汇表进行压缩处理。由于倒排索引要涉及文本中出现的每个索引项,所以索引项出现情况的空间需求为O(n)。在实际应用中,由

于存放索引项出现情况的过程中,还有一些描述信息,因此索引项出现情况列表所占的空间要比整个信息库中的文本所占的空间多出3096到40%。

为了缩小这种空间需求,可以采用块寻址技术。在块寻址技术中,文本被分

成一个一个的块,倒排文件的索引项出现情况列表记录索引项所出现的块。这些块可以是固定长度的(利用基于文本数据库上的逻辑块结构进行分割),也可以是不定长度的(利用文本本来的属性进行自然分割),比如可以根据文件、Web页面等进行分割。利用固定大小的块可以提高信息获取的效率,因为如果块的大小不一致,将导致平均访问文档数量的增加(大的块与查询串相匹配的机会会增大,

但是遍历这些块要花更多的时间)。

索引的更新一般分两种情况:一种是小批量的索引扩展;一种是大批量的索

引重建。在索引过程中,并不是每次新的文档加入进去,索引都重新进行一次索引文件的写入操作(文件I/O操作非常消耗资源);而是先在内存中进行索引操作,并根掘一定的批量进行文件的写入。这个批次的I’日J隔越大,文件的写入次数

[硕士论文] 垂直搜索引擎的设计与实现

越少,但占用内存会很多。反之占用内存少,但文件Z/O操作频繁,索引速度会很慢。

2.3.3检索子系统

检索子系统包括检索器和用户接口。用户接口在接收用户的查询请求后,将

它转发给检索器,检索器根据查询项和索引数据库的内容,找到匹配的网页后,

进行排序,然后通过用户接口返回给用户。检索子系统也是本文研究的重点,详细内容将在第五章介绍。

2.4本章小结

本章首先介绍基于查询串方式的搜索引擎和分类目录式搜索引擎的整体结

构,然后在此基础上,设计了垂直搜索引擎的系统结构,并介绍了各部分应完成的工作。其中涉及的关键技术:Web搜集器、信息抽取技术、中文分词和检索技术方面的内容将分别在第三、四、五、六章详细介绍。14

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第三章Web搜集器

第三章Web搜集器

Web搜集器的功能是在互联网中漫游、发现和搜集信息。它常常是一个计算

机程序(也称为spider,crawler和robot等),日夜不停地运行。它要尽可能多、尽可能快地搜集各种类型的新信息,同时因为互联网上信息更新很快,所以还要定期访问已经搜集过的旧信息,以避免死链接和无效链接.

本文设计的Web搜集器能够根据某一类信息需求,从互联网上的各个信息阿

站(主要是独立制作发布信息的网站),收集围绕着某个(或某类)主题的相关信息资料。

3.1Web搜集器算法

Web搜集器算法包括四个重要的队列:url_queue包括网络蜘蛛(Crawler)访

问过的与主题无关的URL;相应的Topic_urlqueue包含网络蜘蛛搜集到的与主题相关的URL,这些URL对应的页面需要扩展;一旦一个网页被访问过,该网页与它对应的URL一同存储在crawled_pages中;Links包含着URL对(uI,U2),U。是父网页的URL,u2是子网页的URL。其中url_queue和Topic_url_queue队列中的URL的权值的捧序通过函数reorder_queue0来实现。其算法如下:

输入:starting_url(种子URL)

执行过程:

[1]enqueue(url—queue,starting_url)

[2]while(notempty(topic_url—queue)and

[3]notempty(url_queue))url=dequeue2(topic_urlqueue,url_queue)

[4]page=crawl_page(url)

[5]

[6]

[7】enqueue(crawled_pages,(url,page))url—list=extract_urls(page)foreachuinurl—list

[8]

[9]

[10]

[11]

[12]

[13]enqueue(1inks,(url,u))if(u隹url_queueandu岳topic_url—queueandu圣crawled_pages)if(classifier(anchorandsurroundingandurltextofu)>C)enqueue(topic—url—queue,u)elseenqueue(url—queue,u)

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第三章Web搜集器[14]

[15]reorder_queue(url—queue)reorder_queue(topic_url_queue)

功能说明:

enqueue(queue,element):将元素element添加到队列queue的尾部;

dequeue(queue):删除队列queue的第一个元素并将其返回;

dequeue2(queuel,queue2):如果队列queuel不空,执行dequeue(queuel),否则执行dequeue(queue2);

classifier(anchorandsurroundingandurltextofu):用分类器分析链接u的元数据,计算其与特定主题的相关性权值,如果权值大于设定的门槛值C,

那么认为链接u主题相关,否则不相关;reorder_queue(queue):根据链接的权值重新排列queue。

3.2主要类、接口与数据库设计

表3-1Crawler的状态

CLEARED

PAUSED

RUNNING

STOPPEDCrawler处于消除状态Crawler处于暂停状态Crawler处于运行状态Crawler处于停止状态

图3-1Crawler状态转化图16

[硕士论文] 垂直搜索引擎的设计与实现

西北工业大学硕士学位论文第三章Web搜集器

Web搜集器负责从种子网页开始收集主题相关的网页,该模块的执行效率决

定了垂直搜索引擎的效率。为提高垂直搜索引擎的执行效率,Web搜集器采用多线程并行地进行网页的下载和分析.本节详细介绍了Web搜集器的主要类、接口与数据库设计。

(1)CrawlerState类

状态类CrawlerState管理Web搜集器的状态.其状态设计如表3-1所示:

各状态之间的转化关系如图3—1所示。

(2)Page类

Page类封装了网页的属性和操作。当发现一个新的链接(URL)时将其存

入数据库中等待下载,下载完毕后创建一个Page对象,等待Crawler线程进行分析。

Page类的主要数据成员如下:

URLbase;//网页的URL地址,比如www.yahoo.coln.皿

Stringtitle://网页的标题

Stringcontent;//网页的主要内容

Region[]tokens;

Text[】words;

Tag[]tagsl//网页中的所有标签

Element[]element;//网页文档结构树中的所有节点

Elementroot;//网页文档结构树的根

Link[]links;//网页中的所有链接

(3)link类

link类封装了网页之间链接的属性和操作,包括链接的父网页对应的Page

对象,链接的地址以及链接的Anchor文字等元数据。

link类的主要数据成员如下;

privatePage

protectedURL

privatefloatpage://链接的父网页对应的Page对象url;//链接的URL地址priority;//链接的主题相关性权值

dp://链接的下载参数privateDownloadParameters

(4)Crawler类

Web搜集器的核心是Crawler类,它实现了收集主题相关网页的功能。

Crawler类的主要数据成员如下:

protected1workloadStorableworkload;//数据库接口,管理Crawler搜集到的链接(URL),等待CrawlerWorker线程池中的线程下载分析

本文来源:https://www.bwwdw.com/article/0doj.html

Top