一种基于社交关系碎片数据的模糊搜索方法与流程

文档序号:15982409发布日期:2018-11-17 00:29阅读:152来源:国知局
本发明涉及社交网络领域,尤其涉及一种数据搜索方法。
背景技术
目前随着信息通信技术的发展,通过至少一个以上的主机服务器实时向多个加入者方提供多种领域信息的信息提供技术的开发。基于此,假定我们持有一种常用社交软件的数据,比如qq、微信或者微博等,里面会记录账号及账号之间的好友关系。这样我们就可以通过这种好友关系找到熟人的熟人。反之,若我们已知5个人a、b、c、d、e关系密切,如果我们已经确定b、c、d、e的账号b、c、d、e,但a的账号未知,我们可分析b、c、d、e的共同好友来把a的账号锁定在很小的范围,并通过其他辅助手段确定a的账号。若我们持有的社交数据是完整准确的,则搜寻a账号仅对b、c、d、e的好友列表作需要交集运算。但在实际中数据往往无法从官方完整获取,而是通过各种渠道采集和收集,得到的数据残缺不全甚至可能包含错误信息。而传统的社交网络分析算法均基于完整且可靠的数据,如果数据不完整或者数据来源出错,这就会影响我们排查的准确性和快速性。例如,在警察刑事侦查中,警察需要快速准确找到与被害者或者被害者家属密切相关的人,而如果采取的信息不全或者是错误信息,就会不能很快确定一个精准的范围,导致办案时间延长,办案不准确,很影响警察的办案效率。这也可以运用在好友搜索或者是商业搜索上,我们需要发明出一种搜索方法,它在数据不完整不准确的情况下仍然能够确定一个比较小的范围,并且能快速搜索到可信度较高的目标账号。技术实现要素:针对现有技术中所存在的不足,本文提出一种模糊搜索算法,在数据不完整不准确的情况下仍然能够有效工作。该算法的主要贡献在于创造性地提出一种适应碎片数据场合的社交搜索模型,通过间接社交关系弥补数据缺失,通过多重联络关系增强数据可靠程度,而传统的社交网络分析算法均基于完整且可靠的数据。该算法也通过动态规划等手段降低计算复杂度,确保能够在海量社交数据中迅速搜索出结果。为实现上述目的,本发明采用了如下的技术方案:一种基于社交关系碎片数据的模糊搜索方法,包括以下步骤:步骤a:、获取n(n大于等于1)个与目标账号关系密切的已有账号;步骤b:、输入已有账号a1、a2、…、an,还需要输出的候选目标账号数量m(m大于等于1);步骤c:确定已有账号的直接好友关系:令v0表示a1、a2、…、an的集合,v'表示a1、a2、…、an的好友的集合,进行集合运算:v1=v′\v0,令e1表示v0到v1的好友关系的集合;步骤d:确定已有账号的间接好友关系(两人都与另一个人是好友,则他们彼此为间接好友):令v″表示v1中账号的好友的集合,再次进行集合运算:v2=v″\v0,令e2表示v1到v2的好友关系的集合;步骤e:生成有向图g=(v,e):其中顶点的集合v=v0∪v1∪v2,边的集合e=e1∪e2;对e的各条边,两者为直接好友关系,以相应的两者之间的亲密度θ作为边权重;步骤f:创建|v0|×|v1∪v2|的矩阵:记录已有账号与目标账号之间的亲密度;(1)首先计算e1中的各对好友关系,以边的权重初始化对应表格;其他表格则初始化为0;(2)再根据e2中的各对好友关系计算对应间接好友的亲密度;根据公式θ(a,c)=θ(a,b)θ(b,c)/(θ(a,b)+θ(b,c))计算a、c之间的亲密度,b为a、c的共同好友;(3)根据两账号之间的独立联络路径数,更新表格中两账号的亲密度数据;若两账号a、c之间的联络路径不止一条,然后根据公式θ+=θ′-θ×θ′计算更新a、c之间的亲密度,其中θ′为新增路径的亲密度;步骤g:对矩阵按列求和,然后把结果按从大到小排序,以前m个值作为最佳匹配结果输出。进一步的,所述两直接好友的亲密度,在数据可靠的情况下,对于任意两个账号a、b,如果a、b具有好友关系,则亲密度θ(a,b)=θ(b,a)=1;在数据不可靠的情况下,我们用可靠度充当亲密度来衡量不同来源的数据。可靠度为一个百分比,最大为1;如果a、b之间既不是好友也不是间接好友,则θ(a,b)=θ(b,a)=0。本发明的原理为:在搜索数据可能缺失时,我们要想通过现有的好友账号找到目标账号,会使搜索范围变得很大很宽,不利于我们快速准确找到可能的目标账号,此时,我们首先要适当放宽匹配条件,比如已知5个人a、b、c、d、e关系密切,a账号未知,在数据缺失时,很可能其中一个账号比如e的账号未被采集而只是采集了b、c、d的账号,或者e与a的好友关系并未收集到数据中,这要求我们要放宽匹配条件,不要求必须是全部人的好友,要想使数据更准确则只要搜索出b、c、d、e中尽可能多的好友。另一方面,如果直接好友关系缺失,我们还要考虑间接的好友关系,如果两人都与另一个人是好友,则他们彼此为间接好友,这说明两人在现实世界中很可能是相识的,只是他们的好友关系没有被采集,也有可能两人并不使用该社交软件联系。另一个需要考虑的是数据的可靠程度。从不同渠道采集的数据,其可靠性也有所不同。在数据可靠的情况下,如果a、b具有好友关系,则两者亲密度θ(a,b)=θ(b,a)=1。在数据不可靠的情况下,我们用可靠度充当亲密度来衡量不同来源的数据。如果a、b之间既不是好友也不是间接好友,则两者之间亲密度为θ(a,b)=θ(b,a)=0。如果两人的好友关系可以从不同的渠道印证,则其整体可靠性要高于其中的任一渠道的可靠性。我们可以将不同渠道的亲密度按照公式θ+=θ′-θ×θ'进行合并亲密度。显然,在数据非常不可靠的情况下,多渠道印证能显著增强结论的可靠性。而在单一渠道已经比较可靠的情况下,多渠道的增强效果就没有那么明显。这样一来我们通过放宽匹配条件、采集间接好友账号就能确定一系列目标账号,这能有效防止搜索账号遗漏,但是此范围较大,我们如何能从这么多目标范围里找到最为准确的目标账号呢。这就要求我们要把数据来源的可靠性一并考虑进去,对数据来源的可靠性进行量化,通过多重联络关系增强数据可靠程度,采用上述对亲密度的计算方法,对于任意两个账号a、b,我们可以用亲密度θ(a,b)对其关系进行量化,最后再对目标好友亲密度进行求和,数值越大,则可能性越大,根据最终数值大小确定输出目标账号。相比于现有技术,本发明具有如下有益效果:本发明提供了一种基于社交关系碎片数据的模糊搜索方法,在数据不完整不准确的情况下仍然能够有效工作。该算法的主要贡献在于创造性地提出一种适应碎片数据场合的社交搜索模型,通过间接社交关系弥补数据缺失,通过多重联络关系增强数据可靠程度,而传统的社交网络分析算法均基于完整且可靠的数据。该算法也通过动态规划等手段降低计算复杂度,确保能够在海量社交数据中迅速搜索出结果。附图说明图1为本发明实施例一中提供的关系链的示意图;。图2为本发明实施例二中提供的关系链的示意图。具体实施方式下面结合附图及实施例对本发明中的技术方案进一步说明。实施例1如图1所示,本发明提出了一种基于社交关系碎片数据的模糊搜索方法,步骤a:获取已知账号a、b、c、d,需要输出的候选目标账号数量为2,步骤b:输入已知账号a、b、c、d,步骤c:确定已有账号的直接好友关系:令v0表示a、b、c、d的集合,v0={a,b,c,d},v'表示a、b、c、d的好友的集合,v'={b,c}∪{a,e}∪{a,e,f}∪{f,g}={a,b,c,e,f,g},进行集合运算:v1=v′\v0,v1=v′\v0={e,f,g},令e1表示v0到v1的好友关系的集合,则e1={<b,e>,<c,e>,<c,f>,<d,f>,<d,g>};步骤d:确定已有账号的间接好友关系(两人都与另一个人是好友,则他们彼此为间接好友):令v″表示v1中账号的好友的集合,v″={b,c,f,g}∪{c,d}∪{d,e}={b,c,d,e,f,g},再次进行集合运算:v2=v″\v0,v2=v″\v0={e,f,g},令e2表示v1到v2的好友关系的集合,e2={<e,f>,<e,g>,<f,e>,<g,e>},注意e和g的好友关系以不同顺序两次添加到e2中;步骤e:生成有向图g=(v,e):如图1所示,其中顶点的集合v=v0∪v1∪v2,边的集合e=e1∪e2;对e的各条边,以相应的两者之间的亲密度θ作为边权重;步骤f:创建|v0|×|v1∪v2|的矩阵:记录已有账号与目标账号之间的亲密度;(1)首先计算e1中的各对好友关系,以边的权重初始化对应表格;其他表格则初始化为0;初始化|v0|×|v1∪v2|的矩阵如下:efga000b100c0.30.80d00.40.8(2)再根据对e2中的各对好友关系计算对应间接好友的亲密度,把计算出的亲密度合并到矩阵中对应的表格中;对e2关系<e,f>,得路径b->e->f的亲密度为1×1/(1+1)=0.5,由此更新θ(b,f)=0+0.5-0×0.5=0.5,路径c->e->f的亲密度为0.3×1/(0.3+1)=0.23,由此更新θ(c,f)=0.8+0.23-0.8×0.23=0.85;efga000b10.50c0.30.850d00.40.8对e2关系<e,g>,得路径b->e->g的亲密度为1×0.6/(1+0.6)=0.38,由此更新θ(b,g)=0+0.38-0×0.38=0.38,路径c->e->g的亲密度为0.3×0.6/(0.3+0.6)=0.2,由此更新θ(c,g)=0+0.2-0×0.2=0.2;efga000b10.50.38c0.30.850.2d00.40.8对e2关系<f,e>,得路径c->f->e的亲密度为0.8×1/(0.8+1)=0.44,由此更新θ(c,e)=0.3+0.44-0.3×0.44=0.61,路径d->f->e的亲密度为0.4×1/(0.4+1)=0.29,由此更新θ(d,e)=0+0.29-0×0.29=0.29;efga000b10.50.38c0.610.850.2d0.290.40.8对e2关系<g,e>,得路径d->g->e的亲密度为0.8×0.6/(0.8+0.6)=0.34,由此更新θ(d,e)=0.29+0.34-0.29×0.34=0.53;步骤g:对矩阵按列求和,然后把结果按从大到小排序,以前e、f作为最佳匹配结果输出。efga000b10.50.38c0.610.850.2d0.530.40.8评分2.141.751.38实施例2如图2所示,本发明提出了一种基于社交关系碎片数据的模糊搜索方法,步骤a:获取已知账号a、b、c,需要输出的候选目标账号数量为2,步骤b:输入已知账号a、b、c,步骤c:确定已有账号的直接好友关系:令v0表示a、b、c的集合,v0={a,b,c},v'表示a、b、c的好友的集合,v′={b,f,g}∪{a,f}∪{d,f,g}={a,b,d,f,g},进行集合运算:v1=v′\v0,v1=v′\v0={d,f,g},令e1表示v0到v1的好友关系的集合,则e1={<a,f>,<a,g>,<b,f>,<c,d>,<c,f>,<c,g>};步骤d:确定已有账号的间接好友关系(两人都与另一个人是好友,则他们彼此为间接好友):令v表示v1中账号的好友的集合,v′={c,e}∪{a,b,c,e,g}∪{a,c,e,f}={a,b,c,e,f,g},再次进行集合运算:v2=v″\v0,v2=v''\v0={e,f,g},令e2表示v1到v2的好友关系的集合,e2={<d,e>,<f,e>,<f,g>,<g,e>,<g,f>},注意f和g的好友关系以不同顺序两次添加到e2中;步骤e:生成有向图g=(v,e):如图1所示,其中顶点的集合v=v0∪v1∪v2,边的集合e=e1∪e2;对e的各条边,两者为直接好友关系,以相应的两者之间的亲密度θ作为边权重;步骤f:创建|v0|×|v1∪v2|的矩阵:记录已有账号与目标账号之间的亲密度;(1)首先计算e1中的各对好友关系,以边的权重初始化对应表格;其他表格则初始化为0;初始化|v0|×|v1∪v2|的矩阵如下:defga0011b0010c0.5011(2)再根据对e2中的各对好友关系计算对应间接好友的亲密度,把计算出的亲密度合并到矩阵中对应的表格中;对e2关系<d,e>,得路径c->d->e的亲密度为0.5×1/(0.5+1)=0.33,由此更新θ(c,e)=0+0.33-0×0.33=0.33;defga0011b0010c0.50.3311对e2关系<f,e>,得路径a->f->e的亲密度为1×1/(1+1)=0.5,由此更新θ(a,e)=0+0.5-0×0.5=0.5;同理可得θ(b,e)=0+0.5-0×0.5=0.5;路径c->f->e的亲密度为1×1/(1+1)=0.5,由此更新θ(c,e)=0.33+0.5-0.33×0.5=0.67;defga00.511b00.510c0.50.6711对e2关系<f,g>,得路径a->f->g的亲密度为1×0.5/(1+0.5)=0.33,由此更新θ(a,g)=1+0.33-1×0.33=1不变;同理可知θ(c,g)=1不变;路径b->f->g的亲密度为1×0.5/(1+0.5)=0.33,由此更新θ(b,g)=0+0.33-0×0.33=0.33;defga00.511b00.510.33c0.50.6711对e2关系<g,e>,得路径a->g->e的亲密度为1×1/(1+1)=0.5,由此更新θ(a,e)=0.5+0.5-0.5×0.5=0.75;路径c->g->e的亲密度为1×1/(1+1)=0.5,由此更新θ(c,e)=0.67+0.5-0.67×0.5=0.84;defga00.7511b00.510.33c0.50.8411对e2关系<g,f>,得路径a->g->f的亲密度为1×0.5/(1+0.5)=0.33,由此更新θ(a,f)=1+0.33-1×0.33=1不变;同理可得θ(c,f)=1不变;defga00.7511b00.510.33c0.50.8411步骤g:对矩阵按列求和,然后把结果按从大到小排序,以f、g作为最佳匹配结果输出。defga00.7511b00.510.33c0.50.8411评分0.52.0932.33最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1