全文搜索引擎的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全文搜索引擎的设计与实现

【摘要】随着互联网的出现和伴随着它的高速发展,人们获得信息的方式也越来越依靠网络的存在,但是随着网络资源的不断丰富,人们搜索一个信息的难度也在增加,搜索引擎就是在这种情况下发展而来,本文在分析了搜索引擎的研究现状的基础上,对传统分词算法加以改进,在一定程度上提高搜索的精确率和识别率。

【关键词】全文搜索;搜索引擎;分词

随着互联网资源的飞速增长,搜索引擎的发展在很大程度上决定了互联网资源的使用率,只有不断增强搜索引擎的技术才能使我们更好的利用网络资源。互联网的使用率也代表着一个国家网络的使用水平,而搜索引擎在很大程度就制约着网络资源的利用。现在的搜索引擎技术还存在着很多的问题,需要我们不断的去改进。

目前的搜索引擎尚有很多的缺陷,主要体现在,网络资源的质量控制不足,由于缺乏一个系统的控制,所以资源的完整性和可靠性都不能得到保证,导致搜索引擎的无效搜索。其次就是搜索引擎占用着太多的资源,由于采用的是链接是把资源站的信息传回本地,无疑会使网络的流量增加传输的困难,使网络限于瘫痪。再次即使是做好的搜索引擎也不能做到对全网的一个覆盖,而且各搜索引擎没有明确的分工,重复搜索,造成资源的浪费,没有专门性的搜索引擎,大家都在做全面的搜索引擎,多而不精。同时因为搜索引擎的技术发展还不是很完善,对于一些信息的检测会出现漏检,不能明确的标记要搜索的对象。各搜索引擎也不能实现交叉覆盖。需要用不同的搜索引擎检测才行。搜索引擎技术是由信息检索技术发展而来的。作为一种计算机本身的技术在网络上的使用,搜索引擎所要搜索的就是网页的集合,所以要做好一个搜索引擎也是相当困难和需要技术的,首先因为数据的分布是分散的,没有系统的整理,只是凌乱的存储在服务器上,对网络和平台的需求特别高,其次就是,网络信息的更新是飞速的,需要我们不断的去刷新数据,对技术的依托就更为强烈。再次就是数据并不是只有一种结构,而是各种结构存在在网络上,形式不同,就需要有能处理不同形式的处理器,所以一个好的搜索引擎必须具备高效的性能和大量的内存和处理不同数据类型的能力。

全文搜索引擎也称为爬虫式的搜索引擎,是利用spider程序在访问网络时,提取站点的信息,并根据搜索的关键词通过链接跳转到其他站点,从而获取需要的信息和网页,基于对关键词的检索,分词的问题也就显现出来了,尤其是在中文的分词技术上还有很大的问题,这这主要是因为中文的复杂程度决定的,中文只能在字,句和段落之间做具体的划分,对词的划分却没有明显的界定,这无疑就对我们的搜索增加了难度。对语言的分析是一项庞大的工程,而不能仅仅作为一项技术来看待。目前,主要的分词技术主要有基于词库的分词和无词典的分词技术,其中词库的分词采用的有正向最大匹配和正向最小匹配等方法,这类算法的设计要求较低,搜索也比较容易实现,但是它过分依赖已经建立的词库,词库

越丰富,搜索的结果就越简单,准确率也就越高。而无词典的分词技术,是在文章中的相邻字进行统计,在文中出现的次数高,就会作为一个词的索引几率就大,从而提炼出关键词,这类技术的优点就是可以节约建立词库的内存,也避免了对分词的把握不当造成搜索困难,全文搜索引擎主要是通过收集站点,过滤器,分词程序,搜索引擎,和结果排序程序等几步联结起来来的,主要就是信息的采集,到信息的筛选和信息结果的查询。

在本文设计的搜索引擎中,他的整个运行过程是这样设定的,通过爬虫采集放在网络上的站点,并加以汇总,以天网格式的数据形式存储在本地站点,过滤器通过自身设定的程序对存放在本地站点上的网页进行索引,通过对用户关键词的比较,查询出需要的网页传输给本地,并通过架构小型的搜索引擎,使爬虫系统可以多线操作,保证网速的高速运转,让站点可以持续的链接,同时过滤不能访问的网站,本搜索引擎的另一个优点就是采用天网格式的输出,不仅容错性更高,而且他采用正向匹配,支持关键词的查询。本引擎基于Linux平台,编程语言c++,爬虫在采集信息的时候可以来回爬取,同时保持两条线路,已经访问和未访问的,并不断的对新的站点和已经访问过的站点做对比,不断选取新的信息,进行在本地站点上的存取。在索引方面本设计采用的是通过几个中间的文件转换来实现的,在分词算法程序中,采用正向匹配最小窗口法,采用词库是TSE中的中文词典,在基于词库的分词算法中,词汇的收集和词典的内部结构的设计会影响着最终的搜索结果,一个词库的词汇收集的越多,词库的结构越合理,也就说对我们搜索的结果也就越有帮助,即搜索的信息也就越全面和精确,这也不能说就一直去扩充词库就好了,一旦词库的词越多,对切词的要求就会更高,导致效率下降,甚至影响搜索的准确率,所以在词库中最重要的是分词的算法。可以说分词词典就是一个人的大脑,只有对信息进行扩充和分类,这样在用到的时候才能很快的提取出来,不加以分类就会快速的遗忘,这点不通过于计算机,计算机只是增加了索引的难度。同时采用自动分词模块,即采用正向最大匹配中文自动匹配分词算法对为登录词进行召回,同时对未登录词的切分也是一个设计,在这个模块中实现了数据库的分词功能,并且实现了添加功能,查询程序通过对关键词的提取和对网页站点的匹配得出需要的站点,采用的是倒派所引查询程序。在通过传输到用户的本地站点,实现信息的获得。本文通过前人技术的研究和经验的吸取,通过对各个模块的分析最终实现了对一个全文搜索引擎的设计,实现了信息的收集和信息的索引存储和最后信息的查询和导出,设计得以实现。面对现代信息的高度发达,信息的更新周期越来越短,可以说网络速度的更新是我们所不能想象的,信息的激增对搜索引擎来说是一种新的挑战,如何对信息进行更好的过滤和存储是本设计的一个重点,对分词的算法加以改进,实现对未登录词的收录。都使我们使用搜索引擎时更加的便捷和快速。不过由于对分词我们采用一次性读取,会瞬间占用大量的磁盘和空间,影响计算机的运行速度,所以这一模块的增加对硬件的设备要求较高,同时采用二元分词避免了因为数据更新速度过快导致不能自动识别新的词汇,可以在一定程度上对这种情况进行缓解。同时因为技术要求,分词器不能做到对新词汇的自动鉴别,词库的更新还需要更长的反应时间。

搜索引擎从当初信息搜索的需要,到现在已经经过了飞速的发展,不仅搜索的范围越来越广泛,而且搜索的项目也越来越多,功能比原来更加的强大,现在

相关文档
最新文档