首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于查询结果中用户失序分析的微信用户定位方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国人民解放军战略支援部队信息工程大学

摘要:本发明提供了基于查询结果中用户失序分析的微信用户定位算法,针对基于微信通告距离确定目标用户的实际距离范围的不足,通过分析微信“附近的人”列表中的用户失序现象,定义了混杂区间;并通过对查询结果中相邻用户与探针的实际距离的变化范围进行统计分析,基于其中失序现象确定混杂区间的大小;然后,等距调整参考探针与探针之间的距离,使得查询附近用户列表中参考探针和目标用户相邻并发生前后次序变化,以此时参考探针与探针的实际距离为参考,基于得到的混杂区间,确定目标用户与探针的实际距离范围;最后,利用三边测量定位法实现对微信目标用户的高精度定位,且与现有的HNBG算法以及ATBG算法相比,定位精度更高。

主权项:1.基于查询结果中用户失序分析的微信用户定位方法,其特征在于:包括以下步骤:步骤1:确定混杂区间,具体包括以下步骤:步骤1.1:构建虚拟用户:利用智能移动设备位置模拟技术模拟智能移动设备的地理位置,构造虚拟用户A、虚拟用户B和虚拟用户C;设置虚拟用户A的位置并定义虚拟用户A作为虚拟查询者,设置虚拟用户B的位置和虚拟用户C的位置并将其作为被查询者;步骤1.2:定义混杂区间:将利用虚拟用户A在微信“附近的人”附近用户列表中两个失序虚拟用户B和虚拟用户C与虚拟用户A之间的实际距离之差的变化范围称为混杂区间;混杂区间为:|d1-d2|<M;其中,虚拟用户B与虚拟用户A的实际距离为d1,虚拟用户C与虚拟用户A的实际距离为d2,M为|d1-d2|的最大值;步骤1.3:计算混杂区间,具体包括以下步骤:步骤1.3.1:定义虚拟用户A和虚拟用户B的实际距离为d1,保持d1不变;步骤1.3.2:将虚拟用户C与设置在相同位置,定义虚拟用户A和虚拟用户C的实际距离为d2,利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序并记录;步骤1.3.3:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;步骤1.3.4:依据步骤3.3得出的记录值M确定混杂区间为:|d1-d2|<M;步骤2:扫描目标用户可能所处的潜在区域,具体包括以下步骤:步骤2.1:在目标用户可能所处的潜在区域内等距设定查询点;步骤2.2:将探针的位置依次设置为查询点的位置,并利用探针在微信“附近的人”中查询附近用户列表;步骤2.3:重复步骤2.2,直至目标用户出现在附近用户列表中,记录此时探针的位置,并将此时的查询点定义为第一查询点;步骤3:设置参考探针,具体包括以下步骤:步骤3.1:定义参考探针:参考探针是指在定位目标用户的过程中,为了获得目标用户与探针之间的实际距离范围而构建的虚拟用户;步骤3.2:利用智能移动设备位置模拟技术构建位置可变的参考探针;步骤3.3:改变参考探针的位置,使得参考探针与探针的实际距离dpr以xm为单位动态变化,每次参考探针的位置改变后,利用探针在微信“附近的人”中查询附近用户列表,直至探针查询的附近用户列表中参考探针与目标用户相邻;步骤3.4:步骤3.3中,若探针查询的附近用户列表中,目标用户比参考探针的次序靠前,则以y为单位逐渐减小dpr,使得参考探针在查询结果中的次序上升,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;若探针查询的附近用户列表中,目标用户比参考探针的次序靠后,则以y为单位逐渐增大dpr,使得参考探针在查询结果中的次序下降,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;步骤4:确定环状区域,具体包括以下步骤:将步骤3.4中,探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化时,探针与参考探针之间的实际距离记为DR,可得目标用户的位置在以探针位置为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O1内;步骤5:利用三边测量定位法确定目标用户的位置;所述步骤5包括以下步骤:步骤5.1:选择第二查询点位置,第二查询点与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第二查询点位置选择可使用步骤2所述的方法;步骤5.2:重复步骤3和步骤4,得到目标用户的位置在以第二查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O2内;步骤5.3:在以第一查询点位置和第二查询点位置为端点的线段的中垂线上取第三查询点,第三查询点位置与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第三查询点位置选择也可使用步骤2所述的方法;步骤5.4:重复步骤3和步骤4,得到目标用户的位置在以第三查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O3内;步骤5.5:环形区域O1、环形区域O2和环形区域O3的交叉区域的中心位置即为目标用户的定位位置。

全文数据:基于查询结果中用户失序分析的微信用户定位算法技术领域本发明涉及社交网络用户定位领域,尤其涉及基于查询结果中用户失序分析的微信用户定位算法。背景技术现有的微信用户定位算法采用基于通告距离的微信用户定位算法,相比典型的基于空间划分的定位算法以及基于启发式数论的定位算法,基于通告距离的微信用户定位算法能够实现对微信用户更高精度的定位;但通告距离与实际距离之间关系的不确定性使得通告距离难以将目标用户确定在较小的距离段内,造成对目标用户的定位依然存在较大的误差。基于上述缺陷,HOANG等提出了基于改进三边测量定位算法;如图1所示:通过对一款国外的约会软件Grindr的实际测试,HOANG等发现该软件的通告信息中的用户次序与该用户相距查询者的实际距离有关,查询结果中目标用户的前后两个相邻用户与查询者的实际距离,可作为该用户与查询者的实际距离的上下限;基于此特性,通过构造两个位置可控的虚拟用户A和B,并调整虚拟用户A、B与查询者之间的距离,使得探针的查询结果中目标用户位于两个虚拟用户之间且虚拟用户A、B与探针之间的实际距离之差尽可能小;定义目标用户与探针的实际距离为d,虚拟用户A与探针的实际距离为d1,虚拟用户A与探针的实际距离为d2,则d1<d<d2,从而确定目标用户所处的环形区域,然后利用三边测量定位算法即可确定目标用户的位置。基于改进三边测量定位算法确定的目标用户与探针的实际距离范围,远小于基于通告距离确定的目标用户与探针的实际距离范围;但基于改进三边测量定位算法依赖于社交软件的通告信息中的用户次序属性,当社交软件的通告信息中的用户排序满足与查询者的实际距离之间的对应关系,该算法能够实现对目标用户的可靠定位。实际测试发现,微信“附近的人”中,当查询者与被查询者之间的实际距离增大时,被查询者在查询者得到的附近用户列表中的位置存在向下移动的趋势;但随着隐私保护技术的应用与升级,大部分LBSN在通告附近用户时,会对位置信息进行混淆处理,使得查询结果中的用户次序与用户相距查询者的实际距离之间不满足严格对应关系,即微信“附近的人”中的用户前后关系并非严格满足与查询者实际距离的大小对应关系,往往会存在失序现象。假设用户A与查询者的实际距离为d1,用户B与查询者的实际距离为d2,失序现象是指当d1<d2,但微信“附近的人”查询结果中用户B更靠前的现象;或d1>d2,但微信“附近的人”查询结果中用户A更靠前的现象。即易出现以下现象:探针的查询结果中目标用户位于虚拟用户A、B之间,但此时d<d1<d2或d1<d2<d,即该算法确定的环状区域没有包含目标用户的位置;定位目标用户时,三个圆环的交叉区域内并不包含目标用户的位置,或不存在交叉区域。因此该算法无法直接用于微信用户的定位。发明内容本发明的目的在于提供基于查询结果中用户失序分析的微信用户定位算法,能够。为了实现上述目的,本发明采用以下技术方案:基于查询结果中用户失序分析的微信用户定位算法,其特征在于:包括以下步骤:步骤1:确定混杂区间,具体包括以下步骤:步骤1.1:构建虚拟用户:利用智能移动设备位置模拟技术模拟智能移动设备的地理位置,构造虚拟用户A、虚拟用户B和虚拟用户C;设置虚拟用户A的位置并定义虚拟用户A作为虚拟查询者,设置虚拟用户B的位置和虚拟用户C的位置并将其作为被查询者;步骤1.2:定义混杂区间:将利用虚拟用户A在微信“附近的人”附近用户列表中两个失序虚拟用户B和虚拟用户C与虚拟用户A之间的实际距离之差的变化范围称为混杂区间;混杂区间为:|d1-d2|<M;其中,虚拟用户B与虚拟用户A的实际距离为d1,虚拟用户C与虚拟用户A的实际距离为d2,M为|d1-d2|的最大值;步骤1.3:计算混杂区间,具体包括以下步骤:步骤1.3.1:定义虚拟用户A和虚拟用户B的实际距离为d1,保持d1不变;步骤1.3.2:将虚拟用户C与设置在相同位置,定义虚拟用户A和虚拟用户C的实际距离为d2,利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序并记录;步骤1.3.3:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;步骤1.3.4:依据步骤3.3得出的记录值M确定混杂区间为:|d1-d2|<M;步骤2:扫描目标用户可能所处的潜在区域,具体包括以下步骤:步骤2.1:在目标用户可能所处的潜在区域内等距设定查询点;步骤2.2:将探针的位置依次设置为查询点的位置,并利用探针在微信“附近的人”中查询附近用户列表;步骤2.3:重复步骤2.2,直至目标用户出现在附近用户列表中,记录此时探针的位置,并将此时的查询点定义为第一查询点;步骤3:设置参考探针,具体包括以下步骤:步骤3.1:定义参考探针:参考探针是指在定位目标用户的过程中,为了获得目标用户与探针之间的实际距离范围而构建的虚拟用户;步骤3.2:利用智能移动设备位置模拟技术构建位置可变的参考探针;步骤3.3:改变参考探针的位置,使得参考探针与探针的实际距离dpr以xm为单位动态变化,每次参考探针的位置改变后,利用探针在微信“附近的人”中查询附近用户列表,直至探针查询的附近用户列表中参考探针与目标用户相邻;步骤3.4:步骤3.3中,若探针查询的附近用户列表中,目标用户比参考探针的次序靠前,则以y为单位逐渐减小dpr,使得参考探针在查询结果中的次序上升,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;若探针查询的附近用户列表中,目标用户比参考探针的次序靠后,则以y为单位逐渐增大dpr,使得参考探针在查询结果中的次序下降,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;步骤4:确定环状区域,具体包括以下步骤:将步骤3.4中,探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化时,探针与参考探针之间的实际距离记为DR,可得目标用户的位置在以探针位置为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O1内;步骤5:利用三边测量定位法确定目标用户的位置。所述步骤5包括以下步骤:步骤5.1:选择第二查询点位置,第二查询点与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第二查询点位置选择可使用步骤2所述的方法;步骤5.2:重复步骤3和步骤4,得到目标用户的位置在以第二查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O2内;步骤5.3:在以第一查询点位置和第二查询点位置为端点的线段的中垂线上取第三查询点,第三查询点位置与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第三查询点位置选择也可使用步骤3所述的方法;步骤5.4:重复步骤3和步骤4,得到目标用户的位置在以第三查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O3内;步骤5.5:环形区域O1、环形区域O2和环形区域O3的交叉区域的中心位置即为目标用户的定位位置。所述步骤1.3.3还包括以下步骤:步骤1.3.3.1:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;步骤1.3.3.2:通过步骤1.3.3.1一次测量得到的记录值M可能存在误差,为了进一步提高记录值M的精度,本发明采用基于记录值的统计特征确定混杂区间M的大小;多次重复步骤1.3.1、步骤1.3.2和步骤1.3.3.1,得出多个记录值M;然后选取记录值M的累积概率大于90%如95%时对应的记录值M确定混杂区间。还包括步骤6:对不同异常情况做不同处理,具体采用以下处理方法:异常情况1:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,任两环形区域均不相交,采用以下处理方法:异常情况1.1:任两环形区域均不相交且不存在一个环形区域包含其他两个环形区域的情况时,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置;异常情况1.2:任两环形区域均不相交且有一环形区域包含其他两个环形区域时,选择外边环形区域对应的查询点位置中心与其中一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置1;同理,选择外边环形区域对应的查询点位置中心与另一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置2;最终,选择候选定位位置1和候选定位位置2连线的中点作为目标用户的定位位置;异常情况2:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,只有两个环形区域相交时,采用以下处理方法:异常情况2.1:只有两个环形区域相交且另一环形区域包含两个相交的环形区域,则选取相交区域内距离外边环形区域对应的查询点最远的点的位置作为目标用户的定位位置;异常情况2.2:只有两个环形区域相交且另一环形区域不包含两个相交的环形区域,则选取相交区域内距离另一不相交环形区域对应的查询点最近的点的位置作为目标用户的定位位置;异常情况3:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,有两个相交区域时,采用以下处理方法:异常情况3.1:只有两个环形区域相交,且相交区域为两个时,利用最小二乘法分别得到两个相交区域的中心点作为候选定位位置1和候选定位位置2,最终将与另一环形区域的外圆上最短距离最小的候选定位位置作为目标用户的定位位置;异常情况3.2:其中一个环形区域与其他两个环形区域各有一个相交区域时,分别利用最小二乘法计算两相交区域的中心点,取两中心点连线的中点作为目标用户的定位位置;异常情况4:若相交区域大于等于3个,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置。本发明的有益效果:本发明所述的基于查询结果中用户失序分析的微信用户定位算法基于微信通告距离确定目标用户的实际距离范围的不足,通过分析微信“附近的人”列表中的用户失序现象,定义了混杂区间;并通过对查询结果中相邻用户与探针的实际距离的变化范围进行统计分析,基于其中失序现象确定混杂区间的大小;然后,等距调整参考探针与探针之间的距离,使得查询附近用户列表中参考探针和目标用户相邻并发生前后次序变化,以此时参考探针与探针的实际距离为参考,基于得到的混杂区间,确定目标用户与探针的实际距离范围;最后,利用三边测量定位法实现对微信目标用户的高精度定位,且与现有的HNBG算法以及ATBG算法相比,定位精度更高。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为构造虚拟用户确定目标用户实际距离范围示意图;图2为本发明的方法流程图;图3为本发明所述的确定环状区域的示意图;图4为本发明所述的利用三边测量定位法确定目标用户的位置示意图;图5为本发明所述的记录值累积概率分布拟合曲线的示意图;图6为本发明所述算法与ATBG定位算法、HNBG定位算法定位误差分布对比示意图。具体实施方式下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图2所示:本发明所述的基于查询结果中用户失序分析的微信用户定位算法,其特征在于:包括以下步骤:步骤1:确定混杂区间,具体包括以下步骤:步骤1.1:构建虚拟用户,具体采用以下方法:利用智能移动设备位置模拟技术模拟智能移动设备的地理位置,构造虚拟用户A、虚拟用户B和虚拟用户C;设置虚拟用户A的位置并定义虚拟用户A作为虚拟查询者,设置虚拟用户B的位置和虚拟用户C的位置并将其作为被查询者;其中,利用智能移动设备位置模拟技术构造虚拟用户属于LBSNLocation-basedSocialNetwork,基于位置的社会网络领域的现有成熟技术,这里不再赘述;步骤1.2:定义混杂区间,具体采用以下方法:实际测试发现,微信“附近的人”中,当查询者与被查询者之间的实际距离增大时,被查询者在查询者得到的附近用户列表中的位置存在向下移动的趋势;但为了保护用户隐私,微信“附近的人”中的用户前后关系并非严格满足与查询者实际距离的对应关系,往往会存在失序现象;将利用虚拟用户A在微信“附近的人”附近用户列表中两个失序虚拟用户B和虚拟用户C与虚拟用户A之间的实际距离之差的变化范围称为混杂区间;混杂区间为:|d1-d2|<M;其中,虚拟用户B与虚拟用户A的实际距离为d1,虚拟用户C与虚拟用户A的实际距离为d2,M为|d1-d2|的最大值;步骤1.3:计算混杂区间,具体包括以下步骤:根据步骤1.2中混杂区间的定义可知:混杂区间过大,会导致对目标用户进行三边测量定位时,得到的交叉区域过大,从而造成对目标用户定位误差的增大;混杂区间过小,会导致对目标用户进行三边测量定位时,所确定的交叉区域没有覆盖目标用户的位置,使得在错误的交叉区域内得到目标用户的定位结果,从而造成对目标用户定位误差的增大;因此,有必要确定混杂区间的大小。要确定混杂区间大小,需要获取微信“附近的人”的大量实际通告数据,即当两个用户在查询者的附近用户列表中前后次序变化时,其与查询者的实际距离大小之间的关系;而利用智能移动设备在地理空间的移动来获取通告数据费时费力,且测试结果易受设备定位误差的影响,因此,本发明通过构建测试环境,利用智能移动设备位置模拟技术构造虚拟用户,实现通告数据的获取,而无须进行设备在实际地理位置的频繁移动,提高了通告数据获取的便捷性、可操作性和可靠性,具体采用以下方法:步骤1.3.1:定义虚拟用户A和虚拟用户B的实际距离为d1,保持d1不变;步骤1.3.2:将虚拟用户C与设置在相同位置,定义虚拟用户A和虚拟用户C的实际距离为d2,利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序并记录;步骤1.3.3:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;通过上述方法一次测量得到的记录值M可能存在误差,为了进一步提高记录值M的精度,本发明采用基于记录值的统计特征确定混杂区间M的大小;多次重复上述步骤1.3.1、步骤1.3.2和步骤1.3.3,得出多个记录值M;若采用记录值M中的最大值作为混杂区间,则会导致混杂区间过大,从而影响目标用户的定位精度;本发明采用基于记录值的累计概率来确定混杂区间大小请解释累计概率,选取记录值M的累积概率大于90%如95%时对应的记录值M确定混杂区间;步骤1.3.4:依据步骤3.3得出的记录值M确定混杂区间为:|d1-d2|<M;步骤2:扫描目标用户可能所处的潜在区域,具体包括以下步骤:潜在区域为目标用于可能所处的区域,目标用户可能所处的区域可由与目标用户有关的其他社会信息如用户注册的所在地区等推断得到,可以是城市级区域或街道级区域;步骤2.1:在目标用户可能所处的潜在区域内等距设定查询点;步骤2.2:将探针查询者的位置依次设置为查询点的位置,并利用探针在微信“附近的人”中查询附近用户列表;步骤2.3:重复步骤2.2,直至目标用户出现在探针附近用户列表中,记录此时探针的位置,并将此时的查询点定义为第一查询点;步骤3:设置参考探针,具体包括以下步骤:步骤3.1:定义参考探针:参考探针是指在定位目标用户的过程中,为了获得目标用户与探针之间的实际距离范围而构建的虚拟用户;需要说明的是:和探针一样,参考探针是合法账户,能够正常使用微信“附近的人”服务,只是在定位目标用户的过程中与探针扮演的角色不同;步骤3.2:利用智能移动设备位置模拟技术构建位置可变的参考探针;步骤3.3:改变参考探针的位置,使得参考探针与探针的实际距离dpr以xm为单位动态变化,每次参考探针的位置改变后,利用探针在微信“附近的人”中查询附近用户列表,直至探针查询的附近用户列表中参考探针与目标用户相邻;步骤3.4:步骤3.3中,若探针查询的附近用户列表中,目标用户比参考探针的次序靠前,则以y为单位逐渐减小dpr,使得参考探针在查询结果中的次序上升,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;若探针查询的附近用户列表中,目标用户比参考探针的次序靠后,则以y为单位逐渐增大dpr,使得参考探针在查询结果中的次序下降,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;步骤4:确定环状区域,具体包括以下步骤:如图3所示:将步骤3.4中,探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化时,探针与参考探针之间的实际距离记为DR,可得目标用户的位置在以探针位置为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O1内;步骤5:利用三边测量定位法确定目标用户的位置,具体采用以下方法:在选取查询点对目标用户所处的环状区域进行缩减时,查询点的位置可能会对定位结果产生影响;例如:当三个查询点分布在一条直线上时,会导致以三个查询点为圆心确定的三个圆环相交于多个不同的区域,此时目标用户的定位结果难以确定;又例如:当三个查询点相距较近时,多个相交区域的分布可能较远,导致最终的定位结果与目标用户的实际位置相距较远;如图4所示:为了避免上述情况的发生,本发明采用以下方法选择查询点的位置:步骤5.1:选择第二查询点位置,第二查询点与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第二查询点位置选择可使用步骤2所述的方法;步骤5.2:重复步骤3和步骤4,得到目标用户的位置在以第二查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O2内;步骤5.3:在以第一查询点位置和第二查询点位置为端点的线段的中垂线上取第三查询点,第三查询点位置与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第三查询点位置选择也可使用步骤3所述的方法;步骤5.4:重复步骤3和步骤4,得到目标用户的位置在以第三查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O3内;步骤5.5:环形区域O1、环形区域O2和环形区域O3的交叉区域的中心位置即为目标用户的定位位置。步骤6:对不同异常情况做不同处理,具体采用以下处理方法:异常情况1:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,任两环形区域均不相交,采用以下处理方法:异常情况1.1:任两环形区域均不相交且不存在一个环形区域包含其他两个环形区域的情况时,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置;异常情况1.2:任两环形区域均不相交且有一环形区域包含其他两个环形区域时,选择外边环形区域对应的查询点位置中心与其中一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置1;同理,选择外边环形区域对应的查询点位置中心与另一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置2;最终,选择候选定位位置1和候选定位位置2连线的中点作为目标用户的定位位置;为了便于本领域技术人员进一步理解本发明的技术方案,以环形区域O1包含环形区域O2和环形区域O3为例:选取第一查询点位置与第二查询点位置所在的直线与环形区域O2的外圆的两个交点中,与第一查询点位置距离较远的交点作为候选定位位置1;同理,选取第一查询点位置与第三查询点位置所在的直线与环形区域O3的外圆的两个交点中,与第一查询点位置距离较远的交点作为候选定位位置2;最终,选择候选定位位置1和候选定位位置2连线的中点作为目标用户的定位位置;需要说明的是,上述内容并不限定环形区域O1包含环形区域O2和环形区域O3,任一环形区域包含其他两个环形区域均可按照上述方法确定目标用户的定位位置;异常情况2:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,只有两个环形区域相交时,采用以下处理方法:异常情况2.1:只有两个环形区域相交且另一环形区域包含两个相交的环形区域,则选取相交区域内距离外边环形区域对应的查询点最远的点的位置作为目标用户的定位位置;异常情况2.2:只有两个环形区域相交且另一环形区域不包含两个相交的环形区域,则选取相交区域内距离另一不相交环形区域对应的查询点最近的点的位置作为目标用户的定位位置;异常情况3:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,有两个相交区域时,采用以下处理方法:异常情况3.1:只有两个环形区域相交,且相交区域为两个时,利用最小二乘法分别得到两个相交区域的中心点作为候选定位位置1和候选定位位置2,最终将与另一环形区域的外圆上最短距离最小的候选定位位置作为目标用户的定位位置;异常情况3.2:其中一个环形区域与其他两个环形区域各有一个相交区域时,分别利用最小二乘法计算两相交区域的中心点,取两中心点连线的中点作为目标用户的定位位置;异常情况4:若相交区域大于等于3个,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置。实施例:为了本领域技术人员进一步理解本发明的技术方案,下面将对步骤1中所述的确定混杂区间以以下实施例做进一步解释:利用智能移动设备位置模拟技术模拟智能移动设备的地理位置,构造虚拟用户A、虚拟用户B和虚拟用户C;设置虚拟用户A的位置并定义虚拟用户A作为虚拟查询者,设置虚拟用户B的位置和虚拟用户C的位置并将其作为被查询者;首先,将虚拟用户B和虚拟用户C设置为相同的位置,将此时虚拟用户B与虚拟用户A的实际距离记为db,将此时虚拟用户C与虚拟用户A的实际距离记为dc,虚拟用户A利用微信“附近的人”查询附近用户列表,并记录附近用户列表中虚拟用户B和虚拟用户C的前后次序;然后,保持虚拟用户B的位置不变,调整虚拟用户C的位置,使得虚拟用户C和虚拟用户A的实际距离dc以5m为单位逐渐增大,记录附近用户列表中虚拟用户B、虚拟用户C的前后次序变化;若dc在增大过程中,连续10次查询结果列表中虚拟用户B和虚拟用户C的前后次序均不发生变化,则修改虚拟用户C的位置使得db=dc,并以5m为单位逐渐减少dc,直到连续10次查询结果列表中虚拟用户B和虚拟用户C的前后次序均不发生变化;上述过程中,记录该过程中在不同dc下,用户A得到的查询结果列表中用户B、C的前后次序变化。为了验证使用微信的“附近的人”功能得到的附近用户列表是否有序,本章进行了微信“附近的人”查询附近用户列表相对次序测试:因微信的通告距离以100m为单位,为了分析实际距离大小对混杂区间的影响,共进行10轮测试,每轮测试中将虚拟用户B、虚拟用户C与虚拟用户A的初始距离分别设为50m、150m、250m…950m。每轮测试得到的通告数据的个数以及记录值如表3所示不包含连续10次用户虚拟用户B和虚拟用户C的次序不发生变化的情况。表1微信“附近的人”用户相对次序测试结果表1中通告距离个数是指dc变化包括增大和减小过程中记录的dc值的个数,记录值一栏中斜线左、右两侧的数值分别表示在dc增大和减小过程中得到的记录值;如表1中的第一行是指当虚拟用户B与虚拟用户A的初始距离db=50m时,在dc增大过程中得到的记录值为30m,在dc减小过程中得到的记录值为25m,即在本轮测试中,当dc-db>30m时,虚拟用户A利用微信“附近的人”查询附近用户列表中虚拟用户B在虚拟用户C前面且保持不变;同理当0<db-dc<25m时,虚拟用户A利用微信“附近的人”查询附近用户列表中虚拟用户C在虚拟用户B前面且保持不变。因此,由表1可知,虚拟用户B与虚拟用户A的初始距离db的增大对虚拟用户A利用微信“附近的人”查询附近用户列表中虚拟用户B与虚拟用户C的相对次序影响不大;测试过程中得到的最大记录值为35m,且大多记录值小于等于25m,即当虚拟用户B和虚拟用户C与虚拟用户A的实际距离之差大于25m时,虚拟用户A利用微信“附近的人”查询附近用户列表中虚拟用户B与虚拟用户C出现失序的可能性较小。为了获得足够数量的记录值,从而得到更合理的混杂区间,采用本实施例步骤1中的方式再次进行了4组测试,各组测试的数据设置如表2所示:表2测试条件设置基于上述条件设置进行测试,可得到80个记录值,加上表1中得到的20个记录值,共得到100个记录值;利用多项式函数拟合基于记录值的概率分布,得到如图5所示的记录值累积概率分布拟合曲线;在判定系数R2为0.9986的条件下,拟合得到的记录值x与累积概率y之间的多项式关系如下:y=2.554×10-7×x5-2.10886×10-5×x4+5.160256×10-4×x3-2.6657925×10-3×x2+1.07194639×10-2×x-1.2762238×10-3;其中,令y=0.95,求对应的x为最终确定的记录值M,得到的记录值M=26.4m;即混杂区间为|d1-d2|<26.4m。下面将以本发明所述的基于查询结果中用户失序分析的微信用户定位算法与现有的HNBG算法以及ATBG算法的定位误差作对比:各算法的定位误差对比结果如表5所示:ATBG算法HNBG算法本发明算法最小误差m23.815.89.5平均误差m89.563.149.6中值误差m89.463.351.3表3本发明算法与ATBG、HNBG算法定位误差对比由表3可知,本发明所述的基于查询结果中用户失序分析的微信用户定位算法针对微信用户的最小误差、平均误差和中值误差均明显优于现有的HNBG算法以及ATBG算法;本发明所述的基于查询结果中用户失序分析的微信用户定位算法的最高精度达到9.5m,高于HNBG算法的15.8m和ATBG算法的23.8m;平均精度为49.6m,高于HNBG算法的63.1m和ATBG算法的89.5m;中值误差为51.3m,高于HNBG算法的63.3m和ATBG算法的89.4m。由上图可知,本发明所述的基于查询结果中用户失序分析的微信用户定位算法针对微信用户的定位结果中,定位误差小于40m的概率达到40%,高于HNBG算法的20%和ATBG算法的16%;定位误差小于60m的概率达到64%,高于HNBG算法的42%和ATBG算法的26%。进一步的,导致ATBG定位算法的定位误差较大的原因主要如下:ATBG定位算法将目标用户前后相邻的两个参考探针与探针的实际距离,分别作为目标用户与探针实际距离的上下限;而根据本发明所述的基于查询结果中用户失序分析的微信用户定位算法进行的微信“附近的人”查询结果中用户失序现象测试结果可知,由于微信在向查询者通告附近用户信息时为了保护用户隐私会引入噪声,使得查询附近用户列表中会出现用户失序现象;而ATBG定位算法利用查询结果中用户间相对次序关系确定用户与查询者的实际距离大小关系,容易造成误判,从而导致确定的环状区域没有覆盖到目标用户的位置,增大定位误差。进一步的,MiReG算法定位误差的主要原因有:由于获取的通告数据有限,导致确定的混杂区间大小与实际情况下引起失序的区间范围有偏差;在确定目标用户所处的环状区域时,参考探针与目标用户初次相邻时若为失序状态,则会导致环状区域无法覆盖目标用户的位置,引起定位误差;此外,三边测量定位目标用户时也会引起一定的定位误差。综上,本发明所述的基于查询结果中用户失序分析的微信用户定位算法能实现对微信目标用户的高精度定位,且与现有的HNBG算法以及ATBG算法相比,定位精度更高。本发明所述的基于查询结果中用户失序分析的微信用户定位算法基于微信通告距离确定目标用户的实际距离范围的不足,通过分析微信“附近的人”列表中的用户失序现象,定义了混杂区间;并通过对查询结果中相邻用户与探针的实际距离的变化范围进行统计分析,基于其中失序现象确定混杂区间的大小;然后,等距调整参考探针与探针之间的距离,使得查询附近用户列表中参考探针和目标用户相邻并发生前后次序变化,以此时参考探针与探针的实际距离为参考,基于得到的混杂区间,确定目标用户与探针的实际距离范围;最后,利用三边测量定位法实现对微信目标用户的高精度定位,且与现有的HNBG算法以及ATBG算法相比,定位精度更高。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

权利要求:1.基于查询结果中用户失序分析的微信用户定位算法,其特征在于:包括以下步骤:步骤1:确定混杂区间,具体包括以下步骤:步骤1.1:构建虚拟用户:利用智能移动设备位置模拟技术模拟智能移动设备的地理位置,构造虚拟用户A、虚拟用户B和虚拟用户C;设置虚拟用户A的位置并定义虚拟用户A作为虚拟查询者,设置虚拟用户B的位置和虚拟用户C的位置并将其作为被查询者;步骤1.2:定义混杂区间:将利用虚拟用户A在微信“附近的人”附近用户列表中两个失序虚拟用户B和虚拟用户C与虚拟用户A之间的实际距离之差的变化范围称为混杂区间;混杂区间为:|d1-d2|<M;其中,虚拟用户B与虚拟用户A的实际距离为d1,虚拟用户C与虚拟用户A的实际距离为d2,M为|d1-d2|的最大值;步骤1.3:计算混杂区间,具体包括以下步骤:步骤1.3.1:定义虚拟用户A和虚拟用户B的实际距离为d1,保持d1不变;步骤1.3.2:将虚拟用户C与设置在相同位置,定义虚拟用户A和虚拟用户C的实际距离为d2,利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序并记录;步骤1.3.3:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;步骤1.3.4:依据步骤3.3得出的记录值M确定混杂区间为:|d1-d2|<M;步骤2:扫描目标用户可能所处的潜在区域,具体包括以下步骤:步骤2.1:在目标用户可能所处的潜在区域内等距设定查询点;步骤2.2:将探针的位置依次设置为查询点的位置,并利用探针在微信“附近的人”中查询附近用户列表;步骤2.3:重复步骤2.2,直至目标用户出现在附近用户列表中,记录此时探针的位置,并将此时的查询点定义为第一查询点;步骤3:设置参考探针,具体包括以下步骤:步骤3.1:定义参考探针:参考探针是指在定位目标用户的过程中,为了获得目标用户与探针之间的实际距离范围而构建的虚拟用户;步骤3.2:利用智能移动设备位置模拟技术构建位置可变的参考探针;步骤3.3:改变参考探针的位置,使得参考探针与探针的实际距离dpr以xm为单位动态变化,每次参考探针的位置改变后,利用探针在微信“附近的人”中查询附近用户列表,直至探针查询的附近用户列表中参考探针与目标用户相邻;步骤3.4:步骤3.3中,若探针查询的附近用户列表中,目标用户比参考探针的次序靠前,则以y为单位逐渐减小dpr,使得参考探针在查询结果中的次序上升,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;若探针查询的附近用户列表中,目标用户比参考探针的次序靠后,则以y为单位逐渐增大dpr,使得参考探针在查询结果中的次序下降,其中y<M,直至探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化;步骤4:确定环状区域,具体包括以下步骤:将步骤3.4中,探针查询的附近用户列表中参考探针和目标用户的前后次序发生变化时,探针与参考探针之间的实际距离记为DR,可得目标用户的位置在以探针位置为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O1内;步骤5:利用三边测量定位法确定目标用户的位置。2.根据权利要求1所述的基于查询结果中用户失序分析的微信用户定位算法,其特征在于:所述步骤5包括以下步骤:步骤5.1:选择第二查询点位置,第二查询点与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第二查询点位置选择可使用步骤2所述的方法;步骤5.2:重复步骤3和步骤4,得到目标用户的位置在以第二查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O2内;步骤5.3:在以第一查询点位置和第二查询点位置为端点的线段的中垂线上取第三查询点,第三查询点位置与第一查询点位置的距离大于|DR+M|且小于2|DR+M|;第三查询点位置选择也可使用步骤3所述的方法;步骤5.4:重复步骤3和步骤4,得到目标用户的位置在以第三查询点为中心,内圆半径为|DR-M|,外圆半径为|DR+M|,环宽为2M的环形区域O3内;步骤5.5:环形区域O1、环形区域O2和环形区域O3的交叉区域的中心位置即为目标用户的定位位置。3.根据权利要求1所述的基于查询结果中用户失序分析的微信用户定位算法,其特征在于:所述步骤1.3.3还包括以下步骤:步骤1.3.3.1:保持虚拟用户B的位置不变,改变虚拟用户C的位置,使得|d1-d2|逐渐增大,直至利用虚拟用户A在微信“附近的人”中查询虚拟用户B和虚拟用户C的前后次序不再发生变化,定义此时|d1-d2|的值为记录值M;步骤1.3.3.2:通过步骤1.3.3.1一次测量得到的记录值M可能存在误差,为了进一步提高记录值M的精度,本发明采用基于记录值的统计特征确定混杂区间M的大小;多次重复步骤1.3.1、步骤1.3.2和步骤1.3.3.1,得出多个记录值M;然后选取记录值M的累积概率大于90%如95%时对应的记录值M确定混杂区间。4.根据权利要求1所述的基于查询结果中用户失序分析的微信用户定位算法,其特征在于:还包括步骤6:对不同异常情况做不同处理,具体采用以下处理方法:异常情况1:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,任两环形区域均不相交,采用以下处理方法:异常情况1.1:任两环形区域均不相交且不存在一个环形区域包含其他两个环形区域的情况时,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置;异常情况1.2:任两环形区域均不相交且有一环形区域包含其他两个环形区域时,选择外边环形区域对应的查询点位置中心与其中一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置1;同理,选择外边环形区域对应的查询点位置中心与另一个被包含环形区域对应的查询点位置所在的直线,与此被包含环形区域外圆的两个交点中,与外边环形区域对应的查询点位置距离较远的交点作为候选定位位置2;最终,选择候选定位位置1和候选定位位置2连线的中点作为目标用户的定位位置;异常情况2:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,只有两个环形区域相交时,采用以下处理方法:异常情况2.1:只有两个环形区域相交且另一环形区域包含两个相交的环形区域,则选取相交区域内距离外边环形区域对应的查询点最远的点的位置作为目标用户的定位位置;异常情况2.2:只有两个环形区域相交且另一环形区域不包含两个相交的环形区域,则选取相交区域内距离另一不相交环形区域对应的查询点最近的点的位置作为目标用户的定位位置;异常情况3:当利用步骤4和步骤5确定的环形区域O1、环形区域O2和环形区域O3中,有两个相交区域时,采用以下处理方法:异常情况3.1:只有两个环形区域相交,且相交区域为两个时,利用最小二乘法分别得到两个相交区域的中心点作为候选定位位置1和候选定位位置2,最终将与另一环形区域的外圆上最短距离最小的候选定位位置作为目标用户的定位位置;异常情况3.2:其中一个环形区域与其他两个环形区域各有一个相交区域时,分别利用最小二乘法计算两相交区域的中心点,取两中心点连线的中点作为目标用户的定位位置;异常情况4:若相交区域大于等于3个,选取第一查询点位置、第二查询点位置和第三查询点位置所构成的三角形的重心作为目标用户的定位位置。

百度查询: 中国人民解放军战略支援部队信息工程大学 基于查询结果中用户失序分析的微信用户定位方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。