本发明属于移动大数据应用领域,尤其涉及一种对象查询方法、装置、设备及存储介质。
背景技术:
很多场景中需要查询某个对象的同行对象(即一同出行的对象)。通过传统的走访调查的方式查询,费时费力且结果难以保障。
手机信令数据是基站与手机之间的通信数据。只要手机处于正常接收运营商信号的状态,信令数据就会产生并且被记录。千万人口的城市每日信令数据可达50~100亿条。如此多的信令数据为实现同行对象识别提供了良好的数据基础。
但是,基于信令数据识别对象的同行对象,首先需要基于目标对象的信令数据得到信令轨迹,然后将信令轨迹与所有其它对象的信令轨迹逐一进行计算比较,该方法要遍历大量的数据,既不灵活又浪费计算资源与时间。
技术实现要素:
本发明实施例提供一种对象确定方法、装置、设备及存储介质,能够快速识别确定同行对象,减少计算资源的浪费,节约时间。
第一方面,本发明实施例提供一种对象查询方法,方法包括:获取用户的查询请求信息,查询请求信息包括第一对象的标识信息和第一轨迹信息;根据第一对象的标识信息和预设的对象哈希值映射关系,得到第一对象的哈希值;根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,目标哈希桶的桶标签与第一对象的哈希值对应;将目标哈希桶内包括的对象,确定为第二对象;在第二对象关联的轨迹信息与第一轨迹信息的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
在一种可选的实施方式中,根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶之前,还包括:
获取多个对象的轨迹信息;
基于多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵;
通过预设的局部敏感哈希函数,将轨迹签名矩阵分为多个区块;
计算多个区块中每个区块的哈希值;
根据多个区块中每个区块的哈希值,构建多个携带桶标签的哈希桶,多个哈希桶中每个哈希桶中的区块的哈希值相同,桶标签与哈希桶中的区块的哈希值对应。
在一种可选的实施方式中,根据第一对象的标识信息和预设的对象哈希值映射关系,得到第一对象的哈希值,具体包括:
根据预设的对象哈希值映射关系,得到第一对象的哈希值集,第一对象的哈希值集包括多个第一对象的哈希值。
在一种可选的实施方式中,通过预设的局部敏感哈希函数,将轨迹签名矩阵分为多个区块,具体包括:
将轨迹签名矩阵的每一列分为多个区块,其中轨迹签名矩阵的每列分别对应一个对象的轨迹信息;
计算多个区块中每个区块的哈希值之后,方法还包括:
将同一列的多个区块的哈希值作为一个哈希值集,得到多个对象中每个对象的哈希值集。
在一种可选的实施方式中,基于多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵,包括:
基于多个对象的轨迹信息,构建包含多个对象的轨迹信息的轨迹特征矩阵,轨迹特征矩阵的每一列对应一个对象的轨迹信息;
根据轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到轨迹特征矩阵中每列对应的签名列向量;
基于每列对应的签名列向量,构建轨迹签名矩阵。
在一种可选的实施方式中,根据轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到轨迹特征矩阵中每列对应的签名列向量,包括:
根据预设的最小哈希函数,得到轨迹特征矩阵中每列的最小哈希值;
多次变换轨迹特征矩阵的行的位置,以使轨迹特征矩阵中每列的最小哈希值改变;
基于多次变换中的每次变换,得到轨迹特征矩阵中每列的多个最小哈希值;
基于轨迹特征矩阵中每列的多个最小哈希值,到轨迹特征矩阵中每列对应的签名列向量。
在一种可选的实施方式中,获取多个对象的轨迹信息,包括:
获取来自多个基站的工参数据,工参数据包括工参标识和位置数据;
获取多个对象的信令数据,信令数据包括工参标识和对象的标识信息;
基于工参标识,关联信令数据和位置数据,得到信令轨迹数据;
将同一个对象的信令轨迹数据和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
在一种可选的实施方式中,将同一个对象的信令轨迹数据和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息,包括:
基于信令轨迹数据,进行出行起讫点od识别,得到多个对象中每个对象的od轨迹链;
将同一个对象的od轨迹链和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
在一种可选的实施方式中,第一轨迹信息包括多个第一子轨迹信息;第二对象关联的轨迹信息包括多个第二子轨迹信息;
在第二对象关联的轨迹信息与第一轨迹信息的距离小于预设阈值时,确定第二对象为第一对象的目标对象,具体包括:
在多个第二子轨迹信息中的每个第二子轨迹信息,与多个第一子轨迹信息中的任一第一子轨迹信息之间的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
第二方面,本发明实施例提供了一种对象查询装置,装置包括:
第一获取模块,被配置为获取用户的查询请求信息,查询请求信息包括第一对象的标识信息和第一轨迹信息;
第一判断模块,被配置为根据第一对象的标识信息和预设的对象哈希值映射关系,得到第一对象的哈希值;
第二判断模块,被配置为根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,目标哈希桶的桶标签与第一对象的哈希值对应;
第一数据模块,被配置为将目标哈希桶内包括的对象,确定为第二对象;
第一信息处理模块,被配置为在第二对象关联的轨迹信息与第一轨迹信息的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
第三方面,本发明实施例提供了一种对象查询设备,设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现第一方面及第一方面中任一可选实施方式提供的对象查询方法。
第四方面,本发明实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面及第一方面中任一可选实施方式提供的对象查询方法。
本申请实施例的一种对象确定方法、装置、设备及存储介质,能够通过局部敏感哈希函数预先将多个对象及其轨迹信息分到多个哈希桶中,其中,哈希桶的数量远小于对象的数量以及轨迹信息的数量;由于哈希桶的标签与哈希值对应,所以在确定对象的目标对象时,仅需根据对象的哈希值找到目标哈希桶,然后与目标哈希桶中的数据进行比较即可,其中目标哈希桶的数量远小于哈希桶的总数量;与传统遍历数据逐一比较的方法相比,该方法所需要遍历的对象数据的数量级大大降低,并且可实现目标对象的快速查询、重复查询。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种对象查询方法的流程示意图;
图2是本发明实施例提供的一种对象查询装置示意图;
图3是本发明实施例提供的一种对象查询设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本发明,而不是限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
很多场景中需要查询某个对象的同行对象(即一同出行的对象)。通过传统的走访调查的方式查询,费时费力且结果难以保障。
手机信令数据是基站与手机之间的通信数据。只要手机处于正常接收运营商信号的状态,信令数据就会产生并且被记录。千万人口的城市每日信令数据可达50~100亿条。如此多的信令数据为实现同行对象识别提供了良好的数据基础。
但是,基于信令数据识别对象的同行对象,首先需要基于目标对象的信令数据得到信令轨迹,然后将信令轨迹与所有其它对象的信令轨迹逐一进行计算比较,该方法要遍历大量的数据,既不灵活又浪费计算资源与时间。
例如,在基于移动大数据的疫情监测与预警系统项目中,需要通过确诊或疑似人员(a类人员)的一个时间段内的移动轨迹,有效找出可疑伴随或潜在接触人员(b类人员),并返回信令轨迹信息,进行判断,从而辅助疫情防控的排查工作。
基于信令数据查找a类人员对应的b类人员,传统方案需要逐一比较所有人员与a类人员的轨迹距离,例如jaccard系数、余弦相似度、欧氏距离等,通过该方法可以得到两者之间的相似度,对该相似度设定阈值,确定b类人员。通过该方案计算,进行严格的数据比较,得到的结果数据准确性相对较高,但是会消耗较长时间才能得到结果。
因此需要一种能够快速查询对象的同行对象的技术方案。基于此本申请实施例提供了对象查询方法、装置、设备及存储介质,可以应用到查询对象的同行对象的场景中。本申请结合局部敏感哈希算法时间复杂度和空间复杂度相对较低的特性,将局部敏感哈希算法深度应用在对象的同行对象查找上,解决同时寻找大量对象的同行对象时,查询时间长的问题,并且在解决计算时间问题的同时,保证结果有较高的准确性。本申请可用于疫情期间同行人员追踪,还可扩展用于城市交通线路规划、旅游游客群体识别、样本轨迹影响用户群体告警等。
下面首先对本发明实施例提供的一种对象查询方法进行介绍。请参见图1,本申请实施例提供的一种对象查询方法的流程示意图。该方法可以基于对象查询系统实现,包括步骤s101至s105。
s101.获取用户的查询请求信息,查询请求信息包括第一对象的标识信息和第一轨迹信息。
用户需要查询第一对象的目标对象时,可以向系统发送一个查询请求信息。用户发送的查询请求信息中包括需要查询的第一对象的标识信息和第一轨迹信息。其中第一对象的标识信息可以是用于代表第一对象的标识。
第一轨迹信息可以是第一对象在需要查询的时间段中的所有轨迹信息。
s102.根据第一对象的标识信息和预设的对象哈希值映射关系,得到第一对象的哈希值。
系统中预先存储有对象哈希值映射关系,具体可以是存储有对象的标识信息与哈希值对应关系的数据库表。系统在获取到查询请求信息后,可以根据查询请求信息中的第一对象标识信息在预设的对象哈希值映射关系中查询得到第一对象的哈希值。
在一个示例中,步骤s102具体可以是根据预设的对象哈希值映射关系,得到第一对象的哈希值集,第一对象的哈希值集包括多个第一对象的哈希值。
s103.根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,目标哈希桶的桶标签与第一对象的哈希值对应。
系统可以通过局部敏感哈希函数,基于多个对象的轨迹信息构建多个哈希桶,哈希桶的具体构建过程详见下文。其中,哈希桶的通标签和哈希值对应,因此,可以通过第一对象的哈希值查找到通标签与其对应的哈希桶,即目标哈希桶。
在一个示例中,与第一对象的哈希值集中的多个第一对象的哈希值对应,步骤s103中可以确定多个目标哈希桶。
s104.将目标哈希桶内包括的对象,确定为第二对象。
在找到目标哈希桶后,取出哈希桶中信息关联的所有对象,并将其确定为第二对象。其中,哈希桶中的信息可以是多个对象的轨迹信息,也可以是轨迹信息的片段。
s105.在第二对象关联的轨迹信息与第一轨迹信息的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
在找到第二对象后,仅需比较第一对象的轨迹信息和第二对象的轨迹信息之间的距离。在距离小于预设阈值时,确定第一对象的轨迹信息和第二对象的轨迹信息具有相同部分,即第二对象为第一对象的目标对象。
在一个示例中,第一轨迹信息可以包括多个第一子轨迹信息。第二对象关联的轨迹信息可以包括多个第二子轨迹信息。
此时,步骤s105可以具体为在多个第二子轨迹信息中的每个第二子轨迹信息,与多个第一子轨迹信息中的任一第一子轨迹信息之间的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
本申请实施例提供的一种对象查询方法,能够通过局部敏感哈希函数预先将多个对象及其轨迹信息分到多个哈希桶中,其中,哈希桶的数量远小于对象的数量以及轨迹信息的数量;而且由于哈希桶的标签与哈希值对应,所以在确定对象的目标对象时,仅需根据对象的哈希值找到目标哈希桶,然后与目标哈希桶中的数据进行比较即可,其中目标哈希桶的数量远小于哈希桶的总数量;因此,与传统遍历数据逐一比较的方法相比,本申请实施例中的方法所需要遍历的对象数据的数量级大大降低,并且可实现目标对象的快速查询、重复查询。
在一个实施例中,一种对象查询方法在步骤s103之前,还可以有多个哈希桶的构建过程,包括步骤s106-s110。
s106.获取多个对象的轨迹信息。
系统需要在多个对象中查询与第一对象有相同轨迹信息的目标对象。所以需要先获取到多个对象的轨迹信息,具体的可以通过获取基站的工参数据和对象的手机信令数据来组成对象的轨迹信息,从而获取到多个对象的轨迹信息。
在一个示例中,步骤s106可以包括步骤s1061-s1064。
s1061.获取来自多个基站的工参数据,工参数据包括工参标识和位置数据。
此处获取到的位置数据一般是经纬度数据,获取到经纬度数据之后,可以将经纬度数据转换成编码数据,例如可以根据预设的编码方法,得到位置数据对应的编码数据。
在一个示例中,获取到基站的工参数据后,可以清洗工参数据。例如,对工参id为空,经纬度为空或者经纬度范围不在目标区域内的数据进行剔除。将经纬度数据转换成编码数据,具体可以是计算工参经纬度的geohash网格值。
s1062.获取多个对象的信令数据,信令数据包括工参标识和对象的标识信息。
获取到对象的信令数据之后,可以根据对象的信令数据以及步骤s1061中的工参数据,剔除信令数据中的非正常数据,即干扰数据。
在一个示例中,获取到的信令数据可以进行清洗,例如,对用户id为空,工参id为空的数据进行剔除。
s1063.基于工参标识,关联信令数据和位置数据,得到信令轨迹数据。
系统可以根据工参标识,将信令数据和位置数据关联到一起,位置数据具体的可以是位置的编码数据,并对于关联不到工参标识的数据进行剔除,最后得到对象的信令轨迹数据。
s1064.将同一个对象的信令轨迹数据和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
由于原始信令数据中存在噪声数据,可以对对象的轨迹信息进行优化处理,优化处理过程如下所述:
乒乓切换优化。轨迹基站乒乓切换问题比较常见,即在第一个基站上报后,切换到第二个基站,马上又切换回到第一个基站的情况。
针对此类问题,可以根据位置判断和停留时间阈值设置,剔除异常上报位置。
漂移数据优化。使用信令数据进行轨迹分析时,由于基站上报信令中存在基站位置记录异常以及信号切换至较远基站等极端情况,会导致出现用户基站上报位置距离用户实际位置较远的情况,因此,在进行城市出行等轨迹相关计算时,需要针对轨迹数据漂移情况进行优化。
异常漂移的表现方式为:用户可能突然切换到距离当前位置很远的位置,然后再次切回到当前位置附近;或者用户在轨迹中存在大量回头、锯齿等情况。
在轨迹中取出3个连续的上报点,利用余弦定理计算切换向量间的夹角θi 1余弦值信息:
设置夹角的置信度为t,如果cosθi 1>cost,则认为pi 1点存在漂移,剔除异常漂移点。否则认为没有发生漂移。
在一个示例中,还可以基于步骤s1063中的信令轨迹数据进行出行起讫点识别及od识别,即步骤s1064可以具体包括:
基于信令轨迹数据,进行出行起讫点od识别,得到多个对象中每个对象的od轨迹链;
将同一个对象的od轨迹链和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
在一个示例中,对优化后的用户轨迹进行od识别可以包括如下过程:
用户出行起点识别。识别用户出行起始点信息,用户开始持续运动状态,在指定时间t中,离开指定范围a,则范围a为用户出行开始区域。用户离开区域的时间,即在区域a最后一次上报的时间,为用户的出行开始时间。用户实际出行位置,则通过权重算法模型进行计算。
首先,计算用户在区域a的位置重心坐标:
选取距离重心最近的位置上报点作为出行结束点,即
p=min{(lng(p)-lng(g))2 (lat(p)-lat(g))2}
用户出行持续状态识别。识别用户持续出行状态,对于用户轨迹中任意的位置点p,从p点的时间开始,在指定时间t中,用户活动范围超出p周围指定范围a,则认为用户保持持续运动状态。
用户出行结束点识别。识别用户出行结束点信息,用户结束持续运动状态,在指定时间t中,持续停留在指定范围a,则范围a为用户出行结束区域。用户到达a区域的时间,即用户在区域a首次出现的时间,为用户的出行结束时间。用户实际出行位置,则通过权重算法模型进行计算。
首先,计算用户在区域a的位置重心坐标:
选取距离重心最近的位置上报点作为出行结束点,即
p=min{(lng(p)-lng(g))2 (lat(p)-lat(g))2}
s107.基于多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵。
得到多个对象的轨迹信息之后,可以通过预设的最小哈希函数进行转换以得到轨迹签名矩阵,具体的过程可以参考下面的示例。
在一个示例中,步骤s107可以具体包括步骤s1071-s1073。
s1071.基于多个对象的轨迹信息,构建包含多个对象的轨迹信息的轨迹特征矩阵,轨迹特征矩阵的每一列对应一个对象的轨迹信息;
s1072.根据轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到轨迹特征矩阵中每列对应的签名列向量;
s1073.基于每列对应的签名列向量,构建轨迹签名矩阵。
在一个示例中步骤s107具体为通过最小哈希min-hashing算法对预处理得到的轨迹信息,进行降维置换。
例如,假设城市a当日用户出行的总次数为n,geohash网格数量为g。
hashfunction:
hπ(c)=minπ(c)
min-hashing的性质:选择一个随机排列π,那么
pr[hπ(c1)=hπ(c2)]=sim(c1,c2)
使用hashfunctions(min-hash函数族中选出的p个哈希hash函数)将基本数据hash成一个签名矩阵。该签名矩阵有p行。
通过这一步,将原基本数据由g维降低为到p维。此处p远小于g。
其中,步骤s1072中轨迹特征矩阵中每列对应的签名列向量可以具体通过如下过程得到:
根据预设的最小哈希函数,得到轨迹特征矩阵中每列的最小哈希值;
多次变换轨迹特征矩阵的行的位置,以使轨迹特征矩阵中每列的最小哈希值改变;
基于多次变换中的每次变换,得到轨迹特征矩阵中每列的多个最小哈希值;
基于轨迹特征矩阵中每列的多个最小哈希值,到轨迹特征矩阵中每列对应的签名列向量。
s108.通过预设的局部敏感哈希函数,将轨迹签名矩阵分为多个区块。
在一个示例中,步骤s108将轨迹签名矩阵分为多个区块的过程可以具体包括步骤s1081-s1083。
s1081.将轨迹签名矩阵的每一列分为多个区块,其中轨迹签名矩阵的每列分别对应一个对象的轨迹信息;
s1082.计算多个区块中每个区块的哈希值之后,方法还包括:
s1083.将同一列的多个区块的哈希值作为一个哈希值集,得到多个对象中每个对象的哈希值集。
s109.计算多个区块中每个区块的哈希值。
s110.根据多个区块中每个区块的哈希值,构建多个携带桶标签的哈希桶,多个哈希桶中每个哈希桶中的区块的哈希值相同,桶标签与哈希桶中的区块的哈希值对应。
在一个示例中对签名矩阵进行局部敏感哈希lsh计算,具体过程如下:
首先将签名矩阵分为b个区块(记为band),每个band中包含了签名矩阵中的r行。同一列中的每个band都是属于同一用户的。p、b和r三者的关系为:p=b*r
对每个band计算hash值。将这些hash值做处理,使之成为预先设定好的hash桶的标签。hash桶的数量为k。根据band的hash值将每个band存入桶中。
如果两个用户的轨迹,同一行的band,计算出相同的hash值,就将这两个用户映射到同一个hash桶中,就认为这两个用户轨迹相似。
在一个具体的示例中,假设获取了od数量为n=5000万;
geohash网格数量g=10万;
可以设定p=1000,取出p个min-hash函数。
那么经过数据降维,数据维度从10万降低到1000,相差100倍。
设b=100,那么r=10。设k=500万。
经过lsh将用户映射到hash桶后,平均每个hash桶中用户的数量为:5000万*100/500万=1000。
每个用户至多被分配到100个hash桶中。如果要找和某目标用户相似的轨迹用户群,只需要在该用户映射到的100个hash桶中去寻找。需要遍历的用户数量为1000*100=10000个用户。
而传统方法计算需要遍历5000w个用户。相比传统方法,使用本方法可以将查询效率提高千倍以上。
与上述实施例提供的对象的查询方法相对应的,本申请实施例提供一种对象的查询装置,请参考图2,包括:
第一获取模块201,被配置为获取用户的查询请求信息,查询请求信息包括第一对象的标识信息和第一轨迹信息。
第一判断模块202,被配置为根据第一对象的标识信息和预设的对象哈希值映射关系,得到第一对象的哈希值。
第二判断模块203,被配置为根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,目标哈希桶的桶标签与第一对象的哈希值对应。
第一数据模块204,被配置为将目标哈希桶内包括的对象,确定为第二对象。
第一信息处理模块205,被配置为在第二对象关联的轨迹信息与第一轨迹信息的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
本申请实施例提供的对象的查询装置,能够通过局部敏感哈希函数预先将多个对象及其轨迹信息分到多个哈希桶中,在确定对象的目标对象时,仅需根据对象的哈希值找到目标哈希桶,然后与目标哈希桶中的数据进行比较即可。与传统遍历数据逐一比较的方法相比,本申请实施例中的方法仅需要与目标哈希桶中的对象逐一比较即可,需要遍历的对象数据的数量级大大降低,并且可实现目标对象的快速查询、重复查询。
在一个实施例中,对象的查询装置还可以包括第二获取模块、第二信息处理模块、划分模块、计算模块、哈希桶构建模块。
第二获取模块,被配置为在根据第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶之前,获取多个对象的轨迹信息。
第二信息处理模块,被配置为基于多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵。
划分模块,被配置为通过预设的局部敏感哈希函数,将轨迹签名矩阵分为多个区块。
计算模块,被配置为计算多个区块中每个区块的哈希值。
哈希桶构建模块,被配置为根据多个区块中每个区块的哈希值,构建多个携带桶标签的哈希桶,多个哈希桶中每个哈希桶中的区块的哈希值相同,桶标签与哈希桶中的区块的哈希值对应。
在一个实施例中,第一判断模块202,具体被配置为根据预设的对象哈希值映射关系,得到第一对象的哈希值集,第一对象的哈希值集包括多个第一对象的哈希值。
在一个实施例中,划分模块,具体被配置为将轨迹签名矩阵的每一列分为多个区块,其中轨迹签名矩阵的每列分别对应一个对象的轨迹信息。
在该实施例中,对象的查询装置还可以包括第二数据模块。
第二数据模块,被配置为在计算多个区块中每个区块的哈希值之后,将同一列的多个区块的哈希值作为一个哈希值集,得到多个对象中每个对象的哈希值集。
在一个示例中,第二信息处理模块可以包括信息处理子模块、数据处理子模块、矩阵构建子模块。
信息处理子模块,被配置为基于多个对象的轨迹信息,构建包含多个对象的轨迹信息的轨迹特征矩阵,轨迹特征矩阵的每一列对应一个对象的轨迹信息。
数据处理子模块,被配置为根据轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到轨迹特征矩阵中每列对应的签名列向量。
矩阵构建子模块,被配置为基于每列对应的签名列向量,构建轨迹签名矩阵。
在一个示例中,数据处理子模块,可以包括第一信息处理单元、矩阵变换单元、第二信息处理单元、数据处理单元。
第一信息处理单元,被配置为根据预设的最小哈希函数,得到轨迹特征矩阵中每列的最小哈希值。
矩阵变换单元,被配置为多次变换轨迹特征矩阵的行的位置,以使轨迹特征矩阵中每列的最小哈希值改变。
第二信息处理单元,被配置为基于多次变换中的每次变换,得到轨迹特征矩阵中每列的多个最小哈希值。
数据处理单元,被配置为基于轨迹特征矩阵中每列的多个最小哈希值,到轨迹特征矩阵中每列对应的签名列向量。
在一个实施例中,第二获取模块,可以包括第一获取子模块、第二获取子模块、数据关联子模块、轨迹确定子模块。
第一获取子模块,被配置为获取来自多个基站的工参数据,工参数据包括工参标识和位置数据。
第二获取子模块,被配置为获取多个对象的信令数据,信令数据包括工参标识和对象的标识信息。
数据关联子模块,被配置为基于工参标识,关联信令数据和位置数据,得到信令轨迹数据。
轨迹确定子模块,被配置为将同一个对象的信令轨迹数据和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
在一个示例中,轨迹确定子模块,可以包括od识别单元、轨迹确定单元。
od识别单元,被配置为基于信令轨迹数据,进行出行起讫点od识别,得到多个对象中每个对象的od轨迹链。
轨迹确定单元,被配置为将同一个对象的od轨迹链和对象的标识信息,作为一个对象的轨迹信息,以得到多个对象的轨迹信息。
在一个实施例中,第一获取模块201中第一轨迹信息包括多个第一子轨迹信息。第一数据模块204中第二对象关联的轨迹信息包括多个第二子轨迹信息。
在该实施例中,第一信息处理模块205,具体被配置为在多个第二子轨迹信息中的每个第二子轨迹信息,与多个第一子轨迹信息中的任一第一子轨迹信息之间的距离小于预设阈值时,确定第二对象为第一对象的目标对象。
上述各实施例提供的对象查询方法可以由图3所示的定对象查询设备执行。
对象查询设备可以包括处理器301以及存储有计算机程序指令的存储器302。
具体地,上述处理器301可以包括中央处理器(centralprocessingunit,cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器302可以包括可移除或不可移除(或固定)的介质,或者存储器302是非易失性固态存储器。存储器302可在综合网关容灾设备的内部或外部。
在一个实例中,存储器302可以是只读存储器(readonlymemory,rom)。在一个实例中,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
存储器302可以包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器301通过读取并执行存储器302中存储的计算机程序指令,以实现上述任一实施例提供的对象查询方法,并达到该方法达到的相应技术效果,为简洁描述在此不再赘述。
在一个示例中,对象查询设备还可包括通信接口303和总线310。其中,如图3所示,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。
通信接口303,主要用于实现本发明实施例中各模块、系统、单元和/或设备之间的通信。
总线310包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(acceleratedgraphicsport,agp)或其他图形总线、增强工业标准架构(extendedindustrystandardarchitecture,eisa)总线、前端总线(frontsidebus,fsb)、超传输(hypertransport,ht)互连、工业标准架构(industrystandardarchitecture,isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该对象查询设备能够通过局部敏感哈希函数预先将多个对象及其轨迹信息分到多个哈希桶中,在确定对象的目标对象时,仅需根据对象的哈希值找到目标哈希桶,然后与目标哈希桶中的数据进行比较即可。与传统遍历数据逐一比较的方法相比,本申请实施例中的方法仅需要与目标哈希桶中的对象逐一比较即可,需要遍历的对象数据的数量级大大降低,并且可实现目标对象的快速查询、重复查询。
结合上述实施例中的对象查询方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种对象查询方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(applicationspecificintegratedcircuit,asic)、适当的固件、插件、功能卡等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(radiofrequency,rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
1.一种对象查询方法,其特征在于,包括:
获取用户的查询请求信息,所述查询请求信息包括第一对象的标识信息和第一轨迹信息;
根据所述第一对象的标识信息和预设的对象哈希值映射关系,得到所述第一对象的哈希值;
根据所述第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,所述目标哈希桶的桶标签与所述第一对象的哈希值对应;
将所述目标哈希桶内包括的对象,确定为第二对象;
在所述第二对象关联的轨迹信息与所述第一轨迹信息的距离小于预设阈值时,确定所述第二对象为所述第一对象的目标对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶之前,还包括:
获取多个对象的轨迹信息;
基于所述多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵;
通过预设的局部敏感哈希函数,将所述轨迹签名矩阵分为多个区块;
计算所述多个区块中每个区块的哈希值;
根据所述多个区块中每个区块的哈希值,构建多个携带桶标签的哈希桶,所述多个哈希桶中每个所述哈希桶中的区块的哈希值相同,所述桶标签与所述哈希桶中的区块的哈希值对应。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一对象的标识信息和预设的对象哈希值映射关系,得到所述第一对象的哈希值,具体包括:
根据预设的对象哈希值映射关系,得到所述第一对象的哈希值集,所述第一对象的哈希值集包括多个所述第一对象的哈希值。
4.根据权利要求3所述的方法,其特征在于,所述通过预设的局部敏感哈希函数,将所述轨迹签名矩阵分为多个区块,具体包括:
将所述轨迹签名矩阵的每一列分为多个区块,其中所述轨迹签名矩阵的每列分别对应一个对象的轨迹信息;
所述计算所述多个区块中每个区块的哈希值之后,所述方法还包括:
将同一列的多个区块的哈希值作为一个哈希值集,得到所述多个对象中每个对象的哈希值集。
5.根据权利要求2所述的方法,其特征在于,所述基于所述多个对象的轨迹信息,通过预设的最小哈希函数,得到轨迹签名矩阵,包括:
基于所述多个对象的轨迹信息,构建包含多个对象的轨迹信息的轨迹特征矩阵,所述轨迹特征矩阵的每一列对应一个对象的轨迹信息;
根据所述轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到所述轨迹特征矩阵中每列对应的签名列向量;
基于所述每列对应的签名列向量,构建轨迹签名矩阵。
6.根据权利要求5所述的方法,其特征在于,所述根据所述轨迹特征的每列的轨迹信息,通过预设的最小哈希函数,得到所述轨迹特征矩阵中每列对应的签名列向量,包括:
根据预设的最小哈希函数,得到所述轨迹特征矩阵中每列的最小哈希值;
多次变换所述轨迹特征矩阵的行的位置,以使所述轨迹特征矩阵中每列的最小哈希值改变;
基于所述多次变换中的每次变换,得到所述轨迹特征矩阵中每列的多个最小哈希值;
基于所述轨迹特征矩阵中每列的多个最小哈希值,到所述轨迹特征矩阵中每列对应的签名列向量。
7.根据权利要求2所述的方法,其特征在于,所述获取多个对象的轨迹信息,包括:
获取来自多个基站的工参数据,所述工参数据包括工参标识和位置数据;
获取多个对象的信令数据,所述信令数据包括工参标识和对象的标识信息;
基于所述工参标识,关联所述信令数据和所述位置数据,得到信令轨迹数据;
将同一个对象的所述信令轨迹数据和所述对象的标识信息,作为一个对象的轨迹信息,以得到所述多个对象的轨迹信息。
8.根据权利要求7所述的方法,其特征在于,所述将同一个对象的所述信令轨迹数据和所述对象的标识信息,作为一个对象的轨迹信息,以得到所述多个对象的轨迹信息,包括:
基于所述信令轨迹数据,进行出行起讫点od识别,得到所述多个对象中每个对象的od轨迹链;
将同一个对象的所述od轨迹链和所述对象的标识信息,作为一个对象的轨迹信息,以得到所述多个对象的轨迹信息。
9.根据权利要求1所述的方法,其特征在于,所述第一轨迹信息包括多个第一子轨迹信息;所述第二对象关联的轨迹信息包括多个第二子轨迹信息;
所述在所述第二对象关联的轨迹信息与所述第一轨迹信息的距离小于预设阈值时,确定所述第二对象为所述第一对象的目标对象,具体包括:
在所述多个第二子轨迹信息中的每个第二子轨迹信息,与所述多个第一子轨迹信息中的任一第一子轨迹信息之间的距离小于预设阈值时,确定所述第二对象为所述第一对象的目标对象。
10.一种对象查询装置,其特征在于,包括:
第一获取模块,被配置为获取用户的查询请求信息,所述查询请求信息包括第一对象的标识信息和第一轨迹信息;
第一判断模块,被配置为根据所述第一对象的标识信息和预设的对象哈希值映射关系,得到所述第一对象的哈希值;
第二判断模块,被配置为根据所述第一对象的哈希值,确定通过局部敏感哈希函数预先构建的多个哈希桶中的目标哈希桶,所述目标哈希桶的桶标签与所述第一对象的哈希值对应;
第一数据模块,被配置为将所述目标哈希桶内包括的对象,确定为第二对象;
第一信息处理模块,被配置为在所述第二对象关联的轨迹信息与所述第一轨迹信息的距离小于预设阈值时,确定所述第二对象为所述第一对象的目标对象。
11.一种对象查询设备,其特征在于,所述设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-9任意一项所述的对象查询方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-9任意一项所述的对象查询方法。
技术总结