搜索引擎的设计与实现.docx
- 文档编号:5723087
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:53
- 大小:464.47KB
搜索引擎的设计与实现.docx
《搜索引擎的设计与实现.docx》由会员分享,可在线阅读,更多相关《搜索引擎的设计与实现.docx(53页珍藏版)》请在冰豆网上搜索。
搜索引擎的设计与实现
摘要
随着计算机技术和互联网技术的飞速发展,越来越丰富的信息呈现在用户面前,但同时伴随的问题是用户越来越难以获得其最需要的信息。
搜索引擎技术解决了用户检索网络信息的困难,目前搜索引擎技术正成为计算机科学界和信息产业界争相研究、开发的对象。
本文首先介绍搜索引擎的基本原理、工作过程及技术发展趋势。
然后从搜索引擎的原理、构成出发,设计并实现了信息采集模块、索引功能模块和检索模块,并从检索技术、检索功能、检索方式对它们进行比较和分析。
网络蜘蛛是搜索引擎设计的核心,决定了搜索引擎数据容量的大小。
本文利用线程池技术,多线程并发下载网页信息,有效的提高了下载的速度跟效率。
中文分词的结果是影响搜索引擎中文检索结果质量的重要因素,能否准确有效的分词对提高搜索结果的相关性和用户满意度都至关重要。
本文采用了一种适用于全文检索搜索引擎的中文分词方案,既提高了分词的准确性,又能识别文中的未登录词。
同时也对自然语言标引技术和处理方法进行了探讨。
关键字:
搜索引擎;网络蜘蛛;中文分词;信息检索
DESIGNANDREALIZATIONOFSEARCHENGINESYSTEM
Abstract
AlongwiththerapiddevelopmentofcomputertechnologyandInternettechnology,usersareinaffluentinmoreandmoreinformationmessages.Inthesametimetheuserarefacingthatit’sgettingmoreandmoredifficultyforthemtoobtaintheexactlyinformationwhichtheymostneed.Theropeenginetechnologyhassolvedtheaboveproblemandisbecomingthecomputerscientificcirclesandtheinformationindustrialfieldstruggles.Thisarticlefirstlytalksaboutthebasictheoryofsearchengineanditsworkingprocessaswellasthetendencyoftechnologydevelopment.Itanalysestheprincipleandstructureofsearchengines.Thenaccordingtotheprincipleandconstituteofsearchengines,designandrealizationtheinformationcollectamoldpiece,theindexfunctionmoldpieceandindexmoldpiece,andhasanalyzedthedifferencesandsimilaritiesofretrievaltechnologies,retrievalfunctionsandretrievalmodes.
Thenetworkspideristhecoreofthesearchenginedesignandcometoadecisiontosearchanenginedatathesizeofthecapacity.Thistextmakeuseofthethreadstechnique,themulti-threadingeruptthedownloadwebpageinformation,validofexaltationdownloadofspeedandefficiency.ChinesewordsegmentationisoneofthedeterminantsofresultqualityofChinesesearchengines.WhetherChinesewordsaresegmentedeffectivelyandcorrectlyisvitaltoimprovingtherelevanceofthesearchingresultsandenhancingusersatisfaction.ThispaperputsforwardaChinesewordsegmentationmethodsuitedtofull-textretrievalsearchengine.Itnotonlyenhancestheaccuracyofwordsegmentationbutalsorecognizesunknownwords.Meanwhile,formulatedtheindexingandtheprocessingtechnologyofthenaturallanguage,
Keywords:
searchengine;Webspider;Chinesewordsegmentation;informationretrieval
摘要……………………………………………………………………………………………Ⅰ
Abstract………………………………………………………………………………………Ⅱ
1绪论…………………………………………………………………………………………1
1.1课题研究背景和意义………………………………………………………………………1
1.2国内外研究现状……………………………………………………………………………2
1.2.1搜索引擎的分类…………………………………………………………………………2
1.2.2搜索引擎的性能指标……………………………………………………………………3
1.2.3目前搜索引擎存在的不足………………………………………………………………4
1.3课题主要研究工作…………………………………………………………………………5
2关键技术………………………………………………………………………………………6
2.1搜索引擎工作原理…………………………………………………………………………6
2.2关键技术实现………………………………………………………………………………6
2.2.1Lucene技术………………………………………………………………………………6
2.2.2动态摘要技术……………………………………………………………………………8
2.2.3中文分词技术……………………………………………………………………………8
2.3优化技术…………………………………………………………………………………9
2.3.1线城池应用………………………………………………………………………………9
2.3.2页面消重…………………………………………………………………………………10
2.4本章小结…………………………………………………………………………………11
3搜索引擎系统的设计与实现………………………………………………………………12
3.1引言………………………………………………………………………………………12
3.2系统结构…………………………………………………………………………………12
3.2.1系统结构模型描述………………………………………………………………………12
3.2.2信息采集模块……………………………………………………………………………12
3.2.2.1设计思路………………………………………………………………………………13
3.2.2.2具体实现………………………………………………………………………………13
3.2.3索引功能模块……………………………………………………………………………19
3.2.3.1设计思路………………………………………………………………………………19
3.2.3.2具体实现………………………………………………………………………………20
3.2.4检索模块…………………………………………………………………………………26
3.2.4.1设计思路………………………………………………………………………………26
3.2.4.2具体实现………………………………………………………………………………26
3.2.5用户接口模块……………………………………………………………………………28
3.2.5.1设计思路………………………………………………………………………………28
3.2.5.2具体实现………………………………………………………………………………28
3.3本章小结…………………………………………………………………………………30
4性能测试……………………………………………………………………………………31
4.1实验数据比较分析…………………………………………………………………………31
4.1.1线程数设定………………………………………………………………………………31
4.1.2分词结果分析比较………………………………………………………………………31
4.2系统测试…………………………………………………………………………………32
4.2.1索引模块的测试…………………………………………………………………………32
4.2.2用户交互界面的测试……………………………………………………………………33
4.3本章小结…………………………………………………………………………………35
结论……………………………………………………………………………………………36
参考文献………………………………………………………………………………………38
致谢……………………………………………………………………………………………40
外文文献翻译原文……………………………………………………………………………41
外文文献翻译译文……………………………………………………………………………52
1绪论
1.1课题研究背景和意义
时代的变迁衍生出许多不同的时尚和潮流,上网已经成为新世纪全球最为耀眼的时尚和潮流之一。
据调查显示,Internet已经发展成为当今世界上最大的信息库,并且成为全球范围内传播信息的最主要渠道之一,其中WWW(WorldWideWeb,万维网)的发展最为迅速。
自从1991年诞生以来,WWW已经发展成拥有约1亿个用户和近千万个站点、600G信息容量的巨大的分布式信息空间,而且这个数字仍以每4到6个月翻一番的速度增加。
如表1-1所示的数字非常能说明这个问题[1]。
表1-1Web站点增长统计表
月份
Web站点数
1993年6月份
130
1993年12月份
623
1994年6月份
2738
1994年12月份
10022
1995年5月份
23500
1996年I月份
100000
1996年6月份
230000
1997年1月份
650000
目前,各类机构纷纷建立万维网站点,向社会发布大量信息。
用户可以通过它们去了解各个公司的产品、营销促销活动、用户手册和参加虚拟用户培训,可以进入政府机构去查找它们的设计与功能、文件报告、统计数据、法规条例、研究或投资项目,可以连入大专院校去了解专业与课程、教师学生名单、招生就业信息、科研项目和成果介绍,可以检索图书情报机构的服务功能、目录索引、电子图书期刊、数字化图片和音像资料、接受联网咨询服务和联网借阅服务等。
可以说,WWW为人们建立了一个新的生活环境,人们可以从中了解到所需的几乎任何信息,并可以方便地获得所需的多数信息。
但是Internet并没有一个权威机构对其进行统一管理。
它不像图书馆那样,可以向用户提供经过选择的、有序的、系统的、完整的信息;也不像商用联机检索系统,提供的信息有一定的格式,并按类型或学科进行分类,便于检索、便于利用。
网络信息具有以下几个特点[2]。
(1)信息内容覆盖社会各个领域,涉及范围广,数量惊人;
(2)信息分散、无序,组织松散;
(3)信息的动态性强,信息的增加、更新、删除及链接地址的更换,每时每刻都在进行;
(4)信息的利用价值差异大,既有有用的信息,也有无用的信息、甚至还有有害的信息,而且相互混杂交织在一起。
这些都造成网络信息的易检性和易利用性差,成为信息利用的障碍。
在这些情况下,人们长期以来习惯的信息获取方式已不再适用,所需信息的组织、整理、优化还需上网者自己来做。
用户常常被淹没在浩繁的信息海洋中,难以获得对自己有用的信息。
面对浩瀚的信息资源,如何有效地检索Web信息,以帮助用户从大量文档集合中找到与给定查询请求相关点的文档子集,就成为一项重要而迫切的研究课题。
自从1993年美国NEXOR公司的MarlynRoster开发出最早的网上检索工具Aliweb(Archie-LideIndexoftheWeb),1994年Yahoo公司推出基于目录的信息检索服务,然而,这种服务还不完全具备通常意义上搜索引擎的功能。
是年春天,M.Mauldin将J.Leavitt的网络蜘蛛程序接入到搜索程序中,并研制成功了Lycos,这是第一个真正意义上的搜索引擎。
搜索引擎(SearchEngine)又称为检索引擎[3],一般指通过超文本(超媒体)技术和Internet网上建立的一种向网络用户提供网上信息资源检索和导航服务的系统。
狭义上讲可以是一种为搜索Internet上的网页而设计的检索软件。
搜索引擎通过网上信息如网站、网页、URL(UniformResourceLocator,简称URL)以及BBS,Telnet,FTP,Newsgroup等,进行整理、组织、加工、处理,建立管理和存储这些信息的索引数据库,并提供基于该索引数据库的检索。
网络搜索引擎的最终目的是能够根据用户需求查找到相关信息。
它对于网上信息的开发利用,对于加速信息交流,促进信息增值进度有很大的推动作用。
随着Web的迅速增长,出现了许多搜索引擎,如世界上著名的一些门户站点AltaVista,Excite,Lycos,Infoseek,Google,DogPile以及国内的一些门户站点搜狐、新浪、网易等均提供搜索引擎。
1.2国内外研究现状
搜索引擎(SearchEngine)是随着Web信息的迅速增加,从1995年开始逐渐发展起来的一门技术。
用户要在如此浩瀚的信息海洋里寻找信息,必然会“大海捞针”,无功而返。
搜索引擎正是为了解决这个“迷航”问题而出现的技术。
它以一定的策略在因特网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。
搜索引擎提供的导航服务已经成为因特网上非常重要的网络服务,搜索引擎站点也被美誉为“网络门户”。
1.2.1搜索引擎的分类
根据不同的分类标准,搜索引擎有不同的分类方式。
按照信息搜集方法和服务方式的不同[7],搜索引擎系统可以分为三大类:
目录式搜索引擎(DirectorySearchEngine),机器人搜索引擎(RobotSearchEngine)和元搜索引擎(Meta-SearchEngine),分别介绍如下:
1)目录式搜索引擎
目录式搜索引擎(也称分类式搜索引擎)主要通过人工发现信息[11],由编辑人员根据信息资源的内容按一定的主题进行分类组织,并形成信息摘要,将信息置于事先确定的分类框架中,组织成一层一层的分类目录,目录下面有更具体的子目录。
这类搜索引擎的性能主要取决于对所获取网页的人工归类或自动分类算法的精确度如何。
其代表有Yahoo,LookSmart,OpenDirectory,Snap,Lycos,GoGuide等。
由于采用人工的方式对Web页面信息进行获取和维护,目录式搜索引擎的突出特点是具有比较好的信息质量,但也正是由于这一点使得其存在着以下几点不足:
(1)需要大量人力来搜索、组织信息,人工维护代价大;
(2)将主题分类具有很大的模糊性和主观性,对于使用者来说,有时并不知道所需信息属于哪一个分类;
(3)分类很难将一些偏僻领域覆盖进去,包括的内容不全,难以全面地反映WWW上的信息。
2)机器人搜索引擎
机器人搜索引擎也叫全文搜索引擎或网页搜索引擎,是目前最常用的一种方法。
其特点是利用一个称为Robot(也叫Spider,WebCrawler,WebWanderer或worm)的程序自动访问Web站点资源服务器[18],提取站点上的网页,并根据网页中的链接采取一定的策略进一步提取其它网页,或转移到其它站点上。
由索引器为搜集到的信息建立索引,由检索器根据用户的查询要求检索索引库,用户提交的查询中还可以包括and,or,not,near等布尔检索来精确定位。
从理论上讲,如果某网页中出现了用户的查询关键字,那么就将这一网页列入搜索结果,并将其返回给用户。
其服务方式是面向网页的全文检索服务,其特点是全面而充分。
此外,还有少量的搜索引擎采用目录式搜索引擎和机器人搜索引擎相结合的方法[17],如Newhoo〔目前己被Netscape收购)。
本文所讨论的搜索引擎是基于目前最常用的机器人搜索引擎的。
3)元搜索引擎
元搜索引擎没有自己的数据库,而是将用户查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。
服务方式为面向网页全文检索。
这类搜索引擎的优点是返回结果的信息量大,缺点是不能够充分使用元搜索引擎的功能,用户需要做更多的筛选。
这类搜索引擎的代表是WebCrawler,InfoMarket。
目前,商业的搜索引擎站点正在结合各种搜索引擎的优点,在类型上逐渐融合的趋势。
例如[21],Yahoo在保持人工分类的同时,使用Google的机器人搜索引擎,用户查询时,如果选择“网站搜索”便搜索人工分类库,选择“网页搜索”便搜索机器人搜索引擎的索引库。
一些传统的机器人搜索引擎也增加了人工分类的内容,以便高准确率的导航信息。
另外,搜索引擎站点有“门户化”的倾向,在提供搜索服务的同时,提供多样的网络服务,如新闻、股票、大气预报、虚拟社区、游戏、电子商务等等,成为名副其实的“网络门户”。
1.2.2搜索引擎的性能指标
搜索引擎是指对WWW站点资源和其它网络资源进行标引和检索的一类检索系统机制,它们是网络信息检索工具的典型代表。
可以将Web信息的搜索看作是一个信息检索问题,即在由Web网页组成的文档集中检索出与用户查询相关的文档。
所以可以用衡量传统信息检索系统的性能参数——查全率(Recall)和查准率(Precision)——来衡量一个搜索引擎的性能[7]。
查全率是检索出的相关文档数和文档集中所有的相关文档数的比率,衡量的是检索系统(搜索引擎)的查全率[13];查准率是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统(搜索引擎)的查准率。
对于一个检索系统来讲,查全率和查准率不可能两全其美;查全率高时,查准率低;查准率高时,查准率低。
在目前信息爆炸式增长的情况下,查全率很难比较,搜索引擎系统就很少使用查全率来衡量其性能。
目前的搜索引擎都非常关心查准率,即是否为用户提供了相关度很高的、高质量的导航信息。
影响一个搜索引擎的性能有很多因素,最主要的是信息搜集策略和检索模型[16],包括索引库的更新频率和策略、文档和查询的表示方法、评价文档和用户查询相关性的匹配策略、查询结果的排序方法和用户进行相关度反馈的机制。
1.2.3目前搜索引擎存在的不足
(1)关键词难以反映词间的相关关系
关键词之间存在着大量的同义现象、近义现象、一词多义和同形异义现象,而搜索引擎极少进行规范化处理[4],致使文献和检索提问中隐含的概念或需求往往难以表达出来,漏检率较局,甚至有时影响到检准率。
(2)汉字的切分问题
对汉字的切分目前有两种处理方法,一种是按单汉字检索,这虽然能够保证很高的检全率,但误检率相当高[5],于是又提出了对字与字之间的位置限定。
位置的限定可以减少一些虚假组配,但基于单汉字的检索仍然会带来很多的垃圾信息。
(3)同一结果重复出现
由于一篇文章可以方便在多个地方发表,而有些搜索引擎又不加以处理,所以常常可以在检索结果中发现大量重复信息,它们的网址虽不同,但是却链接在同一个页面上,用户费时费力打开后却发现是同样的内容,这给用户检索带来很大不便。
(4)死链
有些搜索引擎提供的检索结果中有许多的链接不可用,这些不可用的链接一般被人称为死链、断链。
(5)不能自动识别错别字
由于用户对某一概念、名人的名字的正确书写不了解,出现笔误等情况时有发生,如果用户误输入错别字,而搜索引擎不能自动给出正确关键词提示,就可能在检索结果
中找不到所需信息。
(5)覆盖面有限
传统的搜索引擎普遍覆盖率不高,据估计,网络中有超过8亿个可索引的网页,大约15TB的信息量,然而没有一个单个的搜索引擎能涵盖多于网上全部可检索网页的16%[20]。
1.3课题主要研究工作
本课题在研究搜索引擎各种技术的基础上,参考了多个搜索引擎的实现策略,将设计并实现一个中文搜索引擎。
该搜索引擎将以中文Web页面为检索目标进行信息搜集与索引,考虑到Web的巨大容量和增长速度,该搜索引擎应能满足大数据量的要求,具备一定的扩展能力和较高的检索性能,并期望能够设计出一种灵活的框架结构以便扩展新的功能。
整个系统将采用C#语言实现。
本课题的研究工作包括四个方面:
(1)信息采集模块Robot
Robot(也称为Spider或Crawler)实际上是一个基于Web的程序,它从一个初始网页出发遍历互联网自动地采集网上信息。
当Robot进入某个超文本页面时,它利用html语言的标记结构来搜索信息和获取指向其他超文本的url链接,通过一定的算法选择下一个要访问的站点继而转向另一个站点继续搜集信息。
理论上,如果为Robot建立一个适当的初始文当集,它就可以遍历整个网络。
但实际上,这样的目标是不可能实现的。
因为目前Web上的很多网页是动态的,robot根本无法访问,这也构成了当前搜索引擎待解决的一大难题。
(2)索引功能模块
将Robot采集来的网页进行处理,然后编制索引入库以备用户检索使用是索引模块的核心功能。
处理网页主要包括以下几个部分:
文档特征提取、相关度分析、网页筛选、标引、归类和最后的入库。
索引项有客观索引和内容索引两种:
客观项与文档的语义内容无关,如作者名、URL、更新时间、编码、长度、连接流行度等等,内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。
内容索引可以分为单索引项和多索引项(或者称为短语索引项)两种,单索引对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);对于中文等连续书写的语言,必须进行词语的切分。
(3)检索模块
作为搜索引擎和用户之间的接口,检索模块首先要分析给出的查询式,然后访问索引数据库通过匹配算法获得检索结果,根据用户的查询在索引库中快速地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 搜索引擎 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)