一个多全文检索系统设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个多全文检索系统设计与实现

一个多全文检索系统设计与实现   摘要:信息时代的到来产生了大量的数字信息,各种格式的电子文档接踵而至,在这些海量的文档中如何快速有效的查找到自己所需要的信息就成为一个现实的问题。本文在对全文检索有关技术进行分析和研究的基础之上,提出并实现了一个实用的多文档全文检索系统,为用户提供了一种切实可行的解决方案。   关键词:全文检索 索引 设计 实现      0 引言   全文检索是现代信息检索技术的一个非常重要的分支,它是处理非结构化数据的强大工具,也是搜索引擎的核心技术之一。全文检索是指计算机索引程序通过扫描文章中的每一个词,对文档按各种策略进行分词,然后对切分得到的每个有检索意义的词建立索引,并指明该词在文章中出现的次数和位置,当用户输入检索关键字进行查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果按照某种顺序反馈给用户[1]。这个过程类似于通过字典中的检索字表查字的过程。   目前,时下国内外公司相继推出的桌面搜索引擎是信息检索技术在日常生活中的普遍推广,比如:百度、Excite、Alta Vista、Google、InfoSeek等等。它们都是通用搜索引擎的代表,为人们查找和检索信息资源提供了极大的便利。   虽然通用搜索引擎的功能十分强大,但是对于拥有很多子网站的大型网站来说,都存在响应速度缓慢,索引结果不完整等一系列问题不能够解决;并且,用这些通用搜索引擎的站内搜索功能来实现全文检索功能,往往达不到人们预想得到的结果,经常会出现搜索结果不完全或者出现“死链接”的情况[2]。目前做的比较好的多是一些学术论文数据库和专业数据库,如清华同方开发的中国期刊全文数据库(CNKI),北大与3M公司合作开发的中国对外经济贸易法律全文数据库等。   1 中文全文检索关键技术研究   建立一个全文检索系统,首先要将源文档转换为能够进行文本查找的全文数据库,包括全文的分割处理以及检索标识的提取,这称为全文本的前处理工作。本系统处理的对象大多数是WORD文本文档,所以前处理实现对各种文档格式的支持与转换以及信息过滤,对信息的标引、分类,生成可供检索的索引库,即进行全文数据库的组织与索引,这是整个系统的基础。其中涉及以下几个关键技术。   1.1 中文分词研究   目前在自然语言处理中,中文处理技术要比西方文字的处理技术落后许多。许多西方文字的处理方法不能在中文中直接使用,这是由中文和西方文字的结构和组成方式不同而造成的。解决方法就是把自然语言进行分词,英文的分词相对容易,因为英文的每个单词间都有天然的分隔符,但当遇到中文时,就无能为力了。   要想对中文进行完全精确的分词,能够正确表达其内在的含义,几乎可以称之为不可能的任务。这是因为当汉字的排列组合不同时,相同汉字就会出现不同的词性和不同的词义;另外,还要考虑到汉字所处的上下文语境。因此,想让计算机理解并正确分析中文非常困难。我们可以采用常用的二分法。所谓二分法,就是将每两个字当作一个词语进行切分,然后建立索引。例如下面的文本。   当使用二分法进行切分时,切分出来的词条应该如下所示:   这种切分方式看似有些简单,但是,它显著减少了每个词条后位置信息的长度,对提高搜索过程的速度,减少运算量有巨大的帮助。   1.2 全文检索引擎――CLucene CLucene相当于Lucene的一个C++端口,是一个对Lucene的移植,而Lucene是一个基于java的高性能的全文搜索引擎。它不是一个完整的全文索引应用,而是一个用Java写的全文索引引擎工具包,提供了完整的索引功能和查询引擎,它为数据访问和管理提供了简单的函数调用接口,可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能[3]。为文本中的每一个词建立索引是CLucene的最主要工作,通过索引搜索关键词的效率比传统的字与字之间的匹配效率高出很多。   2 全文检索系统的设计   2.1 数据加工模块 为了能将WORD中的文本信息抽取出来,需要用到Visual C++自动化Microsoft Office 类型库。打开一个WORD文档,进行宏录制(工具\宏\录制新宏),录制下某一个WORD文档的另存为(Saveas)操作,用这样的方法,将一个WORD文档转化为一个纯文本的TXT格式的文本文件。   接着的工作是要把文件夹中所有的WORD文档都转化成TXT格式的纯文本文档,这个过程用VBA好象无法实现,因为宏录制过程可以打开所有文档,但最后的操作只是对最后打开的一个文档的操作,所以调用CFileFind类中的相关函数来实现,对应的流程图如图1所示。   2.2 索引模块 目前常用的索引方式有3种,分别是倒排、后缀数组和签名文件。倒排索引已经被当前大多数信息系统所广泛应用,在CL

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档