论文部分内容阅读
相似查找问题在信息检索、数据库应用和模式识别等领域都是一个重要的应用。随着网络信息不断增长,数据表现的形式也更加丰富,如何在海量的数据中快速有效地检索出目标信息一直是信息检索领域一项重要研究课题。如何建立高效便捷的索引,在一定时间内返回准确全面的查询结果,是一项具有挑战的热点问题与难点问题。本文主要研究海明空间下的相似查找问题,给定一个数据集D和查询串Q,在尽可能少的时间内返回数据集D中与Q相似的所有字符串,称该问题为相似词典查询问题。相似词典查询问题可以划分为两个阶段来解决:1)Search阶段:利用建好的索引查找出可能相似的目标候选集;2)Check阶段:在这些候选集上运用某种策略进行快速检查,筛选出真正符合查找条件的结果。本文分别在Search阶段和Check阶段进行研究,主要工作内容如下:(1)首先使用Simhash方法完成数据的预处理操作,经过提取、加权、合并和降维等操作将高维数据处理成容易进行相似度比较的Simhash指纹(二进制串)形式。(2)提出基于海明空间的多索引Search算法,主要用于筛选数据集中可能的相似结果候选集。结合基于海明空间的多索引算法的分块建索引的思想,先把二进制指纹化成b个block块,改进的多索引Search算法根据参数k与b之间的关系将多个block块结合在一起建立索引,获得了更好的查询效率。(3)提出两种基于中心点的Check算法,将聚类的思想应用到候选集的筛选策略上,应用于高效筛选Search阶段产生的候选集。基于中心点的贪心Check算法,通过贪心算法选出中心点P,并且每一个中心点P对应一个集群。并将两个基于中心点的Check算法与线性扫描法进行对比实验,得出基于中心点的贪心Check算法具有更好的查询效率。