论文部分内容阅读
随着信息技术的蓬勃发展和互联网的广泛普及,搜索引擎已成为人们工作、学习和生活的必备。当今很多搜索引擎都是基于关键词的检索,在索引中查找出与关键字相匹配的记录返回给用户。然而,由于每个用户的生活背景、知识程度、专业知识领域以及区域用词习惯都不尽相同,对同一概念的描述往往使用不同的词语,这些词往往是同义词,从而使用户搜索不到称心的答案。同时,我们常常遇到在不知具体关键字时进行检索的情况,检索的结果也不尽如人意。本文基于上述需求设计实现了同义词扩展检索机制。它将传统的检索机制进行改进,在建立索引的同时将词条的同义词嵌入索引中与原词条相同的位置,设置位置增量为0,即同义词和原词条享有相同的始末偏移量。执行检索时无论关键字是该词条还是该词条的同义词,都能直接命中该条记录,扩大了检索范围,解决了由于用词习惯和模糊检索带来的问题,为用户使用提供方便。而中文分词作为建立索引的核心,关系着分词的精确程度和搜索时的准确程度,也是同义词扩展检索赖以发展的基础。针对同义词扩展检索的需要,本文设计了基于三层哈希词典的正向最大匹配算法。词典的三层分别存储首字哈希值、词长和词条哈希值,下面的列表存储拥有相同哈希值的所有词条。同时在词条存储结构中加入双向链表的概念,分别指向该词条的下一个等义词或近义词,形成环状链表结构,各赋予不同的相关度值。这样就在一个词典中同时存储了中文和同义词两个词典,节约存储空间;由于哈希算法的特性,使查找词条的时间复杂度极小,节省查找时间。在Lucene2.0开源代码的基础上,结合新闻检索的需求设计实现了同义词扩展检索机制,并对其进行了大量语料的测试。实验结果表明,同义词扩展检索在不影响检索耗时的基础上较大程度的提高了查全率,为用户的检索提供便利。