CN108549690B - 基于空间距离约束的空间关键字查询方法及系统 - Google Patents
基于空间距离约束的空间关键字查询方法及系统 Download PDFInfo
- Publication number
- CN108549690B CN108549690B CN201810326769.0A CN201810326769A CN108549690B CN 108549690 B CN108549690 B CN 108549690B CN 201810326769 A CN201810326769 A CN 201810326769A CN 108549690 B CN108549690 B CN 108549690B
- Authority
- CN
- China
- Prior art keywords
- spatial
- text
- grid
- keyword
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明适用于信息查询技术领域,公开了一种基于空间距离约束的空间关键字查询方法及系统,所述方法包括:获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合;获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合;将空间范围按照预设规则划分为网格,并为每一个网格进行编码;为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树;根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。本发明能有效提高查询和更新的效率,降低对树的维护时间。
Description
技术领域
本发明属于信息查询技术领域,尤其涉及一种基于空间距离约束的空间关键字查询方法及系统。
背景技术
随着智能手机和移动终端的广泛普及,越来越多的应用中出现了地理位置信息与文本信息的交融。一方面,越来越多的场所,例如商店、饭店、游乐场等,都附加了与地理位置相关的文本描述信息;另一方面,文本信息也通过地名、街道地址等特征与地理信息相关联。研究表明,大约有五分之一的互联网搜索与地理位置相关,包括地名、邮政编码等。在同时含有空间和文本信息的对象上进行空间文本查询(简称为空间关键字查询)成为当前研究的热点问题之一。
现有的空间关键字查询方法通常使用中间表示树(IntermediateRepresentation tree,IR-tree)索引,在IR-tree索引中,根据所有空间文本对象的地理位置建立一棵树,每个结点关联一个倒排文件。但是,这种空间关键字查询方法在数据量较大时,查询和更新的效率较低,且由于只建立了一棵树,导致树的维护时间较高。
发明内容
有鉴于此,本发明实施例提供了一种基于空间距离约束的空间关键字查询方法及系统,以解决现有的空间关键字查询方法在数据量较大时,查询和更新的效率较低且对树的维护时间较高的问题。
本发明实施例的第一方面提供了一种基于空间距离约束的空间关键字查询方法,包括:
获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合;
获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合;
将空间范围按照预设规则划分为网格,并为每一个网格进行编码;
为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系;
根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。
本发明实施例的第二方面提供了一种基于空间距离约束的空间关键字查询系统,包括:
第一获取模块,用于获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合;
第二获取模块,用于获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合;
空间划分模块,用于将空间范围按照预设规则划分为网格,并为每一个网格进行编码;
倒排表建立模块,用于为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系;
查询结果获取模块,用于根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述基于空间距离约束的空间关键字查询方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被一个或多个处理器执行时实现如上所述基于空间距离约束的空间关键字查询方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合,获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合,然后将空间范围按照预设规则划分为网格,并为每一个网格进行编码,接着为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系,最后根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。本发明实施例可以有效提高查询和更新的效率,降低对树的维护时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的基于空间距离约束的空间关键字查询方法的实现流程示意图;
图2是本发明一实施例提供的预设的空间范围内的空间文本对象的示意图;
图3是本发明一实施例提供的标签方案的示意图;
图4是本发明一实施例提供的网格编码的示意图;
图5是本发明一实施例提供的文本关键字“咖啡”对应的聚集线性四分树的示意图;
图6是本发明一实施例提供的文本关键字“电影”对应的聚集线性四分树的示意图;
图7是本发明一实施例提供的扩展的空间文本对象的示意图;
图8是本发明一实施例提供的基于空间距离约束的空间关键字查询系统的示意框图;
图9是本发明一实施例提供的终端设备的示意框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1是本发明一实施例提供的基于空间距离约束的空间关键字查询方法的实现流程示意图,为了便于说明,仅示出了与本发明实施例相关的部分。本发明实施例的执行主体可以是终端设备。如图1所示,该方法可以包括以下步骤:
步骤S101:获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合。
示例性地,如图2所示,q为用户输入的空间关键字,空间关键字包括待查询地理位置和待查询文本关键字集合。
空间距离约束d是指待查询地理位置与查询结果集合中的空间文本对象的空间距离小于或等于空间距离约束,空间距离可以采用欧几里得距离。目标数量k为查询结果集合中空间文本对象的数量。
用户输入的空间关键字即查询点可以记为q=(loc,T),其中,loc为待查询地理位置,T为待查询文本关键字集合。
步骤S102:获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合。
其中,预设的空间范围可以是用户预先设置的空间范围,也可以是根据待查询地理位置和空间距离约束得到的空间范围。
以图2为例,预设的空间范围为图2所示的范围,预设的空间范围内的空间文本对象的集合为O={o1,o2,o3,o4,o5,o6},每个空间文本对象的地理位置和文本关键字集合如表1所示,其中,文本关键字集合中的每一个文本关键字具有一个对应的权重,表示该文本关键字的重要程度,例如,权重可以是用户对该文本关键字的评分,在表1中,文本关键字后的括号中的数值为该文本关键字的权重。
当用户提出空间关键字查询需求时,现有的大部分工作最先考虑满足用户所有的文本要求和位置邻近性要求的对象,称之为基于AND语义的查询。然而,基于AND语义查询返回的查询结果需完全匹配待查询文本关键字集合,有时会使用户错失一些较好的选择。以图2为例,空间文本对象o2是一个电影院,空间文本对象o4是一个综合性的商场。假设用户初到该城市,在查询点q的位置查找一家电影院,并想喝杯咖啡,基于AND语义的目标数量为2的查询将返回对象集合{o4,o5},因为只有这两个空间文本对象同时包含{电影,咖啡}两个文本关键字。然而,观察图2中的空间文本对象,很明显,对象o2和o1均部分满足用户要求,且o2和o1在对应待查询文本关键字上的权重均大于o4和o5在相应待查询文本关键字上的权重(设权重越高越好),且q到{o1,o2}的距离比到集合{o4,o5}的距离更近。换句话说,如果用户更看重品质,基于AND语义查询返回的结果将错过更符合用户品质要求的对象,并且该对象距离查询点距离并不远。本申请可支持基于OR语义的空间关键字查询,也就是说支持待查询文本关键字集合的部分匹配。
表1预设的空间范围内的空间文本对象的集合
步骤S103:将空间范围按照预设规则划分为网格,并为每一个网格进行编码。
作为本发明又一实施例,将空间范围按照预设规则划分为网格,并为每一个网格进行编码,包括:
获取待建立的聚集线性四分树的预设深度;
根据预设深度将空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
在本发明实施例中,获取待建立的聚集线性四分树的预设深度r,在深度h(h≤r)下,某一区域的空间被四等分,四等分的区域根据一个标签方案进行标记。如图3所示,SW、SE、NW、NE四个方向区域分别标记为0、1、2、3。由此,若在空间上建立聚集线性四分树,聚集线性四分树上一个处于h层深度的空间位置可用一个h位的四进制串表示,该四进制串称为四进制莫顿(Morton)码。具体地,四进制Morton码的左侧第一位数字表示该结点在聚集线性四分树深度为1时区域位于的方向,如图4中的右上角为300、301、302、303的编码,其中左侧第1位“3”表示这四个区域均处于四分树第1层的NE方向;四进制Morton码的左侧第二位数字表示深度为2时该结点所属区域的位置码,继续上面的例子,左侧第2的“0”表示这四个区域均处于聚集线性四分树第2层划分的SW方向;对该区域进行聚集线性四分树上的第3层划分,四个区域分别处于SW、SE、NW、NE方向,所以左侧第三位的数字分别是0、1、2、3。图2所示的空间范围进行Morton编码后如图4所示。
在本发明实施例中,采用四进制莫顿码对网格进行编码,但是采用其它编码方式对网格进行编码应该也在本发明的保护范围之内。
其中,聚集线性四分树由包含指向它的文本关键字的所有空间文本对象组成。聚集线性四分树中每一个结点都具有一个聚集值,该聚集值为该结点下包含的所有空间文本对象中对应的该文本关键字的权重最大值。
步骤S104:为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系。
作为本发明又一实施例,文本关键字集合中的每一个文本关键字具有一个对应的权重;
为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,包括:
获取空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
根据每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
在本发明实施例中,倒排表是一个集合,集合中的每一个元素是文本关键字与指针的组合,指针指向该文本关键字对应的聚集线性四分树。聚集线性四分树用B+树表示。以图4中的空间文本对象以及网格的编码为例,文本关键字“咖啡”对应的聚集线性四分树如图5所示,文本关键字“电影”对应的聚集线性四分树如图6所示。聚集线性四分树与倒排表结合成为聚集倒排线性四分树。
步骤S105:根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。
作为本发明又一实施例,根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合,包括:
获取空间关键字所在的目标网格和目标网格的目标编码,根据倒排表,获取待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到待查询文本关键字集合对应的聚集线性四分树集合;
计算空间关键字与目标网格的空间文本相似性,将目标编码和空间文本相似性的对应关系保存在栈中,将目标网格标记为已访问;
若聚集线性四分树集合中的任意一棵聚集线性四分树中存在目标编码,则在聚集线性四分树集合中获取目标编码对应的空间文本对象的集合;
将目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算空间关键字与第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于空间距离约束的空间文本对象,并将第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
将目标数量设为k,若第二空间文本对象集合中的空间文本对象的数量大于k,则从第二空间文本对象集合中获取前k个空间文本对象,将前k个空间文本对象保存在候选结果集合中,否则将第二空间文本对象集合中的空间文本对象保存在候选结果集合中;
将候选结果集合中的空间文本对象按照与空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
获取此时的栈顶元素确定为第一元素,若排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与空间关键字的空间文本相似性小于第一元素中的空间文本相似性,或待查询地理位置与第一元素中的编码对应的网格的空间距离大于空间距离约束,则排序后的候选结果集合即为查询结果集合,否则根据第一元素中的编码计算得到与第一元素中的编码对应的网格相邻的8个网格的编码,并将相邻的8个网格中未被标记为已访问的网格记为第一网格;
若存在第一网格,且第一网格与待查询地理位置的空间距离小于或等于空间距离约束,则计算第一网格与空间关键字的空间文本相似性,将第一网格的编码和空间文本相似性的对应关系保存在栈中,并将第一网格标记为已访问,将栈中的元素按照空间文本相似性升序进行排序;
若聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在目标编码,则根据目标编码计算得到与目标网格相邻的8个网格的编码,并将与目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
若存在第二网格,且第二网格与待查询地理位置的空间距离小于或等于空间距离约束,则计算第二网格与空间关键字的空间文本相似性,将第二网格的编码和空间文本相似性的对应关系保存在栈中,并将第二网格标记为已访问,将栈中的元素按照空间文本相似性升序进行排序;
获取此时的栈顶元素确定为第二元素,若排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与空间关键字的空间文本相似性大于或等于第二元素中的空间文本相似性,则获取第二元素中的编码确定为目标编码,第二元素中的编码对应的网格确定为目标网格,并继续执行若聚集线性四分树集合中的任意一棵聚集线性四分树中存在目标编码,则在聚集线性四分树集合中获取目标编码对应的空间文本对象的集合的步骤。
在本发明实施例中,根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合的算法伪代码如表2所示。
表2算法伪代码
算法的基本思想是以用户输入的空间关键字q所在网格为中心网格,从中心网格开始,循环查找中心网格的邻近8个网格中包含的空间文本对象,计算该空间文本对象与空间关键字q的空间文本相似性,不断更新候选结果集合直至获得满足空间距离约束的k个空间文本对象。为了防止网格的重复访问,采用visit布尔集合标识网格是否已被访问。
具体地,如表2所示,首先找到查询点q所在的目标网格,确定相应的四进制Morton码值,记为code(第2行)。找到查询点q包含的所有文本关键字对应的聚集线性四分树的集合btset(第3行)。计算查询点q到code的空间文本相似性f(q,code),以(code,f(q,code))的形式存入栈nbs中(第4行),nbs中的元素以f(q,code)升序排序。
取nbs栈顶元素nbs_t,若栈顶元素对应的码值nbs_t.code存在于聚集线性四分树集合btset中的任意一棵聚集线性四分树中,则从具有nbs_t.code的聚集线性四分树的网格下取出空间文本对象组成Oset(第7至8行)。计算Oset中的空间文本对象与查询点q的空间文本相似性,将满足空间距离约束d并且空间文本相似性最高的k个空间文本对象放入升序排序的候选结果集R中,以查询点q到该空间文本对象的空间文本相似性为排序关键字(第10至11行)。如果R中的第k个对象的空间文本相似性值大于栈顶元素的空间文本相似性值时,即R[k].f>nbs_t.f,说明空间中存在比候选结果集中更符合用户要求的查询结果,此时,利用公式(4)寻找栈顶元素中的编码对应的网格相邻的8个网格的编码,将8个网格中满足空间距离约束d并且没有被访问的网格的code值及其与查询点q的空间文本相似性存入nbs,并在visit中标识为已访问(第13行到第17行)。
若聚集线性四分树集合btset中的任意一棵聚集线性四分树中均不存在栈顶元素对应的码值nbs_t.code,则利用公式(4)寻找栈顶元素中的编码对应的网格相邻的8个网格的编码,将8个网格中满足空间距离约束d并且没有被访问的网格的code值及其与查询点q的空间文本相似性存入nbs,并在visit中标识为已访问(第23行到第27行)。
重复第6行到第29行,直至候选结果集|R|=k且R中第k个空间文本对象的空间文本相似性值小于nbs中栈顶元素的空间文本相似性值,或查询点q到栈顶元素的空间距离大于空间距离约束d。
在本发明实施例中,为保证算法的正确性,在表2中第15行和第25行中计算查询点q与某一个网格的空间文本相似性时,该网格中的文本关键字权重采用的是该文本关键字在预设的空间范围中的全局最大值。若将第7行修改为if(nbs_t.code存在于btset中所有树中),则该算法可支持基于AND语义的空间关键字查询。
作为本发明又一实施例,计算空间关键字与目标网格的空间文本相似性,包括:
计算空间关键字与目标网格的空间相似性和文本相似性,并根据空间相似性和文本相似性得到空间关键字与目标网格的空间文本相似性。
在本发明实施例中,具有以下四个定义。
定义1.空间相似性:任意两个空间文本对象在空间中的相似程度用空间相似性表示,记为fs(q,o),其计算方法如公式(1)所示。其中,δ(q.loc,o.loc)为空间文本对象q和空间文本对象o的空间距离,可以采用欧几里得距离;δmax表示预设的空间范围中任意两点的最远距离。
空间文本对象间的空间距离大小直接影响空间相似性。由公式(1)可知,两个空间文本对象间的距离越近,fs(q,o)的值越小,空间中的相似程度越大。
定义2.文本相似性:空间文本对象o中的每个文本关键字都被赋予一个权重,代表该文本关键字在空间文本对象o中的重要程度。对于任意的文本关键字t在空间文本对象o中的重要程度记为Wt,o,Wt,o=tft,o*idft,其中,tft,o为词频,idft为逆向文件频率。两个空间文本对象q和o的文本相似性ft(q,o)的计算公式如公式(2)所示,其中,∑t∈q.TWt,o是o中符合查询点q文本关键字要求的文本关键字在o中的权重加和;maxP是每个文本关键字在所有空间文本对象中的最大权重的加和,用以归一化计算。
由公式(2)可知,ft(q,o)的值越小,文本相似程度越大。
定义3.空间文本相似性:结合定义1和定义2,任意两个空间文本对象的空间文本相似性f(q,o)的计算公式如公式(3)所示。其中,α(α∈[0,1])是一个可调节参数,用于调节计算空间文本相似性时,空间距离与文本内容之间的重要程度。f(q,o)的值越小,空间文本相似程度越大。
f(q,o)=αfs(q,o)+(1-α)ft(q,o) (3)
在上述定义中对象o仅是一个位置点。在聚集倒排线性四分树上进行查询处理时,需要计算查询点到一个覆盖多个空间文本对象的矩形的空间文本相似性。因此,下面先定义扩展的空间文本对象,然后说明如何利用定义3计算查询点到扩展空间文本对象的相似性。
定义4.扩展的空间文本对象:扩展的空间文本对象S依然包含地理位置和文本关键字集合,形式化的表示为S=(loc,T)。该扩展的空间文本对象的空间位置loc用一个矩形表示,该矩形可覆盖在S下每一个空间文本对象的地理位置;T为S覆盖的所有空间文本对象的文本关键字集合的并集,其中针对每一个属于T的文本关键字由两个元素组成(t,w),t是文本关键字本身,w是该文本关键字在S中的最大权重。
以图7为例说明定义4。图7显示了一个扩展的空间文本对象S,S.loc覆盖对象o3和o4;S.T={咖啡(0.088),电影(0.075),图书(0.119),游泳(0.151)}。
在扩展的空间文本对象上,依然可以利用公式(3)计算查询点q与扩展的空间文本对象S的空间文本相似性,只是计算空间相似性时,公式(1)中的分子采用查询点q到矩形S.loc的最小距离,文本相似性采用公式(2)计算。
下面的定理证明了查询点q与S的空间文本相似性是查询点q到S中覆盖的任意空间文本对象的空间文本相似性的上限。
定理:对于S下覆盖的任意空间文本对象o,f(q,o)≥f(q,S)。
证明:从空间相似性的角度,易知对于S中包含的任意空间文本对象o,空间文本对象o到查询点q的空间距离不小于S到q的空间距离,即δ(q.loc,S.loc)≤δ(q.loc,o.loc)。因此,由公式(1)可知,fs(q,S)≤fs(q,o)。
从文本相似性的角度,易知对于S中的任意空间文本对象o,o.t∈S.T,所以空间文本对象o对应于查询点q.T的文本权重不大于S对应于查询点q.T的文本权重,即∑t∈q.TWt,o≤∑t∈q.TWt,S。因此,由公式(2)可知,ft(q,S)≤ft(q,o)。
综合上述空间相似性和文本相似性两个角度,由公式(3)可得f(q,o)≥f(q,S)。
证毕。
在本发明实施例中,Morton码是空间进行网格划分后每一个网格的唯一标识,其与网格的空间坐标可进行相互转换,与图3的标签方案对应。具体计算方法如下:已知某网格的十进制坐标为(x,y),先将该网格十进制坐标(x,y)的值转化为二进制形式,令x=xr-1...x1x0,y=yr-1...y1y0,分别是网格坐标x和y的二进制形式,其中r为聚集线性四分树的深度。网格对应的二进制编码为n=yr-1xr-1...y1x1y0x0。例如,在图4中的网格303的坐标为(5,5),将两个坐标转化为二进制分别是x=101,y=101,则该网格对应的编码为n=110011,转化为四进制的Morton码即303。
表3中心网格的相邻8个网格的编码的计算过程
根据某一中心网格的编码计算得到与该网格相邻的8个网格的编码的计算公式如公式(4)所示。
mq=(((nq|ty)+(Δni∧tx))∧tx)|(((nq|tx)+(Δni∧ty))∧ty) (4)
在公式(4)中,mq为所求中心网格的相邻网格的编码;nq是该中心网格编码的二进制表示;Δni是基本方向增量之一,即计算中心网格任意方向的网格编码时坐标的变化量,八个方向的基本增量分别为Δn0=(-1,-1),Δn1=(0,-1),Δn2=(1,-1),Δn3=(1,0),Δn4=(1,1),Δn5=(0,1),Δn6=(-1,1),Δn7=(-1,0),将Δni由坐标转换的Morton码值如表3第2列所示;tx和ty是两个二进制常数,tx=01…0101表示01重复r次,ty=10…1010表示10重复r次,r为聚集线性四分树的深度。公式(4)采用位运算,“+”表示相加,“|”表示或运算,“∧”表示与运算。
示例性地,假设聚集线性四分树的深度为3,中心网格的编码为303,则中心网格的相邻8个网格的编码的计算过程如表3所示。
在本发明实施例中,首先获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合,获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合,然后将空间范围按照预设规则划分为网格,并为每一个网格进行编码,接着为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系,最后根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。本发明实施例可以有效提高查询和更新的效率,降低对树的维护时间。另外,本发明实施例利用网格编码唯一并与网格坐标可相互转换的性质,邻近网格可通过O(1)时间复杂度的方法计算获得,极大地加快了查询速度;空间相似性和文本相似性的线性组合同时考虑空间距离与文本相关性,并且在此基础上增加了对空间距离的约束,通过对空间距离的约束有效的缩小了可查询的空间范围;本发明实施例支持OR语义(即部分匹配约束)的空间关键字查询。
以图2为例说明表2所示算法的运行过程。假设聚集线性四分树的深度为3,目标数量k=1,空间距离约束d=3,查询点q={(5.8,5.8),咖啡,电影}。
首先找到查询点q所在的网格,确定该网格的code值为303,将303在visit中标记已访问。通过公式(3)计算查询点q与code值所在网格的空间文本相似性f(q,code)=0.700,将(303,0.700)入栈nbs。找到查询点q中文本关键字{咖啡,电影}分别对应的聚集线性四分树,分别设为bt1和bt2(即图5和图6)。栈顶元素303出栈,虽然网格303到查询点q的距离小于d,但303没有在bt1和bt2中,说明303中没有包含待查询文本关键字的空间文本对象。
利用公式(4)计算303的相邻8个网格,即{300,301,310,312,330,321,320,302}。计算查询点q到每一个没有被访问过的且到查询点q的距离小于d的网格的空间文本相似性,如表4的第1行。将网格Morton码值及其与查询点的空间文本相似性值按空间文本相似性值升序存入栈nbs中,并在visit中将这8个网格标记为已访问。由于此时结果集R中的对象个数为0,从栈nbs中取栈顶330,因为330到查询点q的距离小于d,取出树bt1和bt2中330对应的空间文本对象,去重后得o2。由于o2到查询点的距离小于d,计算o2与查询点q的空间文本相似性f=0.510,并存入结果集R中,R={(o2,0.510)}。
表4算法运行实例
因为结果集R中空间文本对象的空间文本相似性大于栈顶元素与查询点q的空间相似性(即0.510>0.485),根据公式(4)计算330相邻8个网格,即{303,312,313,331,333,332,323,321}。计算查询点q到每一个没有被访问过的且到查询点q的距离小于d的邻近网格的空间文本相似性,如表4的第2行,并将其标记为已访问后入栈(表4第2行第4列)。
由于此时结果集R中的1个对象且结果集R中对象的空间文本相似性小于栈顶元素与查询点q的空间相似性(即0.510<0.576),所以程序终止,输出的结果集R={(o2,0.510)}。
需要说明的是,上述实施例中的所有举例仅仅是为了解释本发明的技术方案,并不用于限定本发明。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图8是本发明一实施例提供的基于空间距离约束的空间关键字查询系统的示意框图,为了便于说明,仅示出与本发明实施例相关的部分。
在本发明实施例中,基于空间距离约束的空间关键字查询系统8包括:
第一获取模块81,用于获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合;
第二获取模块82,用于获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合;
空间划分模块83,用于将空间范围按照预设规则划分为网格,并为每一个网格进行编码;
倒排表建立模块84,用于为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系;
查询结果获取模块85,用于根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。
可选地,空间划分模块83包括:
预设深度获取单元,用于获取待建立的聚集线性四分树的预设深度;
编码单元,用于根据预设深度将空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
可选地,文本关键字集合中的每一个文本关键字具有一个对应的权重;
倒排表建立模块84还包括:
编码获取单元,用于获取空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
四分树生成单元,用于根据每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
可选地,查询结果获取模块85包括:
四分树集合获取单元,用于获取空间关键字所在的目标网格和目标网格的目标编码,根据倒排表,获取待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到待查询文本关键字集合对应的聚集线性四分树集合;
第一计算单元,用于计算空间关键字与目标网格的空间文本相似性,将目标编码和空间文本相似性的对应关系保存在栈中,将目标网格标记为已访问;
文本对象获取单元,用于若聚集线性四分树集合中的任意一棵聚集线性四分树中存在目标编码,则在聚集线性四分树集合中获取目标编码对应的空间文本对象的集合;
第二计算单元,用于将目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算空间关键字与第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于空间距离约束的空间文本对象,并将第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
保存单元,用于将目标数量设为k,若第二空间文本对象集合中的空间文本对象的数量大于k,则从第二空间文本对象集合中获取前k个空间文本对象,将前k个空间文本对象保存在候选结果集合中,否则将第二空间文本对象集合中的空间文本对象保存在候选结果集合中;
排序单元,用于将候选结果集合中的空间文本对象按照与空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
查询结果获取单元,用于获取此时的栈顶元素确定为第一元素,若排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与空间关键字的空间文本相似性小于第一元素中的空间文本相似性,或待查询地理位置与第一元素中的编码对应的网格的空间距离大于空间距离约束,则排序后的候选结果集合即为查询结果集合,否则根据第一元素中的编码计算得到与第一元素中的编码对应的网格相邻的8个网格的编码,并将相邻的8个网格中未被标记为已访问的网格记为第一网格;
第三计算单元,用于若存在第一网格,且第一网格与待查询地理位置的空间距离小于或等于空间距离约束,则计算第一网格与空间关键字的空间文本相似性,将第一网格的编码和空间文本相似性的对应关系保存在栈中,并将第一网格标记为已访问,将栈中的元素按照空间文本相似性升序进行排序;
相邻编码获取单元,用于若聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在目标编码,则根据目标编码计算得到与目标网格相邻的8个网格的编码,并将与目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
第四计算单元,用于若存在第二网格,且第二网格与待查询地理位置的空间距离小于或等于空间距离约束,则计算第二网格与空间关键字的空间文本相似性,将第二网格的编码和空间文本相似性的对应关系保存在栈中,并将第二网格标记为已访问,将栈中的元素按照空间文本相似性升序进行排序;
循环单元,用于获取此时的栈顶元素确定为第二元素,若排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与空间关键字的空间文本相似性大于或等于第二元素中的空间文本相似性,则获取第二元素中的编码确定为目标编码,第二元素中的编码对应的网格确定为目标网格,并继续执行若聚集线性四分树集合中的任意一棵聚集线性四分树中存在目标编码,则在聚集线性四分树集合中获取目标编码对应的空间文本对象的集合的步骤。
可选地,第一计算单元,还用于计算空间关键字与目标网格的空间相似性和文本相似性,并根据空间相似性和文本相似性得到空间关键字与目标网格的空间文本相似性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述基于空间距离约束的空间关键字查询系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图9是本发明一实施例提供的终端设备的示意框图。如图9所示,该实施例的终端设备9包括:一个或多个处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92。所述处理器90执行所述计算机程序92时实现上述各个基于空间距离约束的空间关键字查询方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器90执行所述计算机程序92时实现上述基于空间距离约束的空间关键字查询系统实施例中各模块/单元的功能,例如图8所示模块81至85的功能。
示例性地,所述计算机程序92可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器91中,并由所述处理器90执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成第一获取模块、第二获取模块、空间划分模块、倒排表建立模块和查询结果获取模块。
第一获取模块,用于获取用户输入的空间关键字、空间距离约束、目标数量,空间关键字包括待查询地理位置和待查询文本关键字集合;
第二获取模块,用于获取预设的空间范围内的空间文本对象的集合,空间文本对象包括地理位置和文本关键字集合;
空间划分模块,用于将空间范围按照预设规则划分为网格,并为每一个网格进行编码;
倒排表建立模块,用于为空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,倒排表中存储有文本关键字和聚集线性四分树的对应关系;
查询结果获取模块,用于根据待查询地理位置、待查询文本关键字集合、空间距离约束、网格、网格对应的编码、倒排表、目标数量得到查询结果集合。
其它模块或者单元可参照图8所示的实施例中的描述,在此不再赘述。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备9包括但不仅限于处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备的一个示例,并不构成对终端设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备9还可以包括输入设备、输出设备、网络接入设备、总线等。
所述处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91可以是所述终端设备的内部存储单元,例如终端设备的硬盘或内存。所述存储器91也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括终端设备的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序92以及所述终端设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的基于空间距离约束的空间关键字查询系统和方法,可以通过其它的方式实现。例如,以上所描述的基于空间距离约束的空间关键字查询系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于空间距离约束的空间关键字查询方法,其特征在于,包括:
获取用户输入的空间关键字、空间距离约束、目标数量,所述空间关键字包括待查询地理位置和待查询文本关键字集合;
获取预设的空间范围内的空间文本对象的集合,所述空间文本对象包括地理位置和文本关键字集合;
将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码;
为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,所述倒排表中存储有文本关键字和聚集线性四分树的对应关系;
根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合;
所述根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合,包括:
获取所述空间关键字所在的目标网格和所述目标网格的目标编码,根据所述倒排表,获取所述待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到所述待查询文本关键字集合对应的聚集线性四分树集合;
计算所述空间关键字与所述目标网格的空间文本相似性,将所述目标编码和所述空间文本相似性的对应关系保存在栈中,将所述目标网格标记为已访问;
若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合;
将所述目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算所述空间关键字与所述第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于所述空间距离约束的空间文本对象,并将所述第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
将所述目标数量设为k,若所述第二空间文本对象集合中的空间文本对象的数量大于k,则从所述第二空间文本对象集合中获取前k个空间文本对象,将所述前k个空间文本对象保存在候选结果集合中,否则将所述第二空间文本对象集合中的空间文本对象保存在所述候选结果集合中;
将所述候选结果集合中的空间文本对象按照与所述空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
获取此时的栈顶元素确定为第一元素,若所述排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与所述空间关键字的空间文本相似性小于所述第一元素中的空间文本相似性,或所述待查询地理位置与所述第一元素中的编码对应的网格的空间距离大于所述空间距离约束,则所述排序后的候选结果集合即为所述查询结果集合,否则根据所述第一元素中的编码计算得到与所述第一元素中的编码对应的网格相邻的8个网格的编码,并将所述相邻的8个网格中未被标记为已访问的网格记为第一网格;
若存在所述第一网格,且所述第一网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第一网格与所述空间关键字的空间文本相似性,将所述第一网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第一网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
若所述聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在所述目标编码,则根据所述目标编码计算得到与所述目标网格相邻的8个网格的编码,并将与所述目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
若存在所述第二网格,且所述第二网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第二网格与所述空间关键字的空间文本相似性,将所述第二网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第二网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
获取此时的栈顶元素确定为第二元素,若所述排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与所述空间关键字的空间文本相似性大于或等于所述第二元素中的空间文本相似性,则获取所述第二元素中的编码确定为所述目标编码,所述第二元素中的编码对应的网格确定为所述目标网格,并继续执行所述若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合的步骤。
2.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码,包括:
获取待建立的聚集线性四分树的预设深度;
根据所述预设深度将所述空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
3.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述文本关键字集合中的每一个文本关键字具有一个对应的权重;
所述为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,包括:
获取所述空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
根据所述每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
4.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述计算所述空间关键字与所述目标网格的空间文本相似性,包括:
计算所述空间关键字与所述目标网格的空间相似性和文本相似性,并根据所述空间相似性和所述文本相似性得到所述空间关键字与所述目标网格的空间文本相似性。
5.一种基于空间距离约束的空间关键字查询系统,其特征在于,包括:
第一获取模块,用于获取用户输入的空间关键字、空间距离约束、目标数量,所述空间关键字包括待查询地理位置和待查询文本关键字集合;
第二获取模块,用于获取预设的空间范围内的空间文本对象的集合,所述空间文本对象包括地理位置和文本关键字集合;
空间划分模块,用于将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码;
倒排表建立模块,用于为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,所述倒排表中存储有文本关键字和聚集线性四分树的对应关系;
查询结果获取模块,用于根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合;
所述查询结果获取模块包括:
四分树集合获取单元,用于获取所述空间关键字所在的目标网格和所述目标网格的目标编码,根据所述倒排表,获取所述待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到所述待查询文本关键字集合对应的聚集线性四分树集合;
第一计算单元,用于计算所述空间关键字与所述目标网格的空间文本相似性,将所述目标编码和所述空间文本相似性的对应关系保存在栈中,将所述目标网格标记为已访问;
文本对象获取单元,用于若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合;
第二计算单元,用于将所述目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算所述空间关键字与所述第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于所述空间距离约束的空间文本对象,并将所述第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
保存单元,用于将所述目标数量设为k,若所述第二空间文本对象集合中的空间文本对象的数量大于k,则从所述第二空间文本对象集合中获取前k个空间文本对象,将所述前k个空间文本对象保存在候选结果集合中,否则将所述第二空间文本对象集合中的空间文本对象保存在所述候选结果集合中;
排序单元,用于将所述候选结果集合中的空间文本对象按照与所述空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
查询结果获取单元,用于获取此时的栈顶元素确定为第一元素,若所述排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与所述空间关键字的空间文本相似性小于所述第一元素中的空间文本相似性,或所述待查询地理位置与所述第一元素中的编码对应的网格的空间距离大于所述空间距离约束,则所述排序后的候选结果集合即为所述查询结果集合,否则根据所述第一元素中的编码计算得到与所述第一元素中的编码对应的网格相邻的8个网格的编码,并将所述相邻的8个网格中未被标记为已访问的网格记为第一网格;
第三计算单元,用于若存在所述第一网格,且所述第一网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第一网格与所述空间关键字的空间文本相似性,将所述第一网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第一网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
相邻编码获取单元,用于若所述聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在所述目标编码,则根据所述目标编码计算得到与所述目标网格相邻的8个网格的编码,并将与所述目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
第四计算单元,用于若存在所述第二网格,且所述第二网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第二网格与所述空间关键字的空间文本相似性,将所述第二网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第二网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
循环单元,用于获取此时的栈顶元素确定为第二元素,若所述排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与所述空间关键字的空间文本相似性大于或等于所述第二元素中的空间文本相似性,则获取所述第二元素中的编码确定为所述目标编码,所述第二元素中的编码对应的网格确定为所述目标网格,并继续执行所述若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合的步骤。
6.如权利要求5所述的基于空间距离约束的空间关键字查询系统,其特征在于,所述空间划分模块包括:
预设深度获取单元,用于获取待建立的聚集线性四分树的预设深度;
编码单元,用于根据所述预设深度将所述空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
7.如权利要求5所述的基于空间距离约束的空间关键字查询系统,其特征在于,所述文本关键字集合中的每一个文本关键字具有一个对应的权重;
所述倒排表建立模块还包括:
编码获取单元,用于获取所述空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
四分树生成单元,用于根据所述每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述基于空间距离约束的空间关键字查询方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现如权利要求1至4任一项所述基于空间距离约束的空间关键字查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810326769.0A CN108549690B (zh) | 2018-04-12 | 2018-04-12 | 基于空间距离约束的空间关键字查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810326769.0A CN108549690B (zh) | 2018-04-12 | 2018-04-12 | 基于空间距离约束的空间关键字查询方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108549690A CN108549690A (zh) | 2018-09-18 |
CN108549690B true CN108549690B (zh) | 2021-07-13 |
Family
ID=63514874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810326769.0A Active CN108549690B (zh) | 2018-04-12 | 2018-04-12 | 基于空间距离约束的空间关键字查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108549690B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992590B (zh) * | 2019-03-11 | 2021-06-29 | 中南民族大学 | 交通网络中带数字属性的近似空间关键字查询方法及系统 |
CN109977309B (zh) * | 2019-03-21 | 2021-05-04 | 杭州电子科技大学 | 基于多关键字和用户偏好的组合兴趣点查询方法 |
CN112307009A (zh) * | 2019-07-26 | 2021-02-02 | 傲为信息技术(江苏)有限公司 | 技术类数字资产的查询方法 |
CN113449208B (zh) * | 2020-03-26 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 空间查询方法、设备、系统及存储介质 |
CN112583900B (zh) * | 2020-12-02 | 2023-04-07 | 深圳市互盟科技股份有限公司 | 云计算的数据处理方法及相关产品 |
CN112883272B (zh) * | 2021-03-16 | 2022-04-29 | 山东大学 | 一种推荐对象的确定方法 |
CN113158087A (zh) * | 2021-04-09 | 2021-07-23 | 深圳前海微众银行股份有限公司 | 一种空间文本的查询方法及装置 |
CN113434894B (zh) * | 2021-07-19 | 2023-05-12 | 甘肃机电职业技术学院(甘肃省机械工业学校、甘肃省机械高级技工学校) | 位置数据加密、检索方法及系统、位置隐私保护系统 |
CN114493383B (zh) * | 2022-04-18 | 2022-08-23 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种兴趣点搜索方法、装置及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346444A (zh) * | 2014-10-23 | 2015-02-11 | 浙江大学 | 一种基于路网反空间关键字查询的最佳选址方法 |
CN106055563A (zh) * | 2016-05-19 | 2016-10-26 | 福建农林大学 | 一种基于网格划分的并行空间查询方法及其系统 |
CN107391636A (zh) * | 2017-07-10 | 2017-11-24 | 江苏省现代企业信息化应用支撑软件工程技术研发中心 | top‑m反近邻空间关键字查询方法 |
CN107798054A (zh) * | 2017-09-04 | 2018-03-13 | 昆明理工大学 | 一种基于Trie的范围查询方法及装置 |
-
2018
- 2018-04-12 CN CN201810326769.0A patent/CN108549690B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346444A (zh) * | 2014-10-23 | 2015-02-11 | 浙江大学 | 一种基于路网反空间关键字查询的最佳选址方法 |
CN106055563A (zh) * | 2016-05-19 | 2016-10-26 | 福建农林大学 | 一种基于网格划分的并行空间查询方法及其系统 |
CN107391636A (zh) * | 2017-07-10 | 2017-11-24 | 江苏省现代企业信息化应用支撑软件工程技术研发中心 | top‑m反近邻空间关键字查询方法 |
CN107798054A (zh) * | 2017-09-04 | 2018-03-13 | 昆明理工大学 | 一种基于Trie的范围查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
Inverted Linear Quadtree: Efficient Top K Spatial Keyword Search;Chengyuan Zhang 等;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;20160731;第28卷(第7期);全文 * |
Inverted Linear Quadtree: Efficient Top K Spatial Keyword Search;Chengyuan Zhang 等;《IEEE》;20131231;摘要、第II-V节、图7-8 * |
Also Published As
Publication number | Publication date |
---|---|
CN108549690A (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549690B (zh) | 基于空间距离约束的空间关键字查询方法及系统 | |
CN109190023B (zh) | 协同推荐的方法、装置及终端设备 | |
US8583667B2 (en) | Large graph measurement | |
CN101404032B (zh) | 一种基于内容的视频检索方法及系统 | |
CN106503223B (zh) | 一种结合位置和关键词信息的在线房源搜索方法及装置 | |
CN108932347B (zh) | 一种分布式环境下基于社会感知的空间关键字查询方法 | |
CN101128823A (zh) | 根据地理关联索引文档 | |
CN111078807B (zh) | 位置查询方法、装置、计算机设备及存储介质 | |
CN101350013A (zh) | 一种地理信息的搜索方法和系统 | |
CN108763522A (zh) | Poi检索排序方法、装置及计算机可读存储介质 | |
Ashokkumar et al. | Intelligent optimal route recommendation among heterogeneous objects with keywords | |
EP2499564A1 (en) | Search method and system | |
CN109992590B (zh) | 交通网络中带数字属性的近似空间关键字查询方法及系统 | |
CN111680489B (zh) | 目标文本的匹配方法和装置、存储介质及电子设备 | |
CN103631889B (zh) | 一种图像识别方法和装置 | |
JP2023510945A (ja) | シーン識別方法及びその装置、インテリジェントデバイス、記憶媒体並びにコンピュータプログラム | |
CN106126681B (zh) | 一种增量式流式数据聚类方法及系统 | |
CN110110119B (zh) | 图像检索的方法、装置及计算机可读存储介质 | |
CN102760127A (zh) | 基于扩展文本信息来确定资源类型的方法、装置及设备 | |
CN108345607A (zh) | 搜索方法和装置 | |
JP4440246B2 (ja) | 空間インデックス方法 | |
CN106294784B (zh) | 资源搜索方法及装置 | |
CN114491088A (zh) | 空间数据语义查询方法及装置 | |
CN114741489A (zh) | 文档检索方法、装置、存储介质以及电子设备 | |
CN114491056A (zh) | 数字警务场景下的改进poi搜索的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |