一种路网下地理社交关键字反最近邻查询处理方法与流程

文档序号:11230528阅读:709来源:国知局

本发明涉及空间数据库的索引与查询技术,是一种用于处理路网下地理社交关键字反最近邻查询的方法。



背景技术:

空间数据是指地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和,其目的是为了存储、管理和检索各种地理空间数据。其中,路网空间数据作为空间数据库的重要组成部分,得到了越来越多的关注。为了快速、有效地访问路网空间数据,专家学者们提出了许多路网空间数据索引方法。目前,g树索引方法是最有效的路网空间数据索引方法。它将路网划分成多个子图,并预先计算各边界点的路网距离,从而达到降低最短路径计算代价的目的。

反最近邻查询由于其在决策支持和发现潜在用户等方面的重要应用而受到了学术界的广泛关注。在反最近邻查询的相关研究中,路网下空间关键字反最近邻查询被人们用来发现兴趣集。其中,兴趣集是指对某个兴趣点感兴趣的一群人。然而,路网下空间关键字反最近邻查询只考虑了文本和空间信息,并查找那些最有可能成为潜在用户的人群。

随着社交网络的发展,社交网络数据的体量越来越大。在社交网络中,有社交联系的用户可能具有相似的兴趣爱好,因而这类数据可以为预测和推荐提供支持。基于此,人们研究了地理社交关键字查询。给定一个地理社交关键字查询和提交该查询的用户,此查询返回空间距离最近,文本相似性最高的兴趣点,并且该用户的朋友访问该兴趣点的次数最多。

目前,针对路网下空间关键字反最近邻查询和地理社交关键字查询已有成熟的解决方案。但是在某些应用场景中,反最近邻查询不仅要考虑空间和文本信息,而且也要考虑用户之间的社交信息以及用户对兴趣点的签到信息。然而,现有的查询处理方法还不能有效地解决上述查询问题。



技术实现要素:

本发明克服了现有技术不能有效地处理路网下地理社交关键字反最近邻查询问题,提供了一种路网下地理社交关键字反最近邻查询处理方法。

本发明解决其技术问题所采用的技术方案步骤如下:一种路网下地理社交关键字反最近邻查询处理方法,该方法包括如下步骤:

步骤(1):收集用户与兴趣点,对其构建gim树索引结构;

步骤(2):计算每个gim树索引结构的节点的地理社交关键字的最小相似性计数表与最大相似性计数表;

步骤(3):利用剪枝算法对步骤(1)收集到的用户与兴趣点进行过滤;

步骤(4):根据步骤(3)中过滤的结果,通过精炼算法剔除不符合要求的用户,以得到最终结果集合。

进一步的,所述的步骤(1)中gim树索引结构的构建步骤如下:将整个路网划分成多个子图,并将属于多个子图的路网节点定义为边界点;预先计算所有边界点之间的路网距离;每个gim树索引结构节点包含一个路网子图、一个交并倒排文件和两个矩阵;交并倒排文件描述的是用户与兴趣点之间的文本信息;两个矩阵为用户签到矩阵和用户社交关系矩阵,用户签到矩阵存储用户对各兴趣点的签到次数,用户社交关系矩阵存储用户之间的社交关系。

进一步的,所述的步骤(2)中最小相似性计数表与最大相似性计数表的计算方法如下:

给定一组用户和一组兴趣点,利用步骤(1)中用户签到矩阵和用户社交关系矩阵这两个矩阵相乘计算用户和兴趣点之间地理社交关键字相似性的最小值和最大值;利用上述最小值和最大值构建用户的最小相似性计数表和最大相似性计数表。

进一步的,所述的步骤(3)中剪枝算法具体如下:

给定一个查询点,根据步骤(2)的计算方法,得到查询点与用户相似性的最小值和最大值,再结合步骤(2)得到的最小相似性计数表和最大相似性计数表对用户进行剪枝,其中:

1)若查询点与用户集合相似性的最大值比最小相似性计数表的下界值小,则丢弃这组用户。

2)若查询点与用户集合相似性的最小值比最大相似性计数表的上界值大,将这组用户插入到最终结果集合。

进一步的,所述的步骤(3)中的过滤过程如下:

1)初始化一个用户队列和一个兴趣点队列,将gim树索引根节点的用户数据集合放入到用户队列中,将兴趣点数据集合放入到兴趣点队列中;

2)初始化一个候选用户集合和一个最终结果集合,并分别保存当前访问过的gim树索引节点中未被剪枝的用户和被确认为最终结果的用户;

3)若用户队列为空,返回候选用户集合和最终结果集合;否则取出用户队列的第一个元素,并对该元素在gim树索引结构中的子节点利用步骤(3)中的剪枝算法进行剪枝,如果能满足条件,那么将其插入到最终结果集合;若未被剪枝,则将其插入到候选用户集合。

进一步的,所述的步骤(4)中的精炼算法具体步骤如下:

1)取出步骤(3)中候选用户集合的每一个用户;

2)以空间距离顺序找出该用户的路网下地理社交关键字查询结果集合;

3)若查询点在上述结果集合中,则将该用户插入到最终结果集合;否则丢弃该用户;

4)返回最终结果集合。

本发明具有的有益效果是:本发明充分利用了空间数据库中现有的索引技术,反最近邻查询以及空间关键字查询技术,将路网划分成多个子网,并预先计算子网间的最短路径距离,从而降低最短路径计算代价;设计了最小和最大计数表的索引结构,并对子网进行剪枝;设计了高效的裁剪算法,从而大大降低了i/o次数和cpu计算时间;提出利用矩阵计算社交相似性的方法,降低了计算代价;提出了一种分支界限算法,从而避免了对索引结构的重复访问,提升了查询的效率。

附图说明

图1是本发明的实施步骤流程图。

具体实施方式

现结合附图和具体实施对本发明的技术方案作进一步说明:

如图1所示,本发明具体实施过程和工作原理如下:

步骤(1):收集用户与兴趣点,对其构建gim树索引结构;

步骤(2):计算每个gim树索引结构的节点的地理社交关键字的最小相似性计数表与最大相似性计数表;

步骤(3):利用剪枝算法对步骤(1)收集到的用户与兴趣点进行过滤;

步骤(4):根据步骤(3)中过滤的结果,通过精炼算法剔除不符合要求的用户,以得到最终结果集合。

进一步的,所述步骤(1)中每一个兴趣点的信息包括位置信息,文本信息和签到信息,其中位置信息是一个地理坐标,文本信息是一组关键字,签到信息是一组记录,每条记录包括某用户在何时到达过该兴趣点;用户信息包括位置信息,文本信息和社交信息,其中位置信息是用户的当前位置,文本信息是一组关键字,社交信息是用户间的朋友关系。所有信息都存储于gim树索引结构中。gim树索引结构的构建步骤如下:将整个路网划分成多个子图,并将属于多个子图的路网节点定义为边界点;预先计算所有边界点之间的路网距离,以加速最短路径距离的计算;每个gim树索引结构节点包含一个路网子图、一个交并倒排文件和两个矩阵;交并倒排文件描述的是用户与兴趣点之间的文本信息;两个矩阵为用户签到矩阵和用户社交关系矩阵,用户签到矩阵存储用户对各兴趣点的签到次数,用户社交关系矩阵存储用户之间的社交关系。

进一步的,所述步骤(2)中最小相似性计数表与最大相似性计数表的计算方法如下:给定一组用户和一组兴趣点,利用步骤(1)中的用户签到矩阵和用户社交关系矩阵这两个矩阵相乘计算用户和兴趣点之间地理社交关键字相似性的最小值和最大值;利用上述最小值和最大值构建用户的最小相似性计数表和最大相似性计数表。其中,为了提高社交距离计算的速度,本发明提出了一种基于矩阵的计算方法,该方法利用用户社交关系矩阵和用户签到矩阵相乘来得到一组用户与一组兴趣点之间的社交相似性。

例如:给定2个gim树节点n1与n2,分别取出节点n1中的用户集合u1和节点n2中的兴趣点集合o2;分别计算u1与o2的文本相似性,空间相似性以及社交相似性的最小值和最大值;针对用户集合u1,利用u1与兴趣点集合相似性的最小值构建最小相似性计数表,计数表中的每一个元素包含:一组兴趣点oi,oi中兴趣点的个数|oi|,以及u1与oi的最小相似性值;类似地,利用u1与兴趣点集合相似性的最大值构建最大相似性计数表,计数表中的每一个元素包含:一组兴趣点oi,oi中兴趣点的个数|oi|,以及u1与oi的最大相似性值。

进一步的,步骤(3)中剪枝算法具体如下:

给定一个查询点,根据步骤(2)的计算方法,得到查询点与用户相似性的最小值和最大值,再结合步骤(2)得到的最小相似性计数表和最大相似性计数表对用户进行剪枝,其中:

1)若查询点与用户集合相似性的最大值比最小相似性计数表的下界值小,则丢弃这组用户。

2)若查询点与用户集合相似性的最小值比最大相似性计数表的上界值大,将这组用户插入到最终结果集合。

进一步的,所述的步骤(3)中的过滤过程如下:

1)初始化一个用户队列和一个兴趣点队列,将gim树索引根节点的用户数据集合放入到用户队列中,将兴趣点数据集合放入到兴趣点队列中;

2)初始化一个候选用户集合和一个最终结果集合,并分别保存当前访问过的gim树索引节点中未被剪枝的用户和被确认为最终结果的用户;

3)若用户队列为空,返回候选用户集合和最终结果集合;否则取出用户队列的第一个元素,并对该元素在gim树索引结构中的子节点利用步骤(3)中的剪枝算法进行剪枝,如果能满足条件,那么将其插入到最终结果集合;若未被剪枝,则将其插入到候选用户集合。

进一步的,所述的步骤(4)中的精炼算法具体步骤如下:

1)取出步骤(3)中候选用户集合的每一个用户;

2)以空间距离顺序找出该用户的路网下地理社交关键字查询结果集合;

3)若查询点在上述结果集合中,则将该用户插入到最终结果集合;否则丢弃该用户;

4)返回最终结果集合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1