开篇:润墨网以专业的文秘视角,为您筛选了一篇主动性搜索引擎的研究与设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:主动性搜索引擎旨在将全文检索技术应用于企业级内部,帮助企业降低信息检索成本,运用搜索技术将必要信息主动推给需要的用户。本文在对搜索技术面临分析进行分析的基础上,详细阐述了主动性搜索引擎的设计,以期将系统主动的将搜索结果呈现给用户。
关键词:主动性搜索引擎 信息检索 设计
中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2013)03-0161-01
随着计算机技术和互联网技术的快速发展,网络上以及企业内部的信息量急剧增长,呈现信息爆炸的局面,越来越多的机构和个人在 Internet用搜索引擎查询信息。但是目前的通用搜索引擎存在很多缺陷,如不能及时更新索引,会导致搜索结果不全和出现“坏链接”,响应速度慢等,因此对主动性搜索引擎展开研究和设计就显得十分重要。
1 目前搜索技术面临的问题
搜索引擎尽管在短短十几年间取得了长足的进步但是仍然存在着一些不可忽视的问题,主要以下几个方面:(1)覆盖率低。据统计,目前没有一个搜索引擎能够覆盖超过互联网全部网页的50%;(2)更新速度相对web发展速度较慢,一般平均更新周期一个月;(3)检索结果的准确率低,上万条检索结果意义并不是很大,且存在很多无关重复的检索结果。
据专家分析,覆盖率和更新率问题可能是由于分布式的WWW和搜索引擎集中式结构之间的矛盾,网络等基础条件等方面的限制以及WWW的动态特性,当前搜索引擎很难跟踪每处的变化而导致的。准确率问题主要是由于HTML格式的不可读性以及人工智能发展相对滞后造成。
2 主动性搜索引擎的总体设计
2.1 主动性搜索引擎数据流的设计
(1)文本流。文本流表示了对于索引目标和交互控制的抽象,即用文本流表示了将要索引的文件,用文本流向用户输出信息;在实际的实现中,Lucene中的文本流采用了UCS-2作为编码,以达到适应多种语言文字的处理的目的。(2)token流。Token流是Lucene内部所使用的概念,是对传统文字中的词的概念的抽象,也是Lucene在建立索引时直接处理的最小单位;简单的讲Token就是一个词和所在域值的组合。(3)字节流。字节流则是对文件抽象的直接操作的体现,通过固定长度的字节(Lucene定义为8比特位长)流的处理,将文件操作解脱出来,也做到了与平台文件系统的无关性。(4)查询语句对象流。查询语句对象流则是仅仅在查询语句解析时用到的概念,它对查询语句抽象,通过类的继承结构反映查询语句的结构,将之传送到查找逻辑来进行查找的操作。
2.2 主动性搜索引擎核心搜索模块设计
主动性搜索引擎核心模块的设计,首先是定义了一个与平台无关的索引文件格式,其次通过抽象将系统的核心组成部分设计为抽象类,具体的平台实现部分设计为抽象类的实现,此外与具体平台相关的部分比如文件存储也封装为类,经过层层的面向对象式的处理,最终达成了一个低耦合高效率,容易二次开发的检索引擎系统。下图为主动性搜索引擎的系统结构图(如图1)。
主动性搜索引擎系统由基础结构封装、索引核心、对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。主动性搜索引擎系统将所有源码分为了7个模块。需要说明的是 queryPaser是做为search的语法解析器存在,不被系统之外实际调用,因此这里没有当作对外接口看待,而是将之独立出来。
从面象对象的观点来考察,主动性搜索引擎应用了最基本的一条程序设计准则:引入额外的抽象层以降低耦合性。首先,引入对索引文件的操作store的封装,然后将索引部分的实现建立在(index)其之上,完成对索引核心的抽象。在索引核心的基础上开始设计对外的接口search与analysis。在每一个局部细节上,比如某些常用的数据结构与算法上,主动性搜索引擎也充分的应用了这一条准则。在高度的面向对象理论的支撑下,使得主动性搜索引擎的实现容易理解,易于扩展。
主动性搜索引擎在系统结构上的另一个特点表现为其引入了传统的客户端服务器结构以外的的应用结构。主动性搜索引擎可以作为一个运行库被包含进入应用本身中去,而不是做为一个单独的索引服务器存在。
3 主动性搜索引擎索引(Index)文件格式的设计
主动性搜索引擎的索引index由若干段(segment)组成,每一段由若干的文档(document)组成,每一个文档由若干的域(field)组成,每一个域由若干的项(term)组成。项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位置、出现次数等信息。域是一个关联的元组,由一个域名和一个域值组成,域名是一个字串,
域值是一个项,比如将“标题”和实际标题的项组成的域。文档是提取了某个文件中的所有信息之后的结果,这些组成了段,或者称为一个子索引。子索引可以组合为索引,也可以合并为一个新的包含了所有合并项内部元素的子索引。
4 TF/IDF核心算法的设计
TF-IDF(term frequencyinverse document frequency)是一种用于信息搜索和信息挖掘的常用加权技术,其主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。使用 TF-IDF可以计算某个关键字在某篇文章里面的重要性,因而识别这篇文章的主要含义,实现计算机读懂文章的功能。TF/IDF核心算法的设计主要包括以下两个方面:(1)词频设计。在一份给定的文件里,词频指的是某一个给定的词语在该文件中出现的次数。对于在某一个特定文件里的词语来说,其重要性=该词在文件中的出现次数/文件中所有字词的出现次数之和。(2)反文频设计。反文频是一个词语普遍重要性的度量,对于某一特定词语的反文频,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
参考文献
[1]吴洁明,袁山龙.软件工程应用实践教程[M].清华大学出版社,2003.
[2]朱少民.软件质量保证和管理[M].清华大学出版社,2007 .