一种基于长度分区的集合相似度查询算法制造技术

技术编号:22308289 阅读:238 留言:0更新日期:2019-10-16 08:23
本发明专利技术涉及一种基于长度分区的集合相似度查询方法,属于数据挖掘和信息检索领域。本发明专利技术首先对数据集中的集合即记录进行排序并编号;然后对排序后的数据集构建倒排索引结构并构建长度映射表;再对给定的查询q和相似度阈值t,根据创建的倒排索引结构和长度映射表检索所有与q相似度大于等于t的记录。本发明专利技术将长度分区的思想与经典的相似度查询算法ScanCount相结合,通过数据预处理、长度分区及高效的索引结构可快速过滤不可能满足相似度的记录,从而提升算法效率。此外,设计更为精简的计数数组,从而降低了空间开销。因此本发明专利技术具有更高的时间和空间效率。

A set similarity query algorithm based on length partition

【技术实现步骤摘要】
一种基于长度分区的集合相似度查询算法
本专利技术涉及一种基于长度分区的集合相似度查询算法,属于数据挖掘和信息检索领域。
技术介绍
给定数据集R由一系列集合r组成,每个集合有唯一的集合标识符ID,则各集合的ID取值依次为0,1,…,|R|-1。集合相似度查询即:给定查询q,在集合数据集R中查找所有的集合r∈R,使得r和q满足特定的相似度阈值t。集合相似度连接即:给定两个集合数据库R和Q,查找所有的集合对<r,q>,其中r∈R且q∈Q,使得r和q满足特定的相似度阈值t。相似度的计算通常需要基于特定的相似度函数实现,最广泛应用的相似度函数为Jaccard函数,其用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本越相似度越高。有许多关于集合相似度搜索或连接的研究,根据算法所基于的核心技术的不同,现有算法可分为基于直接搜索的算法、基于前缀过滤的算法、基于分区的算法等。基于直接搜索的算法通常通过搜索特定索引结构直接获取精确覆盖值,可避免采用生成-验证框架生成大量候选集需要才可进行验证的不足。基于采用的索引结构的不同,可将基于直接搜索的算法分为基于反向索引的算法、基于trie的算法、基于位图的算法等。其中基于反向索引结构传统的算法应用最为广泛。该结构由目录和反向列表两部分组成,目录由数据集中全部独立元素组成,某元素的反向列表则由包含该元素的所有集合的ID组成。反向索引结构的优点在于直观、易实现、索引易于更新。基于反向列表结构有ProbeCount算法和ScanCount算法等,ProbeCount算法是一种基于堆的T-覆盖查询算法,该算法需借助堆操作,且需遍历查询中所对应的反向列表中的所有ID,所以其效率较低。而ScanCount算法虽摒弃了堆和堆操作,在效率上优于ProbeCount算法,但因仍需遍历查询对应的所有反向列表中的所有ID,故效率提升有限。基于前缀过滤算法的基本思路是将集合相似度阈值转换为对集合前缀元素的约束,两集合若要满足一定的相似度,则两集合前缀至少有1个公共元素基于分区的集合相似度算法的核心思想在于,通过设计一个合理的分区架构,将集合分为若干个分区,如果两个集合满足特定的相似度阈值,则两集合的分区之间应满足特定的条件。
技术实现思路
本专利技术提出一种基于长度分区的集合相似度查询方法,以解决现有方法效率不高的问题。本专利技术的技术方案是:一种基于长度分区的集合相似度查询方法,包括如下步骤:(1)数据预处理,对数据集中的集合即记录进行排序并编号将数据集中各记录按元素数量即记录长度进行升序排序,对排序后的各记录进行编号形成对应的记录ID,记录ID从0开始;将排序后数据集中最后一个记录ID记为IDmax,其记录长度记为Lenmax,记录ID为i的记录表示为ri,i=0,…IDmax。(2)建立索引,对排序后的数据集构建倒排索引结构并构建长度映射表依次扫描数据集中各记录,构建倒排索引结构I,I由目录和倒排列表组成,目录由数据集中所有独立元素构成,目录中每一个元素指向一个由所有包含该元素的记录ID组成的倒排列表;构建长度映射表M,即一个长度对应一个记录ID,其长度从0开始,最大为Lenmax+1,长度为0时,对应的记录ID记为0,其余长度对应的记录ID通过步骤(1)的结果查询得到,在步骤(1)得到的排序编码后的数据集中找到其余的长度对应的记录长度,记录长度对应的记录ID即为该长度对应的记录ID,如果某长度没有对应的记录长度,那么该长度的记录ID记为上一长度的记录ID。(3)查询执行,对给定的查询q和相似度阈值t,根据创建的倒排索引结构和长度映射表检索所有与q相似度大于等于t的记录计算与q相似的记录长度下限和记录长度上限查询长度映射表M,获取Lenlow和Lenhigh对应的记录ID,分别为IDlow和IDhigh,其中IDlow=M[Lenlow],当Lenhigh<Lenmax时,IDhigh=M[Lenhigh+1]-1,否则IDhigh=IDmax;建立数组COUNT,数组从0开始编号,最大为IDhigh-IDlow+1;依次查找q中各元素对应的倒排列表中查找第一个值大于等于IDlow的位置;从查找到的位置开始,依次扫描列表中的每个记录ID,直至记录ID大于IDhigh为止,当前扫描的记录ID为IDcur,将COUNT[IDar-IDlow]的计数加1,即数组IDcur-Dlow对应的累加数值加1;扫描数组COUNT,若数组p的累加数值COUNT[p]≥Lenlow,p=0,…(IDhigh-IDlow+1),则根据以下公式计算记录ID为p+IDlow的记录与q的Jaccard相似度:将相似度与相似度阈值t进行比较,如果则记录为符合要求的记录。本专利技术的有益效果:本专利技术将长度分区的思想与经典的相似度查询算法ScanCount相结合,通过数据预处理、长度分区及高效的索引结构可快速过滤不可能满足相似度的记录,从而提升算法效率。此外,设计更为精简的计数数组,从而降低了空间开销。附图说明图1本专利技术的流程图;图2为本方法与ScanCount方法在Msweb数据集上运行时间对比图;图3为本方法与ScanCount方法在TheMoviesDataset-Keywords数据集上运行时间对比图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合实例来对本专利技术的实施方式作进一步详细阐述。实施例1:利用如图1所示的方法来进行查询,其中给定示例数据集如表1所示,查询q为{a,b,c,d,c},相似度阈值t为0.7。表1示例数据集表具体步骤为:(1)数据预处理,对数据集中的集合即记录进行排序并编号将数据集中各记录按元素数量即记录长度进行升序排序,对排序后的各记录进行编号形成对应的记录ID,记录ID从0开始;将排序后数据集中最后一个记录ID记为IDmax,其记录长度记为Lenmax,记录ID为i的记录表示为ri,i=0,…IDmax,排序并编号后的数据如表2所示。此时IDmax=9,Lenmax=8。表2排序后的示例数据集表(2)建立索引,对排序后的数据集构建倒排索引结构并构建长度映射表依次扫描数据集中各记录,构建倒排索引结构I,I由目录和倒排列表组成,目录由数据集中所有独立的元素构成,目录中每一个元素指向一个由所有包含该元素的记录ID组成的倒排列表,如表3所示;表3示例数据建立的倒排索引结构构建长度映射表M,即一个长度对应一个记录ID,其长度从0开始,最大为Lenmax+1,长度为0时,对应的记录ID记为0,其余长度对应的记录ID通过步骤(1)的结果查询得到,在步骤(1)得到的排序编码后的数据集中找到其余的长度对应的记录长度,记录长度对应的记录ID即为该长度对应的记录ID,如果某长度没有对应的记录长度,那么该长度的记录ID记为上一长度的记录ID;本实施例中长度映射表M的长度为9,建立的长度映射表M如表4所示。表4示例数据建立的长度映射表(3)查询执行,对给定的查询q和相似度阈值t,根据创建的倒排索引结构和长度映射表检索所有与q相似度大于等于t的记录长度过滤:计算与q相似的记录长度下限和记录长度上限查询长度映射表M,获取Lenlow和Lenhigh对应的记录ID,分别为IDlow和IDhigh,本文档来自技高网
...

【技术保护点】
1.一种基于长度分区的集合相似度查询方法,其特征在于:包括如下步骤:(1)数据预处理,对数据集中的集合即记录进行排序并编号;(2)建立索引,对排序后的数据集构建倒排索引结构并构建长度映射表;(3)查询执行,对给定的查询q和相似度阈值t,根据创建的倒排索引结构和长度映射表检索所有与q相似度大于等于t的记录。

【技术特征摘要】
1.一种基于长度分区的集合相似度查询方法,其特征在于:包括如下步骤:(1)数据预处理,对数据集中的集合即记录进行排序并编号;(2)建立索引,对排序后的数据集构建倒排索引结构并构建长度映射表;(3)查询执行,对给定的查询q和相似度阈值t,根据创建的倒排索引结构和长度映射表检索所有与q相似度大于等于t的记录。2.根据权利要求1所述的基于长度分区的集合相似度查询方法,其特征在于:所述步骤(1)的具体过程为:将数据集中各记录按元素数量即记录长度进行升序排序,对排序后的各记录进行编号形成对应的记录ID,记录ID从0开始;将排序后数据集中最后一个记录ID记为IDmax,其记录长度记为Lenmax,记录ID为i的记录表示为ri,i=0,…IDmax。3.根据权利要求1所述的基于长度分区的集合相似度查询方法,其特征在于:所述步骤(2)的具体过程为:依次扫描数据集中各记录,构建倒排索引结构I,I由目录和倒排列表组成,目录由数据集中所有独立元素构成,目录中每一个元素指向一个由所有包含该元素的记录ID组成的倒排列表;构建长度映射表M,即一个长度对应一个记录ID,其长度从0开始,最大为Lenmax+1,长度为0时,对应的记录ID记为0,其余长度对应的记录ID通过步骤(1)的结果查询得到,在步骤(1)得到的排序编码后的数据集中找到其余的长度...

【专利技术属性】
技术研发人员:贾连印胡俊涛丁家满游进国李晓武沈兵林左喻灏雷妍
申请(专利权)人:昆明理工大学
类型:发明
国别省市:云南,53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1