搜索引擎的设计与实现.doc

上传人:精*** 文档编号:832011 上传时间:2023-09-07 格式:DOC 页数:61 大小:724.01KB
下载 相关 举报
搜索引擎的设计与实现.doc_第1页
第1页 / 共61页
搜索引擎的设计与实现.doc_第2页
第2页 / 共61页
搜索引擎的设计与实现.doc_第3页
第3页 / 共61页
搜索引擎的设计与实现.doc_第4页
第4页 / 共61页
搜索引擎的设计与实现.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、华北电力大学毕业设计(论文)摘要 摘要随着计算机技术和互联网技术的飞速发展,越来越丰富的信息呈现在用户面前,但同时伴随的问题是用户越来越难以获得其最需要的信息。搜索引擎技术解决了用户检索网络信息的困难,目前搜索引擎技术正成为计算机科学界和信息产业界争相研究、开发的对象。本文首先介绍搜索引擎的基本原理、工作过程及技术发展趋势。然后从搜索引擎的原理、构成出发,设计并实现了信息采集模块、索引功能模块和检索模块,并从检索技术、检索功能、检索方式对它们进行比较和分析。网络蜘蛛是搜索引擎设计的核心,决定了搜索引擎数据容量的大小。本文利用线程池技术,多线程并发下载网页信息,有效的提高了下载的速度跟效率。中文

2、分词的结果是影响搜索引擎中文检索结果质量的重要因素,能否准确有效的分词对提高搜索结果的相关性和用户满意度都至关重要。本文采用了一种适用于全文检索搜索引擎的中文分词方案,既提高了分词的准确性,又能识别文中的未登录词。同时也对自然语言标引技术和处理方法进行了探讨。关键字:搜索引擎;网络蜘蛛;中文分词;信息检索DESIGN AND REALIZATION OF SEARCH ENGINE SYSTEMAbstractA long with the rapid development of computer technology and Internet technology, users are i

3、n affluent in more and more information messages. In the same time the user are facing that its getting more and more difficulty for them to obtain the exactly information which they most need. The rope engine technology has solved the above problem and is becoming the computer scientific circles an

4、d the information industrial field struggles. This article firstly talks about the basic theory of search engine and its working process as well as the tendency of technology development. It analyses the principle and structure of search engines. Then according to the principle and constitute of sea

5、rch engines, design and realization the information collect a mold piece, the index function mold piece and index mold piece, and has analyzed the differences and similarities of retrieval technologies, retrieval functions and retrieval modes. The network spider is the core of the search engine desi

6、gn and come to a decision to search an engine data the size of the capacity. This text make use of the threads technique, the multi-threading erupt the download web page information, valid of exaltation download of speed and efficiency. Chinese word segmentation is one of the determinants of result

7、quality of Chinese search engines. Whether Chinese words are segmented effectively and correctly is vital to improving the relevance of the searching results and enhancing user satisfaction. This paper puts forward a Chinese word segmentation method suited to full - text retrieval search engine. It

8、not only enhances the accuracy of word segmentation but also recognizes unknown words. Meanwhile, formulated the indexing and the processing technology of the natural language,Keywords: search engine; Web spider; Chinese word segmentation; information retrievalII华北电力大学毕业设计(论文)目录目 录摘要Abstract1 绪论11.1

9、 课题研究背景和意义11.2 国内外研究现状21.2.1 搜索引擎的分类21.2.2 搜索引擎的性能指标31.2.3 目前搜索引擎存在的不足41.3 课题主要研究工作52 关键技术62.1 搜索引擎工作原理62.2 关键技术实现62.2.1 Lucene技术62.2.2 动态摘要技术82.2.3 中文分词技术82.3 优化技术92.3.1 线城池应用92.3.2 页面消重102.4 本章小结113 搜索引擎系统的设计与实现123.1 引言123.2 系统结构123.2.1 系统结构模型描述123.2.2 信息采集模块123.2.2.1 设计思路133.2.2.2 具体实现133.2.3 索引功

10、能模块193.2.3.1 设计思路193.2.3.2 具体实现203.2.4 检索模块263.2.4.1 设计思路263.2.4.2 具体实现263.2.5 用户接口模块283.2.5.1 设计思路283.2.5.2 具体实现283.3 本章小结304 性能测试314.1 实验数据比较分析314.1.1 线程数设定314.1.2 分词结果分析比较314.2 系统测试324.2.1 索引模块的测试324.2.2 用户交互界面的测试334.3 本章小结35结论36参考文献38致谢40外文文献翻译原文41外文文献翻译译文52华北电力大学毕业设计(论文)正文1 绪论1.1 课题研究背景和意义时代的变迁

11、衍生出许多不同的时尚和潮流,上网已经成为新世纪全球最为耀眼的时尚和潮流之一。据调查显示,Internet已经发展成为当今世界上最大的信息库,并且成为全球范围内传播信息的最主要渠道之一,其中WWW(World Wide Web,万维网)的发展最为迅速。自从1991年诞生以来,WWW 已经发展成拥有约 1亿个用户和近千万个站点、600G信息容量的巨大的分布式信息空间,而且这个数字仍以每4到6个月翻一番的速度增加。如表1-1所示的数字非常能说明这个问题1。表1-1 Web站点增长统计表月份Web站点数1993年 6月份1301993年 12月份6231994年 6月份27381994年 12月份10

12、0221995年 5月份235001996年 I月份1000001996年 6月份2300001997年 1月份650000目前,各类机构纷纷建立万维网站点,向社会发布大量信息。用户可以通过它们去了解各个公司的产品、营销促销活动、用户手册和参加虚拟用户培训,可以进入政府机构去查找它们的设计与功能、文件报告、统计数据、法规条例、研究或投资项目,可以连入大专院校去了解专业与课程、教师学生名单、招生就业信息、科研项目和成果介绍,可以检索图书情报机构的服务功能、目录索引、电子图书期刊、数字化图片和音像资料、接受联网咨询服务和联网借阅服务等。可以说,WWW为人们建立了一个新的生活环境,人们可以从中了解到

13、所需的几乎任何信息,并可以方便地获得所需的多数信息。但是Internet并没有一个权威机构对其进行统一管理。它不像图书馆那样,可以向用户提供经过选择的、有序的、系统的、完整的信息;也不像商用联机检索系统,提供的信息有一定的格式,并按类型或学科进行分类,便于检索、便于利用。网络信息具有以下几个特点2。(1)信息内容覆盖社会各个领域,涉及范围广,数量惊人;(2)信息分散、无序,组织松散;(3)信息的动态性强,信息的增加、更新、删除及链接地址的更换,每时每刻都在进行;(4)信息的利用价值差异大,既有有用的信息,也有无用的信息、甚至还有有害的信息,而且相互混杂交织在一起。这些都造成网络信息的易检性和易

14、利用性差,成为信息利用的障碍。在这些情况下,人们长期以来习惯的信息获取方式已不再适用,所需信息的组织、整理、优化还需上网者自己来做。用户常常被淹没在浩繁的信息海洋中,难以获得对自己有用的信息。面对浩瀚的信息资源,如何有效地检索Web信息,以帮助用户从大量文档集合中找到与给定查询请求相关点的文档子集,就成为一项重要而迫切的研究课题。自从1993年美国NEXOR公司的Marlyn Roster开发出最早的网上检索工具Aliweb(Archie-Lide Index of the Web), 1994年Yahoo公司推出基于目录的信息检索服务,然而,这种服务还不完全具备通常意义上搜索引擎的功能。是年

15、春天,M.Mauldin将J.Leavitt的网络蜘蛛程序接入到搜索程序中,并研制成功了Lycos,这是第一个真正意义上的搜索引擎。搜索引擎(Search Engine)又称为检索引擎3,一般指通过超文本(超媒体)技术和Internet网上建立的一种向网络用户提供网上信息资源检索和导航服务的系统。狭义上讲可以是一种为搜索Internet上的网页而设计的检索软件。搜索引擎通过网上信息如网站、网页、URL(Uniform Resource Locator,简称URL)以及BBS, Telnet, FTP, Newsgroup等,进行整理、组织、加工、处理,建立管理和存储这些信息的索引数据库,并提供

16、基于该索引数据库的检索。网络搜索引擎的最终目的是能够根据用户需求查找到相关信息。它对于网上信息的开发利用,对于加速信息交流,促进信息增值进度有很大的推动作用。随着Web的迅速增长,出现了许多搜索引擎,如世界上著名的一些门户站点AltaVista, Excite, Lycos, Infoseek, Google, DogPile以及国内的一些门户站点搜狐、新浪、网易等均提供搜索引擎。1.2 国内外研究现状搜索引擎(Search Engine)是随着Web信息的迅速增加,从1995年开始逐渐发展起来的一门技术。用户要在如此浩瀚的信息海洋里寻找信息,必然会“大海捞针”,无功而返。搜索引擎正是为了解决

17、这个“迷航”问题而出现的技术。它以一定的策略在因特网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。搜索引擎提供的导航服务已经成为因特网上非常重要的网络服务,搜索引擎站点也被美誉为“网络门户”。1.2.1 搜索引擎的分类根据不同的分类标准,搜索引擎有不同的分类方式。按照信息搜集方法和服务方式的不同7,搜索引擎系统可以分为三大类:目录式搜索引擎(Directory Search Engine),机器人搜索引擎(Robot Search Engine)和元搜索引擎(Meta-Search Engine),分别介绍如下:1)目录式搜索引擎 目录式搜索

18、引擎(也称分类式搜索引擎)主要通过人工发现信息11,由编辑人员根据信息资源的内容按一定的主题进行分类组织,并形成信息摘要,将信息置于事先确定的分类框架中,组织成一层一层的分类目录,目录下面有更具体的子目录。这类搜索引擎的性能主要取决于对所获取网页的人工归类或自动分类算法的精确度如何。其代表有Yahoo, LookSmart, Open Directory, Snap, Lycos, Go Guide等。 由于采用人工的方式对Web页面信息进行获取和维护,目录式搜索引擎的突出特点是具有比较好的信息质量,但也正是由于这一点使得其存在着以下几点不足: (1)需要大量人力来搜索、组织信息,人工维护代价

19、大; (2)将主题分类具有很大的模糊性和主观性,对于使用者来说,有时并不知道所需信息属于哪一个分类;(3)分类很难将一些偏僻领域覆盖进去,包括的内容不全,难以全面地反映WWW上的信息。2)机器人搜索引擎 机器人搜索引擎也叫全文搜索引擎或网页搜索引擎,是目前最常用的一种方法。其特点是利用一个称为Robot(也叫Spider, Web Crawler, Web Wanderer或worm)的程序自动访问Web站点资源服务器18,提取站点上的网页,并根据网页中的链接采取一定的策略进一步提取其它网页,或转移到其它站点上。由索引器为搜集到的信息建立索引,由检索器根据用户的查询要求检索索引库,用户提交的查

20、询中还可以包括and, or, not, near等布尔检索来精确定位。从理论上讲,如果某网页中出现了用户的查询关键字,那么就将这一网页列入搜索结果,并将其返回给用户。其服务方式是面向网页的全文检索服务,其特点是全面而充分。此外,还有少量的搜索引擎采用目录式搜索引擎和机器人搜索引擎相结合的方法17,如Newhoo目前己被Netscape收购)。本文所讨论的搜索引擎是基于目前最常用的机器人搜索引擎的。3)元搜索引擎 元搜索引擎没有自己的数据库,而是将用户查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。服务方式为面向网页全文检索。这类搜索引擎的

21、优点是返回结果的信息量大,缺点是不能够充分使用元搜索引擎的功能,用户需要做更多的筛选。 这类搜索引擎的代表是WebCrawler, InfoMarket。目前,商业的搜索引擎站点正在结合各种搜索引擎的优点,在类型上逐渐融合的趋势。例如21,Yahoo在保持人工分类的同时,使用Google的机器人搜索引擎,用户查询时,如果选择“网站搜索”便搜索人工分类库,选择“网页搜索”便搜索机器人搜索引擎的索引库。一些传统的机器人搜索引擎也增加了人工分类的内容,以便高准确率的导航信息。另外,搜索引擎站点有 “门户化”的倾向,在提供搜索服务的同时,提供多样的网络服务,如新闻、股票、大气预报、虚拟社区、游戏、电子

22、商务等等,成为名副其实的 “网络门户”。1.2.2 搜索引擎的性能指标 搜索引擎是指对 WWW 站点资源和其它网络资源进行标引和检索的一类检索系统机制,它们是网络信息检索工具的典型代表。可以将Web信息的搜索看作是一个信息检索问题,即在由Web网页组成的文档集中检索出与用户查询相关的文档。所以可以用衡量传统信息检索系统的性能参数查全率(Recall)和查准率(Precision)来衡量一个搜索引擎的性能7。 查全率是检索出的相关文档数和文档集中所有的相关文档数的比率,衡量的是检索系统(搜索引擎)的查全率13;查准率是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统(搜索引擎)的查准

23、率。对于一个检索系统来讲,查全率和查准率不可能两全其美;查全率高时,查准率低;查准率高时,查准率低。在目前信息爆炸式增长的情况下,查全率很难比较,搜索引擎系统就很少使用查全率来衡量其性能。目前的搜索引擎都非常关心查准率,即是否为用户提供了相关度很高的、高质量的导航信息。影响一个搜索引擎的性能有很多因素,最主要的是信息搜集策略和检索模型16,包括索引库的更新频率和策略、文档和查询的表示方法、评价文档和用户查询相关性的匹配策略、查询结果的排序方法和用户进行相关度反馈的机制。1.2.3 目前搜索引擎存在的不足(1)关键词难以反映词间的相关关系 关键词之间存在着大量的同义现象、近义现象、一词多义和同形

24、异义现象,而搜索引擎极少进行规范化处理4,致使文献和检索提问中隐含的概念或需求往往难以表达出来,漏检率较局,甚至有时影响到检准率。(2)汉字的切分问题 对汉字的切分目前有两种处理方法,一种是按单汉字检索,这虽然能够保证很高的检全率,但误检率相当高5,于是又提出了对字与字之间的位置限定。位置的限定可以减少一些虚假组配,但基于单汉字的检索仍然会带来很多的垃圾信息。(3)同一结果重复出现 由于一篇文章可以方便在多个地方发表,而有些搜索引擎又不加以处理,所以常常可以在检索结果中发现大量重复信息,它们的网址虽不同,但是却链接在同一个页面上,用户费时费力打开后却发现是同样的内容,这给用户检索带来很大不便。

25、(4)死链 有些搜索引擎提供的检索结果中有许多的链接不可用,这些不可用的链接一般被人称为死链、断链。(5)不能自动识别错别字 由于用户对某一概念、名人的名字的正确书写不了解,出现笔误等情况时有发生,如果用户误输入错别字,而搜索引擎不能自动给出正确关键词提示,就可能在检索结果中找不到所需信息。(5)覆盖面有限传统的搜索引擎普遍覆盖率不高,据估计,网络中有超过8亿个可索引的网页,大约 15TB的信息量,然而没有一个单个的搜索引擎能涵盖多于网上全部可检索网页的16%20。1.3 课题主要研究工作本课题在研究搜索引擎各种技术的基础上,参考了多个搜索引擎的实现策略,将设计并实现一个中文搜索引擎。该搜索引

26、擎将以中文Web页面为检索目标进行信息搜集与索引,考虑到 Web 的巨大容量和增长速度,该搜索引擎应能满足大数据量的要求,具备一定的扩展能力和较高的检索性能,并期望能够设计出一种灵活的框架结构以便扩展新的功能。整个系统将采用C# 语言实现。本课题的研究工作包括四个方面:(1)信息采集模块RobotRobot(也称为Spider或Crawler)实际上是一个基于Web的程序,它从一个初始网页出发遍历互联网自动地采集网上信息。当Robot进入某个超文本页面时,它利用html语言的标记结构来搜索信息和获取指向其他超文本的url链接,通过一定的算法选择下一个要访问的站点继而转向另一个站点继续搜集信息。

27、理论上,如果为Robot建立一个适当的初始文当集,它就可以遍历整个网络。但实际上,这样的目标是不可能实现的。因为目前Web上的很多网页是动态的,robot根本无法访问,这也构成了当前搜索引擎待解决的一大难题。(2)索引功能模块将Robot采集来的网页进行处理,然后编制索引入库以备用户检索使用是索引模块的核心功能。处理网页主要包括以下几个部分:文档特征提取、相关度分析、网页筛选、标引、归类和最后的入库。索引项有客观索引和内容索引两种:客观项与文档的语义内容无关,如作者名、URL、更新时间、编码、长度、连接流行度等等,内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。内容索引可以分

28、为单索引项和多索引项(或者称为短语索引项)两种,单索引对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);对于中文等连续书写的语言,必须进行词语的切分。(3)检索模块作为搜索引擎和用户之间的接口,检索模块首先要分析给出的查询式,然后访问索引数据库通过匹配算法获得检索结果,根据用户的查询在索引库中快速地检索出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制,然后根据相关度进行降序排序提交给用户。(4)用户接口模块用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。主要的目的是方便用户使用搜索引擎,高效率、多方式地从搜索

29、引擎中得到有效、及时的信息。用户接口的设计和实现使用人机交互的理论和方法,要充分适应人类思维习惯。随着信息的增长,人们给搜索引擎提出了越来越高的要求,使得搜索引擎的用户接口部分做得越来越复杂。2关键技术 本章将从搜索引擎实现的角度出发,讨论搜索引擎实现过程中要用到的关键技术,如动态摘要技术,线程池技术等,以及如何利用这些技术优化搜索引擎的性能,使其能够更好地实现检索网页的功能。2.1 搜索引擎的工作原理搜索引擎尽管种类很多,但其原理都是通过某种界面与用户交互,接受用户查询请求,然后将用户查询的特定信息分解成若干关键词进行分析,再在索引数据库中进行匹配,挑选符合条件的信息,按照匹配程度的高低进行

30、排序,最后将结果返回给用户。搜索引擎并不是真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。真正意义上的搜索引擎,通常指的是收集了互联网上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户杳找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。搜索引擎的原理,可以看作二步:从互联网上抓取网页=建立索引数据库=在索引数据库中搜索排序。2.2 关键技术实现2.2.1 Lucene技术介绍Lucene是一个基于Java的全文索引工具包20

31、。它不是一个完整的全文索引应用,而是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。(1)Lucene背景及应用Lucene 的作者:Lucene的贡献者DougCutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能15。已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有: Jive:W

32、EB论坛系统; Eyebrows:邮件列表HTML归档/浏览/查询系统,本文的主要参考文档“The Lucene search engine: Powerful, flexible, and free”作者就是EyeBrows系统的主要开发者之一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统。 Cocoon:基于XML的Web发布框架,全文检索部分使用了Lucene。 Eclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene。(2)Lucene结构介绍对于中文用户来说,最关心的问题是其是否支持中文的全文检索。由于Lucene良好架构设计,对中文的

33、支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表=记录=字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口中。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统26。Lucene最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制。Lucene的创新之处:大部分的搜索(数据库)引擎都是用B树结构来维护索引,索引的更新会导致大量的IO操作,Lucene在实现中,对此稍微有所改进:不是维护一个索引文件,而是

34、在扩展索引的时候不断创建新的索引文件,然后定期的把这些新的小索引文件合并到原先的大索引中(针对不同的更新策略,批次的大小可以调整),这样在不影响检索的效率的前提下,提高了索引的效率。 (3)Lucene和其他一些全文检索系统/应用的比较: 增量索引和批量索引Lucene可以进行增量的索引(Append),可以对于大量数据进行批量索引,并且接口设计用于优化批量索引和小批量的增量索引。 很多系统只支持批量的索引,有时数据源有一点增加也需要重建索引。 数据源Lucene没有定义具体的数据源,而是一个文档的结构,因此可以非常灵活的适应各种应用(只要前端有合适的转换器把数据源转换成相应结构),很多系统只

35、针对网页,缺乏其他格式文档的灵活性15。 索引内容抓取 Lucene的文档是由多个字段组成的,甚至可以控制那些字段需要进行索引,那些字段不需要索引,近一步索引的字段也分为需要分词和不需要分词的类型:需要进行分词的索引,比如:标题,文章内容字段不需要进行分词的索引,比如:作者/日期字段 缺乏通用性,往往将文档整个索引了. 语言分析 Lucene通过语言分析器的不同扩展实现:可以过滤掉不需要的词:an the of 等,西文语法分析:将jumps jumped jumper都归结成jump进行索引/检索非英文支持:对亚洲语言,阿拉伯语言的索引支持缺乏通用接口实现。 查询分析 Lucene通过查询分

36、析接口的实现,可以定制自己的查询语法规则:比如多个关键词之间的 + - and or关系等。 并发访问Lucene能够支持多用户的使用。 (4)Lucene的优点10 索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。 优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。 设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token

37、流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search11)、分组查询等等。2.2.2动态摘要技术用户检索时,检索器向检索进程提交的是检索请求,得到的是大量的URL集合,还必须得到摘要信息。一般来说,摘要指的是一篇文章的简短介绍。但是搜索引擎采用的摘要概念不一样,它不一定是文章的简短介绍,它只是按照一定的规则在网页中提取的一般信息。摘要按照获取的方式不同,可分为静态摘要和动态摘要。传统的摘要是静态的19,每个页

38、面都会有一段摘要信息单独保存在文件中,在检索时直接从这些文件中读取就可以得到摘要信息。但是静态摘要只是关于页面内容的一般信息,不一定含有检索词。而动态摘要可以获取页面中含有检索词的一段文字,并对检索词进行加亮显示。动态摘要19,是根据用户检索结果重新回到本地页面集并从文件中读取含有检索词的一段文字。为了提高速度,只获取那些用户将要查看的页面中含有的检索结果的摘要,比如检索结果总共有1000个,如果一页显示10个结果,那么就有100个结果页面。开始时,获取第一页的10个检索结果的摘要,以便用户查看。如果用户跳到第9个页面,就获取第9个页面的检索结果的摘要。如果用户再回到第1个页面,就不需要重新获

39、取摘要了,因为摘要已经保存下来了。这样处理比一次性获得所有检索结果的动态摘要速度要快得多,而且根据用户的进一步选择提供进一步的摘要,并且不需要重新获取已获取摘要的检索结果的摘要,有利于提高检索的速度和质量。2.2.3中文分词技术中文分词的准确度,对搜索引擎结果相关性和准确性有相当大的关系。中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。现有的分词算法可分为三大类24:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。本系统的中文分词采用的是基于字符串匹配的分词方法。这种方法又叫做机

40、械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下24:(1)正向最大匹配法(由左到右的方向);(2)逆向最大匹配法(由右到左的方向);(3)最少切分(使每一句中切出的词数最小)。还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起

41、来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/16926,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式18,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和

42、词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。2.3 优化技术2.3.1 线程池的应用诸如Web服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理那些来自远程的大量短小任务。请求以某种方式到达服务器,这种方式可能是通过网络协议HTTP、 FTP 等。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理时间很短而请求数目却很大。(1)建立线城池的必要性构建服务器应用程序的一个简单的模型是:每当一个请求到达就创建一个新线程,然后在新线程中为请求提供服务。请求结束之后,该线程就销毁。实际上如果试图部署以这种方式运行的服务器应用程序,那么在大量的请求下,服务器资源将很快消耗完,请求处理速度也会急剧下降。在面向对象程序语言中,对象的创建和销毁是很费时间的,因为创建一个对象需要申请内存资源以及其他资源。接受一个请求就创建一个新线程,开销是很大的。服务器在创建和销毁线程上花费的时间和消耗的系统资源甚至可能要比花在处理用户请求的时间和资源要多得多。除了创建和销毁线程的开销之外9,活动的线程也需要占用系统资源。如果创建太多的线程,可能会导致系统由于过度消耗内存或线程之间切换过于频繁而崩溃。(2)创建线城池所以提高服务器应用程序效率的一个很

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922