位置推断方法以及装置
技术领域
本说明书涉及定位技术领域,特别涉及一种位置推断方法。本说明书同时涉及一种位置推断装置,一种电子设备,以及一种计算机可读存储介质。
背景技术
移动定位技术是利用无线移动通信网络对接收到的无线电波的一些参数进行测量,并根据特定的算法对某一移动终端或个人在某一时间所处的地理位置进行精确测定,以便为移动终端用户提供相关的位置信息服务;或者,进行实时监测和跟踪。随着网络技术的发展,为了更好地服务用户、提升用户体验,许多服务端推出了基于用户位置的服务项目,这样,就需要服务器获取到用户当前的位置信息。
现有技术中,服务器获取用户位置信息的方法主要包括:1)通过用户终端的定位装置获取用户位置;2)基于历史移动位置数据进行用户位置推断,即采集用户终端的历史轨迹数据,基于用户特定时刻提取的信息特征,使用预测模型推断其所在的位置。
现有技术的用户位置信息获取方法存在以下缺陷:受限于用户是否主动开启定位权限,部分用户不开启定位无法触达,定位准确率十分有限,以上缺陷制约了服务端基于位置的智能化服务及应用等。
发明内容
有鉴于此,本说明书实施例提供了一种位置推断方法。本说明书同时涉及一种位置推断装置,一种电子设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种位置推断方法,包括:
获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息;
在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID;
根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置;
根据所述锚点的标识ID获取预存的所述锚点的离线位置;
基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
可选地,所述根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置包括:
根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
计算所述锚点的各轨迹点对应的位置信息的方差值;
若所述方差值小于预设方差阈值,则根据所述锚点的各轨迹点对应的位置信息计算所述锚点的在线位置。
可选地,所述锚点历史用户与所述锚点的交互数据中携带有所述至少一个锚点历史用户的标识信息;
所述根据所述锚点的标识ID收集第一预设周期内锚点历史用户与所述锚点的交互数据之后,从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息之前,还包括:
确定所述锚点历史用户与所述锚点的交互数据的生成时间;
根据所述锚点历史用户的标识信息获取所述锚点历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述锚点历史用户的关联位置信息。
可选地,所述基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置包括:
根据所述锚点的标识ID获取预存的所述锚点更新时间最短的离线位置以及所述锚点更新时间最短的离线位置的更新时间;
判断所述锚点更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则将所述锚点更新时间最短的离线位置作为所述目标用户的当前位置。
可选地,若所述锚点更新时间最短的离线位置的更新时间不在预设时长阈值范围内,则执行以下操作:
根据所述锚点的标识ID获取第一预设周期内所述锚点的轨迹点个数;
判断在第一预设周期内所述锚点的轨迹点个数是否大于预设阈值;
若是,则将所述锚点的在线位置作为所述目标用户的当前位置。
可选地,若在第一预设周期内所述锚点的轨迹点个数不大于预设阈值,则执行以下操作:
根据所述锚点的标识ID收集生成时间最短的所述锚点历史用户与所述锚点的交互数据;
将所述交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置。
可选地,所述锚点的离线位置通过以下方式进行计算:
根据所述锚点的标识ID收集第二预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的的位置信息;
根据预设的邻域半径和最小样本点数,采用聚类算法对所述锚点的轨迹点对应的位置信息进行聚类,得到至少一个聚类簇;
在聚类后所述聚类簇的数量等于1的情况下,则以所述聚类簇的质心位置作为第二预设周期内所述锚点的离线位置。
可选地,在聚类后所述聚类簇的数量大于1的情况下,所述方法还包括:
获取每个聚类簇包含的轨迹点的个数;
根据每个聚类簇包含的轨迹点的个数确认异常聚类簇,所述异常聚类簇对应的轨迹点的个数小于预设轨迹点个数阈值;
对所述聚类簇中的异常聚类簇进行提纯操作得到目标聚类簇;
以所述目标聚类簇的质心位置作为所述锚点的离线位置。
可选地,所述以所述目标聚类簇的质心位置作为所述锚点的离线位置之后,还包括:
计算第三预设周期内所述锚点的离线位置;
计算所述第二预设周期内所述锚点的离线位置与第三预设周期内所述锚点的离线位置间的偏移量;
基于所述偏移量计算第二预设周期内所述锚点的离线位置的置信度;
在所述锚点的离线位置的置信度大于第一预设置信度阈值的情况下,将所述锚点的离线位置信息进行存储。
可选地,所述基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置之后,还包括:
计算所述目标用户的当前位置的置信度;
在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
根据本说明书实施例的另一方面,提供了一种位置推断装置,包括:
交互数据获取模块,被配置为获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息;
标识ID生成模块,被配置为在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID;
在线位置计算模块,被配置为根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置;
离线位置获取模块,被配置为根据所述锚点的标识ID获取预存的所述锚点的离线位置;
当前位置推断模块,被配置为基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
可选地,所述在线位置计算模块包括:
第一交互数据获取子模块,被配置为根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据;
位置信息确定子模块,被配置为从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
方差计算子模块,被配置为计算所述锚点的各轨迹点对应的位置信息的方差值;
在线位置计算子模块,被配置为若所述方差值小于预设方差阈值,则根据所述锚点的各轨迹点对应的位置信息计算所述锚点的在线位置。
可选地,所述锚点历史用户与所述锚点的交互数据中携带有所述锚点历史用户的标识信息;
所述在线位置计算模块还包括:
生成时间确定子模块,被配置为确定所述锚点历史用户与所述锚点的交互数据的生成时间;
信息获取子模块,被配置为根据所述锚点历史用户的标识信息获取所述锚点历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
关联位置信息确定子模块,被配置为若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述锚点历史用户的关联位置信息。
可选地,所述当前位置推断模块包括:
离线位置信息获取子模块,被配置为根据所述锚点的标识ID获取预存的所述锚点更新时间最短的离线位置以及所述锚点更新时间最短的离线位置的更新时间;
第一判断子模块,被配置为判断所述锚点更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则运行第一当前位置确定子模块;
所述第一当前位置确定子模块,被配置为将所述锚点更新时间最短的离线位置作为所述目标用户的当前位置。
可选地,若所述第一判断子模块的运行结果为否,则运行以下子模块:
轨迹点个数获取子模块,被配置为根据所述锚点的标识ID获取第一预设周期内所述锚点的轨迹点个数;
第二判断子模块,被配置为判断在第一预设周期内所述锚点的轨迹点个数是否大于预设阈值;
若是,则运行第二当前位置确定子模块;
所述第二当前位置确定子模块,被配置为将所述锚点的在线位置作为所述目标用户的当前位置。
可选地,若所述第二判断子模块的运行结果为否,则运行以下子模块:
交互数据收集子模块,被配置为根据所述锚点的标识ID收集生成时间最短的所述锚点历史用户与所述锚点的交互数据;
第三当前位置确定子模块,被配置为将所述交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置。
可选地,所述位置推断装置还包括:离线位置计算模块,被配置为:
根据所述锚点的标识ID收集第二预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的的位置信息;
根据预设的邻域半径和最小样本点数,采用聚类算法对所述锚点的轨迹点对应的位置信息进行聚类,得到至少一个聚类簇;
在聚类后所述聚类簇的数量等于1的情况下,则以所述聚类簇的质心位置作为第二预设周期内所述锚点的离线位置。
可选地,在聚类后所述聚类簇的数量大于1的情况下,所述离线位置计算模块还被配置为:
获取每个聚类簇包含的轨迹点的个数;
根据每个聚类簇包含的轨迹点的个数确认异常聚类簇,所述异常聚类簇对应的轨迹点的个数小于预设轨迹点个数阈值;
对所述聚类簇中的异常聚类簇进行提纯操作得到目标聚类簇;
以所述目标聚类簇的质心位置作为所述锚点的离线位置。
可选地,所述位置推断装置还包括:
置信度计算模块,被配置为计算所述目标用户的当前位置的置信度;
信息返回模块,被配置为在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
根据本说明书实施例的另一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述位置推断方法的步骤。
根据本说明书实施例的另一方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述位置推断方法的步骤。
本说明书实施例中,通过获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息;在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID;根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置;根据所述锚点的标识ID获取预存的所述锚点的离线位置;基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
本说明书实施例中,通过获取用户与锚点的交互数据,并根据交互数据中携带的相关信息确定锚点的在线和离线位置,进而通过锚点的在线和离线位置推断目标用户的当前位置,不再受限于用户是否主动开启定位权限即可获取目标用户的当前位置,降低了服务器获取目标用户位置的难度,同时提升了用户体验。
附图说明
图1是本申请实施例提供的位置推断方法的流程图;
图2是本申请实施例提供的位置推断方法应用于实际场景的流程图;
图3是本申请实施例提供的位置推断方法中聚类簇的示意图;
图4是本申请实施例提供的位置推断装置的结构示意图;
图5是本申请实施例提供的电子设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
移动支付锚点:在移动支付场景中,用户可通过客户端交互完成支付及相关业务的媒介物,包括但不限于二维码/条形码、扫描枪、支付盒子、扫脸机具、公交地铁刷卡机、扫码POS机等。移动支付锚点在物理空间中具有客观描述,与用户交互时能暴露特定用户的位置和环境信息。
以下是密度聚类算法DBSCAN中的相关术语解释:
密度聚类算法(DBSCAN):基于一组邻域来描述样本集的紧密程度,参数(∈,MinPts)用来描述邻域的样本分布紧密程度。其中,∈描述了某一样本的邻域距离阈值,MinPts描述了某一样本的距离为∈的邻域中最小样本点数。
核心对象:如果给定对象Ε领域内的样本点数大于等于最小样本点数,则称该对象为核心对象。
直接密度可达:对于样本集合D,如果样本点q在p的Ε领域内,并且p为核心对象,那么对象q从对象p直接密度可达。
密度可达:对于样本集合D,给定一串样本点p1,p2....pn,p=p1,q=pn,假如对象pi从pi-1直接密度可达,那么对象q从对象p密度可达。
密度相连:对于样本集合D中的任意一点o,如果存在对象p到对象o密度可达,并且对象q到对象o密度可达,那么对象q到对象p密度相连。
本说明书实施例提供了一种位置推断方法。本说明书同时涉及一种位置推断装置,一种电子设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例的位置推断方法的流程图,包括步骤102至步骤110。
步骤102:获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息。
本说明书提供的一个实施例中,所述位置推断方法可以应用于移动支付场景,所述交互数据即为用户与移动支付锚点发生交互时所产生的数据,所述移动支付锚点包括但不限于二维码/条形码、扫描枪、支付盒子、扫脸机具、公交地铁刷卡机、扫码POS机等;所述交互的类型包括但不限于购物扫码支付、乘车扫码支付、乘车刷卡支付、购物刷脸支付等。
具体的,以移动支付场景为例,假设所述移动支付锚点为商店A的二维码,目标用户B在商店A购物后通过手机端扫描商店A的二维码进行支付,支付完成后由服务器实时获取所述目标用户B与移动支付锚点的交互数据。由于在支付的同时所述目标用户B的手机端未开启定位功能,因此获取的交互数据中不包含所述目标用户B的位置信息。具体的,将获取的交互数据基于预设交互数据结构进行整合,其中所述预设交互数据结构如表1所示。
表1
将获取的交互数据基于预设交互数据结构进行整合得到的整合结果如表2所示。
表2
由表2可以得到的信息包括:用户与商户间的交易信息为用户通过扫码支付完成购物交易,交易ID为SJ1003,其中,所述用户为目标用户B,目标用户B的ID为YH0123ZBC,所述商户为商店A,商店A的ID为SH80245h,二维码或条形码值为1234567890。
步骤104:在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID。
本说明书提供的一个实施例中,在所述交互数据中不包含所述目标用户的位置信息的情况下,则需根据锚点的位置信息对所述目标用户的位置信息进行推断,首先从交互数据中提取所述锚点的标识信息,再根据所述标识信息生成所述锚点的标识ID。
具体的,仍以移动支付场景为例,如表2所示,表2中的移动支付锚点为二维码,则从表2中提取的二维码的标识信息为1234567890,利用数字摘要算法对所述二维码的标识信息进行处理得到所述二维码的表示ID为EWMX。
步骤106:根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置。
具体的,所述根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置可通过以下步骤实现:
根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
计算所述锚点的各轨迹点对应的位置信息的方差值;
若所述方差值小于预设方差阈值,则根据所述锚点的各轨迹点对应的位置信息计算所述锚点的在线位置。
本说明书提供的一个实施例中,以所述第一预设周期为3分钟为例,以3分钟为周期获取所述锚点历史用户与所述锚点的交互数据,其中,将交互数据中携带有位置信息的用户视为锚点历史用户。
以超市购物支付场景为例,假设所述锚点为扫描枪,用户在超市M购物完成后由扫描枪扫描用户出示的二维码或条形码完成支付,假设3分钟内有3位用户完成支付,即3分钟内服务器可收集3组交互数据。
具体的,所述锚点历史用户与所述锚点的交互数据中携带有所述锚点历史用户的标识信息;
根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据之后,从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息之前,还需在所述交互数据中添加锚点历史用户的位置信息,具体可以通过以下步骤实现:
确定所述锚点历史用户与所述锚点的交互数据的生成时间;
根据所述锚点历史用户的标识信息获取所述锚点历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述锚点历史用户的关联位置信息。
沿用上例,假设3分钟内有3位用户完成支付,分别为用户C、用户D和用户E,3位用户完成支付后分别生成第一组交互数据、第二组交互数据和第三组交互数据,并且生成时间分别为2019.06.10.11:12:03、2019.06.10.11:12:53和2019.06.10.11:13:58。服务器收集3组交互数据后,根据交互数据中携带的用户的标识信息获取用户的更新时间最短的目标位置信息并获取所述更新时间最短的目标位置信息的更新时间。
假设获取的用户C、用户D和用户E的更新时间最短的目标位置信息以及更新时间分别为:超市M(35.780287,104.1374349)于2019.06.10.11:12:03更新、地铁站N(39.9049841,116.4266645)于2019.06.10.10:52:03更新、超市M(35.780287,104.1374349)于2019.06.10.11:11:03更新,其中用户C和用户E的更新时间最短的目标位置的更新时间与第一组交互数据和第三组交互数据的生成时间的时间间隔分别为0分钟和2分钟,均在预设时间阈值5分钟范围内,因此将目标位置信息超市M作为用户C的关联位置信息并添加到第一组交互数据中,将超市M作为用户E的关联位置信息并添加到第三组交互数据中;除此之外,用户D更新时间最短的目标位置的更新时间与第二组交互数据的生成时间的时间间隔分别为20分钟,不在预设时间阈值5分钟范围内,因此无法在第二组交互数据中添加用户D的关联位置信息。
本说明书提供的一个实施例中,交互数据中包含锚点历史用户的目标位置信息的数据为有效数据,沿用上例,服务器收集的3组交互数据中第一组交互数据和第三组交互数据为有效数据,从第一组和第三组交互数据中提取用户的关联位置信息作为超市M扫描枪的轨迹点对应的位置信息,即超市M扫描枪的两个轨迹点的位置信息分别为(35.780287,104.1374349)和(35.780287,104.1374349);获取轨迹点位置信息后,计算两个轨迹点位置信息的方差值;根据方差公式计算可得扫描枪两个轨迹点位置信息的方差为0,小于预设方差阈值0.1,则可根据扫描枪的两个轨迹点对应的位置信息计算扫描枪的在线位置。
具体的,由于上例中获取的超市M扫描枪的两个轨迹点的位置信息一致,可直接将(35.780287,104.1374349)作为扫描枪的在线位置。
实际应用中,若获取的锚点轨迹点位置信息不一致,则可根据式(1)计算锚点的在线位置。
其中,l
a为第一预设周期内锚点各轨迹点对应的位置信息的集合,
为锚点的在线位置,Δt
i为位置l
i收集时刻和计算时刻的时间差,同理,Δt
k为位置l
k收集时刻和计算时刻的时间差。
具体的,服务器获取用户与锚点的交互数据后,根据交互数据中的用户标识信息获取用户的更新时间最短的目标位置信息以及其更新时间,若所述更新时间与获取所述交互数据的时间间的时间间隔在预设时间间隔范围内,则将用户的关联位置信息添加到交互数据中,并将所述交互数据存储于数据库,执行步骤根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据时可直接从数据库获取已添加用户目标位置信息的交互数据。
本说明书提供的一个实施例中,仅以第一预设周期为3分钟、用户的目标位置信息为经纬度信息、预设时间阈值为5分钟、预设方差阈值为0.1为例进行说明,实际应用中,以上参数及本说明书实施例涉及的其他举例参数均可跟据实际需要进行设置,在此不做限制。
步骤108:根据所述锚点的标识ID获取预存的所述锚点的离线位置。
本说明书提供的一个实施例中,所述锚点的离线位置通过以下方式进行计算:
根据所述锚点的标识ID收集第二预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
根据预设的邻域半径和最小样本点数,采用聚类算法对所述锚点的轨迹点对应的位置信息进行聚类,得到至少一个聚类簇;
在聚类后所述聚类簇的数量等于1的情况下,则以所述聚类簇的质心位置作为第二预设周期内所述锚点的离线位置。
除此之外,在聚类后所述聚类簇的数量大于1的情况下,可执行以下步骤:
获取每个聚类簇包含的轨迹点的个数;
根据每个聚类簇包含的轨迹点的个数确认异常聚类簇,所述异常聚类簇对应的轨迹点的个数小于预设轨迹点个数阈值;
对所述聚类簇中的异常聚类簇进行提纯操作得到目标聚类簇;
以所述目标聚类簇的质心位置作为所述锚点的离线位置。
具体的,以超市购物支付场景为例,假设第二预设周期为3天,获取3天内至少一个锚点历史用户与扫描枪的交互数据,假设收集的交互数据为500组,在收集到的500组交互数据中添加锚点历史用户的位置信息,具体的添加方法可参考上述描述内容所述的方法,在此不再赘述。假设成功添加用户位置信息的有效交互数据为450组,从添加了用户位置信息的交互数据中提取所述至少一个锚点历史用户的关联位置信息作为扫描枪的轨迹点对应的位置信息;根据预设的邻域半径200m和最小样本点数10,采用密度聚类算法DBSCAN对扫描枪的轨迹点对应的位置信息进行聚类;判断聚类后聚类簇的个数;若聚类簇的个数等于1,则可确定所述扫描枪的实际位置较稳定,可直接以其聚类簇的质心位置作为扫描枪的离线位置;若聚类簇的个数大于1,则获取每个聚类簇包含的轨迹点个数,将包含轨迹点个数最多的聚类簇确定为目标聚类簇,并将所述目标聚类簇的质心位置作为扫描枪的离线位置。
本说明书提供的一个实施例中,以所述目标聚类簇的质心位置作为锚点的离线位置之后,还需计算所述离线位置的置信度,具体可通过以下步骤实现:
计算第三预设周期内所述锚点的离线位置;
计算所述第二预设周期内所述锚点的离线位置与第三预设周期内所述锚点的离线位置间的偏移量;
基于所述偏移量计算第二预设周期内所述锚点的离线位置的置信度;
在所述锚点的离线位置的置信度大于第一预设置信度阈值的情况下,将所述锚点的离线位置信息进行存储。
具体的,沿用上例,第二预设周期为3天,将目标聚类簇的质心位置作为第二预设周期内扫描枪的离线位置后,假设所述第三预设周期为2天,用相同的方法确定第三预设周期内扫描枪的离线位置,并计算以3天为周期的扫描枪的离线位置与以2天为周期的扫描枪的离线位置间的偏移量offset,基于所述偏移量计算以3天为周期的扫描枪的离线位置的置信度,具体计算公式如式(2):
其中,Poffline为第二预设周期内锚点离线位置的置信度,Z为正则化参数,实际应用中Z的值可根据实际需要进行设置,在此不做限制。
假设偏移量为100m,正则化参数Z为200m,则根据式(2)计算可得Poffline的值为0.25,假设第一预设置信度阈值为0.1,则第二预设周期内锚点离线位置的置信度Poffline大于0.1,将所述锚点的离线位置信息进行存储。
本说明书提供的一个实施例中,仅以第二预设周期为3天、第三预设周期为2天为例,第一预设置信度阈值为0.1为例进行说明,实际应用中,以上参数及本说明书实施例涉及到的其他举例参数均可跟据实际需要进行设置,在此不做限制。
步骤110:基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
本说明书提供的一个实施例中,所述目标用户的当前位置推断方法如表3所示。
表3
根据表3所示的位置推断方法,先判断锚点离线位置和在线位置满足的条件,根据满足条件所属类型对应的位置推断方法对目标用户进行位置推断,具体可通过以下步骤实现:
根据所述锚点的标识ID获取预存的所述锚点更新时间最短的离线位置以及所述锚点更新时间最短的离线位置的更新时间;
判断所述锚点更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则将所述锚点更新时间最短的离线位置作为所述目标用户的当前位置。
具体的,假设预设时长阈值为5天,锚点更新时间最短的离线位置的更新时间为2天前,则所述锚点更新时间最短的离线位置的更新时间在预设时长阈值范围内,判断其满足T1的条件,则将锚点离线位置作为目标用户的当前位置信息。
除此之外,若所述锚点更新时间最短的离线位置的更新时间不在预设时长阈值范围内,则执行以下操作:
根据所述锚点的标识ID获取第一预设周期内所述锚点的轨迹点个数;
判断在第一预设周期内所述锚点的轨迹点个数是否大于预设阈值;
若是,则将所述锚点的在线位置作为所述目标用户的当前位置。
具体的,若所述锚点的更新时间最短的离线位置的更新时间为6天前,不在预设时长阈值5天的范围内,则判断锚点的在线位置信息是否满足条件。假设预设阈值为5个,第一预设周期为3分钟,若3分钟内获取锚点的轨迹点个数为6个,则在第一预设周期内所述锚点的轨迹点个数大于预设阈值,判断其满足T2的条件,则将第一预设周期内所述锚点的在线位置作为目标用户的当前位置信息。
除此之外,若在第一预设周期内所述锚点的轨迹点个数不大于预设阈值,则执行以下操作:
根据所述锚点的标识ID收集生成时间最短的所述锚点历史用户与所述锚点的交互数据;
将所述交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置。
具体的,若第一预设周期3分钟内所述锚点的轨迹点个数为4个,小于预设阈值5个,则判断生成时间最短的交互数据中是否已添加用户的关联位置信息。假设所述生成时间最短的交互数据中已添加用户的关联位置信息,判断其满足T3的条件,则将所述生成时间最短的交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置;若所述生成时间最短的交互数据中未添加用户的关联位置信息,则无法推断所述目标用户的当前位置。
本说明书提供的一个实施例中,推断出所述目标用户的当前位置之后,还需计算当前位置的置信度。
具体的,若锚点的离线位置信息满足TI的条件,则所述目标用户的当前位置的置信度的计算公式如式(3)所示:
Panchor=0.9+0.1*Poffline (3)
其中,Panchor为所述目标用户的当前位置的置信度,Poffline为第二预设周期内锚点离线位置的置信度。
假设Poffline的值为0.25,则根据式(3)计算可得Panchor的值为0.925。
若锚点的离线位置信息满足T2的条件,则所述目标用户的当前位置的置信度的计算公式如式(4)所示:
其中,P
anchor为所述目标用户的当前位置的置信度,
为第一预设周期内锚点的轨迹点个数,E
M为第一预设周期内锚点的轨迹点个数的预设阈值,Z
E为正则化参数。
若锚点的离线位置信息满足T3的条件,则所述目标用户的当前位置的置信度的计算公式如式(5)所示:
其中,Panchor为所述目标用户的当前位置的置信度,Δtlastloc为生成时间最短的所述锚点历史用户与所述锚点的交互数据中所述锚点历史用户的关联位置信息的收集时刻和计算时刻的时间差。
在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
假设第二预设置信度阈值为0.9,则根据式(3)计算的Panchor的值大于所述第二预设置信度阈值,将所述目标用户的当前位置信息返回。
本说明书提供的一个实施例中,无需借助过多的外部装置,也无须借助服务器向用户展示是否允许获取目标用户所在位置的位置信息授权页面,通过获取与用户发生交互的锚点的位置信息即可反向推断目标用户的位置信息,即不再受限于用户是否主动开启定位权限即可获取目标用户的当前位置,降低了服务器获取目标用户位置的难度,同时提升了用户体验。
图2示出了本说明书一实施例的位置推断方法应用于实际场景的流程图,该位置推断方法以对锚点为公交车刷卡机为例进行描述,包括步骤202至步骤216。
步骤202:获取目标用户与公交车刷卡机的交互数据,所述交互数据中携带有所述公交车刷卡机的标识信息。
本说明书提供的一个实施例中,目标用户X通过手机端在公交车刷卡机刷卡后乘车,刷卡完成后由服务器实时获取所述目标用户X与公交车刷卡机的交互数据。由于在刷卡的同时所述目标用户X的手机端未开启定位功能,因此获取的交互数据中不包含所述目标用户X的位置信息。
步骤204:判断所述交互数据中是否包含所述目标用户的位置信息;若否,则执行步骤206;若是,则不做处理即可。
步骤206:提取所述公交车刷卡机的标识信息,根据所述标识信息生成所述公交车刷卡机的标识ID。
本说明书提供的一个实施例中,在所述交互数据中不包含所述目标用户的位置信息的情况下,则需根据公交车刷卡机的位置信息对所述目标用户X的位置信息进行推断,首先从交互数据中提取所述公交车刷卡机的标识信息,再根据所述标识信息生成公交车刷卡机的标识ID。
步骤208:根据所述公交车刷卡机的标识ID收集历史用户与所述公交车刷卡机的交互数据。
步骤210:在所述交互数据中添加历史用户的位置信息。
具体的,所述历史用户与所述公交车刷卡机的交互数据中携带有所述历史用户的标识信息;
具体的,在所述交互数据中添加历史用户的位置信息可以通过以下步骤实现:
确定所述历史用户与公交车刷卡机的交互数据的生成时间;
根据所述历史用户的标识信息获取所述历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述历史用户的关联位置信息。
假设历史用户Y刷卡完成后分别生成交互数据的时间为2019.06.10.19:30:08,服务器收集交互数据后,根据交互数据中携带的历史用户Y的标识信息获取历史用户Y的更新时间最短的目标位置信息并获取所述更新时间最短的目标位置信息的更新时间;假设获取的历史用户Y的更新时间最短的目标位置信息以及更新时间分别为:公交站Z(52.579063,78.6492105)于2019.06.10.19:29:03更新,其中历史用户Y的更新时间最短的目标位置的更新时间与交互数据的生成时间的时间间隔为1分钟,在预设时间阈值5分钟范围内,因此将目标位置信息公交站Z(52.579063,78.6492105)作为历史用户Y的关联位置信息并添加到交互数据中。
步骤212:从所述交互数据中提取公交车刷卡机的位置信息,并根据所述位置信息计算所述公交车刷卡机的在线位置。
具体的,所述从所述交互数据中提取公交车刷卡机的位置信息,并根据所述位置信息计算所述公交车刷卡机的在线位置可通过以下步骤实现:
根据公交车刷卡机的标识ID收集2分钟内至少一个历史用户与公交车刷卡机的交互数据;
从所述交互数据中提取所述至少一个历史用户的关联位置信息作为公交车刷卡机的轨迹点对应的位置信息;
计算所述公交车刷卡机的各轨迹点对应的位置信息的方差值;
若所述方差值小于预设方差阈值,则根据所述公交车刷卡机的各轨迹点对应的位置信息计算所述公交车刷卡机的在线位置。
本说明书提供的一个实施例中,假设2分钟内有2位历史用户完成刷卡,即2分钟内服务器可收集2组交互数据,且2组交互数据中包含历史用户的目标位置信息分别为(52.579063,78.6492105)和(52.579063,78.6492105)。
从上述2组交互数据中提取历史用户的关联位置信息作为公交车刷卡机的两个轨迹点对应的位置信息,即两个轨迹点的位置信息分别为(52.579063,78.6492105),计算两个轨迹点位置信息的方差值;根据方差公式计算可得公交车刷卡机两个轨迹点位置信息的方差为0,小于预设方差阈值0.1,则可根据公交车刷卡机的两个轨迹点对应的位置信息计算公交车刷卡机的在线位置。
具体的,若获取的公交车刷卡机的两个轨迹点位置信息不一致,则可根据式(1)计算公交车刷卡机的在线位置。
步骤214:根据公交车刷卡机的标识ID获取预存的所述公交车刷卡机的离线位置。
本说明书提供的一个实施例中,所述公交车刷卡机的离线位置通过以下方式进行计算:
根据所述公交车刷卡机的标识ID收集1天内至少一个历史用户与所述公交车刷卡机的交互数据;
假设收集的交互数据为20组,在收集到的20组交互数据中添加历史用户的位置信息。假设成功添加历史用户位置信息的有效交互数据为18组,从添加了历史用户位置信息的交互数据中提取所述至少一个历史用户的关联位置信息作为公交车刷卡机的轨迹点对应的位置信息;根据预设的邻域半径1km和最小样本点数7,采用密度聚类算法DBSCAN对公交车刷卡机的轨迹点对应的位置信息进行聚类;假设聚类簇的个数等于1,则可确定所述公交车刷卡机的实际位置较稳定,可直接以其聚类簇的质心位置作为公交车刷卡机的离线位置。
聚类簇的示意图如图3所示,其中,黑色点和灰色点组成样本集,黑色的点为核心点,对应的编号分别为p1、p2、p3和p4,灰色的点为除核心点外的其他样本点,领域半径为1km,邻域中最小样本点数为7,采用密度聚类算法进行聚类即可得到如图3所示的聚类簇,其中,p1到p2直接密度可达,p2到p3直接密度可达,p3到p4直接密度可达,因此p1从p4密度可达,且p1到p4密度相连,而密度聚类算法DBSCAN的目的是找到密度相连对象的最大集合,因此将样本集聚类后生成的聚类簇如图3所示,且聚类簇的个数等于1。
本说明书提供的一个实施例中,聚类后聚类簇的个数等于1,因此直接将聚类簇的质心位置q的位置作为公交车刷卡机的离线位置即可。以所述聚类簇的质心位置作为公交车刷卡机的离线位置之后,还需计算所述离线位置的置信度,具体可通过以下步骤实现:
计算2天内所述公交车刷卡机的离线位置;
计算1天内所述公交车刷卡机的离线位置与2天内所述公交车刷卡机的离线位置间的偏移量;
基于所述偏移量计算1天内所述公交车刷卡机的离线位置的置信度;
在所述公交车刷卡机的离线位置的置信度大于第三预设置信度阈值的情况下,将所述公交车刷卡机的离线位置信息进行存储。
具体的,将聚类簇的质心位置作为1天内公交车刷卡机的离线位置后,用相同的方法确定2天内公交车刷卡机的离线位置,并计算以1天为周期的公交车刷卡机的离线位置与以2天为周期的公交车刷卡机的离线位置间的偏移量offset,基于所述偏移量计算以1天为周期的公交车刷卡机的离线位置的置信度,具体计算公式如式(2)。
若所述以1天为周期的公交车书卡机的离线位置的置信度大于第三预设置信度阈值,将所述公交车刷卡机的离线位置信息进行存储。
本说明书提供的一个实施例中,仅以图3所示的聚类簇进行示意性说明,实际应用中,最小样本点数、邻域半径、核心点以及聚类簇的质心位置均根据实际情况进行确定,在此不做限制。
步骤216:基于所述公交车刷卡机的在线位置和离线位置推断所述目标用户的当前位置。
判断公交车刷卡机离线位置和在线位置满足的条件,根据满足条件所属类型对应的位置推断方法对目标用户进行位置推断。
具体的,根据所述公交车刷卡机的标识ID获取预存的所述公交车刷卡机更新时间最短的离线位置以及所述公交车刷卡机更新时间最短的离线位置的更新时间;
判断所述公交车刷卡机更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则将所述公交车刷卡机更新时间最短的离线位置作为所述目标用户的当前位置。
假设预设时长阈值为5天,公交车刷卡机更新时间最短的离线位置的更新时间为2天前,则所述公交车刷卡机更新时间最短的离线位置的更新时间在预设时长阈值范围内,则将公交车刷卡机离线位置作为目标用户的当前位置信息。
本说明书提供的一个实施例中,推断出所述目标用户的当前位置之后,还需计算当前位置的置信度。
具体的,若公交车刷卡机的离线位置信息满足TI的条件,则所述目标用户的当前位置的置信度的计算公式如式(3)所示。
在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
本说明书提供的一个实施例中,通过获取用户与公交车刷卡机的交互数据,并根据交互数据中携带的相关信息确定公交车刷卡机的在线和离线位置,进而通过公交车刷卡机的在线和离线位置以及预设位置推断规则推断目标用户的当前位置,无需借助过多的外部装置,且无需用户开启定位权限即可获取目标用户的当前位置,降低了服务器获取目标用户位置的难度,同时提升了用户体验。
与上述方法实施例相对应,本说明书还提供了位置推断装置实施例,图4示出了本说明书一个实施例的位置推断装置的结构示意图。如图4所示,该装置包括:
交互数据获取模块402,被配置为获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息;
标识ID生成模块404,被配置为在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID;
在线位置计算模块406,被配置为根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置;
离线位置获取模块408,被配置为根据所述锚点的标识ID获取预存的所述锚点的离线位置;
当前位置推断模块410,被配置为基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
可选地,所述在线位置计算模块包括:
第一交互数据获取子模块,被配置为根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据;
位置信息确定子模块,被配置为从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
方差计算子模块,被配置为计算所述锚点的各轨迹点对应的位置信息的方差值;
在线位置计算子模块,被配置为若所述方差值小于预设方差阈值,则根据所述锚点的各轨迹点对应的位置信息计算所述锚点的在线位置。
可选地,所述锚点历史用户与所述锚点的交互数据中携带有所述锚点历史用户的标识信息;
所述在线位置计算模块还包括:
生成时间确定子模块,被配置为确定所述锚点历史用户与所述锚点的交互数据的生成时间;
信息获取子模块,被配置为根据所述锚点历史用户的标识信息获取所述锚点历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
关联位置信息确定子模块,被配置为若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述锚点历史用户的关联位置信息。
可选地,所述当前位置推断模块包括:
离线位置信息获取子模块,被配置为根据所述锚点的标识ID获取预存的所述锚点更新时间最短的离线位置以及所述锚点更新时间最短的离线位置的更新时间;
第一判断子模块,被配置为判断所述锚点更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则运行第一当前位置确定子模块;
所述第一当前位置确定子模块,被配置为将所述锚点更新时间最短的离线位置作为所述目标用户的当前位置。
可选地,若所述第一判断子模块的运行结果为否,则运行以下子模块:
轨迹点个数获取子模块,被配置为根据所述锚点的标识ID获取第一预设周期内所述锚点的轨迹点个数;
第二判断子模块,被配置为判断在第一预设周期内所述锚点的轨迹点个数是否大于预设阈值;
若是,则运行第二当前位置确定子模块;
所述第二当前位置确定子模块,被配置为将所述锚点的在线位置作为所述目标用户的当前位置。
可选地,若所述第二判断子模块的运行结果为否,则运行以下子步骤:
交互数据收集子模块,被配置为根据所述锚点的标识ID收集生成时间最短的所述锚点历史用户与所述锚点的交互数据;
第三当前位置确定子模块,被配置为将所述交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置。
可选地,所述位置推断装置还包括:离线位置计算模块,被配置为:
根据所述锚点的标识ID收集第二预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的的位置信息;
根据预设的邻域半径和最小样本点数,采用聚类算法对所述锚点的轨迹点对应的位置信息进行聚类,得到至少一个聚类簇;
在聚类后所述聚类簇的数量等于1的情况下,则以所述聚类簇的质心位置作为第二预设周期内所述锚点的离线位置。
可选地,在聚类后所述聚类簇的数量大于1的情况下,所述离线位置计算模块还被配置为:
获取每个聚类簇包含的轨迹点的个数;
根据每个聚类簇包含的轨迹点的个数确认异常聚类簇,所述异常聚类簇对应的轨迹点的个数小于预设轨迹点个数阈值;
对所述聚类簇中的异常聚类簇进行提纯操作得到目标聚类簇;
以所述目标聚类簇的质心位置作为所述锚点的离线位置。
可选地,所述离线位置计算模块还被配置为:
计算第三预设周期内所述锚点的离线位置;
计算所述第二预设周期内所述锚点的离线位置与第三预设周期内所述锚点的离线位置间的偏移量;
基于所述偏移量计算第二预设周期内所述锚点的离线位置的置信度;
在所述锚点的离线位置的置信度大于第一预设置信度阈值的情况下,将所述锚点的离线位置信息进行存储。
可选地,所述位置推断装置还包括:
置信度计算模块,被配置为计算所述目标用户的当前位置的置信度;
信息返回模块,被配置为在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
本说明书提供的一个实施例中,无需借助过多的外部装置,也无须借助服务器向用户展示是否允许获取目标用户所在位置的位置信息授权页面,通过获取与用户发生交互的锚点的位置信息即可反向推断目标用户的位置信息,即不再受限于用户是否主动开启定位权限即可获取目标用户的当前位置,降低了服务器获取目标用户位置的难度,同时提升了用户体验。
上述为本实施例的一种位置推断装置的示意性方案。需要说明的是,该装置的技术方案与上述的位置推断方法的技术方案属于同一构思,电子设备的技术方案未详细描述的细节内容,均可以参见上述位置推断方法的技术方案的描述。
图5示出了根据本说明书一实施例的电子设备500的结构框图。该电子设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
电子设备500还包括接入设备540,接入设备540使得电子设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,电子设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的电子设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
电子设备500可以是任何类型的静止或移动电子设备,包括移动计算机或移动电子设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的电子设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止电子设备。电子设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令:
获取目标用户与锚点的交互数据,所述交互数据中携带有所述锚点的标识信息;
在所述交互数据中不包含所述目标用户的位置信息的情况下,提取所述锚点的标识信息,根据所述标识信息生成所述锚点的标识ID;
根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置;
根据所述锚点的标识ID获取预存的所述锚点的离线位置;
基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置。
可选地,所述根据所述锚点的标识ID收集锚点历史用户与所述锚点的交互数据,从所述交互数据中提取所述锚点的位置信息,并根据所述位置信息计算所述锚点的在线位置包括:
根据所述锚点的标识ID收集第一预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息;
计算所述锚点的各轨迹点对应的位置信息的方差值;
若所述方差值小于预设方差阈值,则根据所述锚点的各轨迹点对应的位置信息计算所述锚点的在线位置。
可选地,所述锚点历史用户与所述锚点的交互数据中携带有所述至少一个锚点历史用户的标识信息;
所述根据所述锚点的标识ID收集第一预设周期内锚点历史用户与所述锚点的交互数据之后,从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的位置信息之前,还包括:
确定所述锚点历史用户与所述锚点的交互数据的生成时间;
根据所述锚点历史用户的标识信息获取所述锚点历史用户的更新时间最短的目标位置信息以及所述更新时间最短的目标位置信息的更新时间;
若所述更新时间最短的目标位置信息的更新时间与所述交互数据的生成时间间隔在预设时间阈值范围内,则将所述目标位置信息作为所述锚点历史用户的关联位置信息。
可选地,所述基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置包括:
根据所述锚点的标识ID获取预存的所述锚点更新时间最短的离线位置以及所述锚点更新时间最短的离线位置的更新时间;
判断所述锚点更新时间最短的离线位置的更新时间是否在预设时长阈值范围内;
若是,则将所述锚点更新时间最短的离线位置作为所述目标用户的当前位置。
可选地,若所述锚点更新时间最短的离线位置的更新时间不在预设时长阈值范围内,则执行以下操作:
根据所述锚点的标识ID获取第一预设周期内所述锚点的轨迹点个数;
判断在第一预设周期内所述锚点的轨迹点个数是否大于预设阈值;
若是,则将所述锚点的在线位置作为所述目标用户的当前位置。
可选地,若在第一预设周期内所述锚点的轨迹点个数不大于预设阈值,则执行以下操作:
根据所述锚点的标识ID收集生成时间最短的所述锚点历史用户与所述锚点的交互数据;
将所述交互数据中所述锚点历史用户的关联位置信息作为所述目标用户的当前位置。
可选地,所述锚点的离线位置通过以下方式进行计算:
根据所述锚点的标识ID收集第二预设周期内至少一个锚点历史用户与所述锚点的交互数据;
从所述交互数据中提取所述至少一个锚点历史用户的关联位置信息作为所述锚点的轨迹点对应的的位置信息;
根据预设的邻域半径和最小样本点数,采用聚类算法对所述锚点的轨迹点对应的位置信息进行聚类,得到至少一个聚类簇;
在聚类后所述聚类簇的数量等于1的情况下,则以所述聚类簇的质心位置作为第二预设周期内所述锚点的离线位置。
可选地,在聚类后所述聚类簇的数量大于1的情况下,所述方法还包括:
获取每个聚类簇包含的轨迹点的个数;
根据每个聚类簇包含的轨迹点的个数确认异常聚类簇,所述异常聚类簇对应的轨迹点的个数小于预设轨迹点个数阈值;
对所述聚类簇中的异常聚类簇进行提纯操作得到目标聚类簇;
以所述目标聚类簇的质心位置作为所述锚点的离线位置。
可选地,所述以所述目标聚类簇的质心位置作为所述锚点的离线位置之后,还包括:
计算第三预设周期内所述锚点的离线位置;
计算所述第二预设周期内所述锚点的离线位置与第三预设周期内所述锚点的离线位置间的偏移量;
基于所述偏移量计算第二预设周期内所述锚点的离线位置的置信度;
在所述锚点的离线位置的置信度大于第一预设置信度阈值的情况下,将所述锚点的离线位置信息进行存储。
可选地,所述基于所述锚点的在线位置和离线位置推断所述目标用户的当前位置之后,还包括:
计算所述目标用户的当前位置的置信度;
在所述目标用户的当前位置的置信度大于第二预设置信度阈值的情况下,将所述目标用户的当前位置信息返回。
上述为本实施例的一种电子设备的示意性方案。需要说明的是,该电子设备的技术方案与上述的位置推断方法的技术方案属于同一构思,电子设备的技术方案未详细描述的细节内容,均可以参见上述位置推断方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述位置推断方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的位置推断方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述位置推断方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。