当前位置: 首页 > 专利查询>湖南大学专利>正文

一种Top-k组合空间关键字查询方法和系统技术方案

技术编号:21914006 阅读:24 留言:0更新日期:2019-08-21 12:26
本发明专利技术公开了一种Top‑k组合空间关键字查询方法,其目标是找到k个代价最小的查询结果。本发明专利技术最终能够返回规模可控的查询结果,为用户提供更多的选择;此外,通过引入参数k,得到k组既满足覆盖所有关键字的要求、同时实现最小代价的结果集合。本发明专利技术能够解决现有空间关键字查询方法由于仅仅返回单一的查询结果所导致的用户体验效果差、以及适用性和普及性欠佳的技术问题,以及由于使用索引结构进行对象存储所导致的索引结构更新的时间开销大的技术问题。

A Top-k Combination Spatial Keyword Query Method and System

【技术实现步骤摘要】
一种Top-k组合空间关键字查询方法和系统
本专利技术属于数据查询
,更具体地,涉及一种Top-k组合空间关键字查询方法和系统。
技术介绍
空间关键字查询是空间数据库领域的重要研究问题。组合空间关键字查询是一种重要的空间关键字查询,它综合利用空间邻近性和文本相关性对带有位置和关键字信息的空间对象进行查询处理。随着移动互联网的发展,查找附近美食、预定酒店等许多基于位置的应用服务不断涌现。在现实场景中,给用户提供兴趣匹配的商品排名、为用户提供其感兴趣的饭店或者旅馆等需求都能够通过使用空间关键字查询技术(Collectivespatialkeywordquery,简称CSK)解决,空间关键字查询技术在基于搜索的服务中具有重要的研究价值。目前的空间关键字查询方法主要是给定一个规模为N的对象集O以及一个查询点q,对象集中的每个对象和查询点q都拥有一个位置信息q.λ、以及关键字集合该空间关键字查询方法旨在计算出能够覆盖查询点q的关键字组合并且代价cost最小的一组对象。然而,现有的空间关键字查询方法具有一些不可忽视的技术问题:首先,其针对单个查询关键字,仅仅能够反馈给用户一组查询结果,但在实际应用场景中,用户往往希望得到多组查询结果,并从中选择出与其最感兴趣的服务对应的查询结果,现有查询方法仅仅提供一组查询结果的方式,会影响用户的体验性,从而降低了该空间关键字查询方法的适用性和普及性;其次,该方法使用索引结构进行对象存储,对于实时更新的对象集合而言,索引结构更新的时间开销大。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种Top-k组合空间关键字查询方法和系统,其目的在于,通过逐一覆盖关键字选择代价最小的k组对象集合(即查询结果),从而解决现有空间关键字查询方法由于仅仅返回单一的查询结果所导致的用户体验效果差、以及适用性和普及性欠佳的技术问题,以及由于使用索引结构进行对象存储所导致的索引结构更新的时间开销大的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种Top-k组合空间关键字查询方法,包括以下步骤:(1)获取对象集合O,并从用户接收其对应的查询点q,其中对象集合O={o1,o2,…,oN},用户的查询点q包括用户所在的位置λ、以及用户的查询关键字集合T={t1,t2,…,tM},其中N表示对象集合中对象的总数,M表示查询关键字集合中查询关键字的总数;(2)从对象集合O中删除不包括查询关键字集合T中任何一个查询关键字的对象,从而得到更新后的对象集合O;(3)根据查询关键字集合T中的每个查询关键字将步骤(2)中更新后的对象集合O中的所有对象进行分组,从而形成M个子对象集合P1,P2,…PM,对每个子对象集合中的每个对象,获取该对象与查询点q之间的欧氏距离,并根据获取的每个子对象集合对应的所有欧氏距离按照从小到大的顺序将该子对象集合中的所有对象进行排序,并设置计数器i=1;(4)从第i个子对象集合Pi中的前k个对象a1、a2、…、ak,将每个对象单独放入一个对应的集合S1、S2、…、Sk,获取第j个集合的代价COST(S1)、COST(S2)、…、COST(Sk),并根据所有集合的代价按照从小到大的顺序将该代价对应的集合进行排序,从而形成第一对象组合集合G={S’1、S’2、…、S’k},并设置计数器r=1,其中k表示用户希望获得的查询结果的数量,其由用户自行设定,j∈[1,k];(5)设置计数器i=i+1;(6)选择第i个子对象集合Pi中的第一个对象加入第一对象组合集合G中的第r个集合中,形成更新后的集合S’r,获取更新后的的集合S’r的代价COST(Sr′),将更新后的集合S’r加入第二对象组合集合G’中,并对第i个子对象集合Pi中的所有剩余对象重复本步骤的处理;(7)设置r=r+1,并判断r是否小于等于k,如果是则进入步骤(8),否则返回步骤(6);(8)根据第二对象组合集合G’中所有集合的代价按照从小到大的顺序对该代价对应的集合进行排序,从得到的第二对象组合集合G’的排序结果中删除前k个集合之后的所有集合,从而得到更新后的第二对象组合集合G’;(9)判断计数器i是否等于M,如果是则将第二对象组合集合G’作为查询结果输出给用户,过程结束,否则使用更新后的第二对象组合集合G’替代步骤(6)中的第一对象组合集合G,并返回步骤(5)。优选地,步骤(4)中获取代价是采用以下公式:其中b、b1和b2都表示第j个集合中的对象,Dis()表示获取括号内两个对象之间的欧氏距离。优选地,步骤(6)中获取代价是采用以下公式:其中c、c1和c2都表示更新后的集合S’r中的对象。按照本专利技术的另一方面,提供了一种Top-k组合空间关键字查询系统,包括:第一模块,用于获取对象集合O,并从用户接收其对应的查询点q,其中对象集合O={o1,o2,…,oN},用户的查询点q包括用户所在的位置λ、以及用户的查询关键字集合T={t1,t2,…,tM},其中N表示对象集合中对象的总数,M表示查询关键字集合中查询关键字的总数;第二模块,用于从对象集合O中删除不包括查询关键字集合T中任何一个查询关键字的对象,从而得到更新后的对象集合O;第三模块,用于根据查询关键字集合T中的每个查询关键字将第二模块更新后的对象集合O中的所有对象进行分组,从而形成M个子对象集合P1,P2,…PM,对每个子对象集合中的每个对象,获取该对象与查询点q之间的欧氏距离,并根据获取的每个子对象集合对应的所有欧氏距离按照从小到大的顺序将该子对象集合中的所有对象进行排序,并设置计数器i=1;第四模块,用于从第i个子对象集合Pi中的前k个对象a1、a2、…、ak,将每个对象单独放入一个对应的集合S1、S2、…、Sk,获取第j个集合的代价COST(S1)、COST(S2)、…、COST(Sk),并根据所有集合的代价按照从小到大的顺序将该代价对应的集合进行排序,从而形成第一对象组合集合G={S’1、S’2、…、S’k},并设置计数器r=1,其中k表示用户希望获得的查询结果的数量,其由用户自行设定,j∈[1,k];第五模块,用于设置计数器i=i+1;第六模块,用于选择第i个子对象集合Pi中的第一个对象加入第一对象组合集合G中的第r个集合中,形成更新后的集合S’r,获取更新后的的集合S’r的代价COST(Sr′),将更新后的集合S’r加入第二对象组合集合G’中,并对第i个子对象集合Pi中的所有剩余对象重复本步骤的处理;第七模块,用于设置r=r+1,并判断r是否小于等于k,如果是则进入第八模块,否则返回第六模块;第八模块,用于根据第二对象组合集合G’中所有集合的代价按照从小到大的顺序对该代价对应的集合进行排序,从得到的第二对象组合集合G’的排序结果中删除前k个集合之后的所有集合,从而得到更新后的第二对象组合集合G’;第九模块,用于判断计数器i是否等于M,如果是则将第二对象组合集合G’作为查询结果输出给用户,过程结束,否则使用更新后的第二对象组合集合G’替代第六模块中的第一对象组合集合G,并返回第五模块。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)由于本专利技术在关键字覆盖的过程、以及对象选取的过程中始终维持有k组结果集合,本文档来自技高网...

【技术保护点】
1.一种Top‑k组合空间关键字查询方法,其特征在于,包括以下步骤:(1)获取对象集合O,并从用户接收其对应的查询点q,其中对象集合O={o1,o2,…,oN},用户的查询点q包括用户所在的位置λ、以及用户的查询关键字集合T={t1,t2,…,tM},其中N表示对象集合中对象的总数,M表示查询关键字集合中查询关键字的总数;(2)从对象集合O中删除不包括查询关键字集合T中任何一个查询关键字的对象,从而得到更新后的对象集合O;(3)根据查询关键字集合T中的每个查询关键字将步骤(2)中更新后的对象集合O中的所有对象进行分组,从而形成M个子对象集合P1,P2,…PM,对每个子对象集合中的每个对象,获取该对象与查询点q之间的欧氏距离,并根据获取的每个子对象集合对应的所有欧氏距离按照从小到大的顺序将该子对象集合中的所有对象进行排序,并设置计数器i=1;(4)从第i个子对象集合Pi中的前k个对象a1、a2、…、ak,将每个对象单独放入一个对应的集合S1、S2、…、Sk,获取第j个集合的代价COST(S1)、COST(S2)、…、COST(Sk),并根据所有集合的代价按照从小到大的顺序将该代价对应的集合进行排序,从而形成第一对象组合集合G={S’1、S’2、…、S’k},并设置计数器r=1,其中k表示用户希望获得的查询结果的数量,其由用户自行设定,j∈[1,k];(5)设置计数器i=i+1;(6)选择第i个子对象集合Pi中的第一个对象加入第一对象组合集合G中的第r个集合中,形成更新后的集合S’r,获取更新后的的集合S’r的代价COST(S′r),将更新后的集合S’r加入第二对象组合集合G’中,并对第i个子对象集合Pi中的所有剩余对象重复本步骤的处理;(7)设置r=r+1,并判断r是否小于等于k,如果是则进入步骤(8),否则返回步骤(6);(8)根据第二对象组合集合G’中所有集合的代价按照从小到大的顺序对该代价对应的集合进行排序,从得到的第二对象组合集合G’的排序结果中删除前k个集合之后的所有集合,从而得到更新后的第二对象组合集合G’。(9)判断计数器i是否等于M,如果是则将第二对象组合集合G’作为查询结果输出给用户,过程结束,否则使用更新后的第二对象组合集合G’替代步骤(6)中的第一对象组合集合G,并返回步骤(5)。...

【技术特征摘要】
1.一种Top-k组合空间关键字查询方法,其特征在于,包括以下步骤:(1)获取对象集合O,并从用户接收其对应的查询点q,其中对象集合O={o1,o2,…,oN},用户的查询点q包括用户所在的位置λ、以及用户的查询关键字集合T={t1,t2,…,tM},其中N表示对象集合中对象的总数,M表示查询关键字集合中查询关键字的总数;(2)从对象集合O中删除不包括查询关键字集合T中任何一个查询关键字的对象,从而得到更新后的对象集合O;(3)根据查询关键字集合T中的每个查询关键字将步骤(2)中更新后的对象集合O中的所有对象进行分组,从而形成M个子对象集合P1,P2,…PM,对每个子对象集合中的每个对象,获取该对象与查询点q之间的欧氏距离,并根据获取的每个子对象集合对应的所有欧氏距离按照从小到大的顺序将该子对象集合中的所有对象进行排序,并设置计数器i=1;(4)从第i个子对象集合Pi中的前k个对象a1、a2、…、ak,将每个对象单独放入一个对应的集合S1、S2、…、Sk,获取第j个集合的代价COST(S1)、COST(S2)、…、COST(Sk),并根据所有集合的代价按照从小到大的顺序将该代价对应的集合进行排序,从而形成第一对象组合集合G={S’1、S’2、…、S’k},并设置计数器r=1,其中k表示用户希望获得的查询结果的数量,其由用户自行设定,j∈[1,k];(5)设置计数器i=i+1;(6)选择第i个子对象集合Pi中的第一个对象加入第一对象组合集合G中的第r个集合中,形成更新后的集合S’r,获取更新后的的集合S’r的代价COST(S′r),将更新后的集合S’r加入第二对象组合集合G’中,并对第i个子对象集合Pi中的所有剩余对象重复本步骤的处理;(7)设置r=r+1,并判断r是否小于等于k,如果是则进入步骤(8),否则返回步骤(6);(8)根据第二对象组合集合G’中所有集合的代价按照从小到大的顺序对该代价对应的集合进行排序,从得到的第二对象组合集合G’的排序结果中删除前k个集合之后的所有集合,从而得到更新后的第二对象组合集合G’。(9)判断计数器i是否等于M,如果是则将第二对象组合集合G’作为查询结果输出给用户,过程结束,否则使用更新后的第二对象组合集合G’替代步骤(6)中的第一对象组合集合G,并返回步骤(5)。2.根据权利要求1所述的Top-k组合空间关键字查询方法,其特征在于,步骤(4)中获取代价是采用以下公式:其中b、b1和b2都表示第j个集合中的对象,Dis()表示获取括号内两个对象之间的欧氏距离。3.根据权利要求2所述的Top-k组合空间关键字查询方法,其特征在于,步骤(6)中获取代价是采用以下公式:其中c、c1和c2都表示更新后的集合S’r中的对象。4.一种Top-k组合空...

【专利技术属性】
技术研发人员:周旭苏丹妮肖国庆曾一夫肖正李肯立李克勤
申请(专利权)人:湖南大学
类型:发明
国别省市:湖南,43

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

1