一种基于标签传播算法的社团发现方法及系统的利记博彩app
【技术领域】
[0001]本发明属于计算机应用技术领域,具体涉及一种基于标签传播算法的社团发现方法及系统。
【背景技术】
[0002]随着对社会网络的深入研究,可以发现在一个复杂网络的用户之间还存在一些潜在的社区结构,即社团,社团是由一组组相似的结点互相连接而成的,同一个社团内部之间连接稠密,不同社团之间的连接较为稀疏。例如,在游戏论坛中,所有喜欢射击类游戏的用户可以划分为一个社团,在这个社团中,所有玩家关注共同兴趣的话题。通过社团划分,可以揭示某个具体节点在复杂网络中的作用。
[0003]比较经典的社团发现算法包括GN算法、LPA算法等。其中,对于GN算法,其复杂度较高,而社会网络的数据信息往往是海量的,所以要求社团发现方法应具有尽可能低的时间复杂度,因此,GN算法不适用于复杂社会网络的社团发现。而对于LPA(Near LinearTime Algorithmto Detect Community Structures in Large-scale Networks)算法,与集中式社团发现算法不同,LPA是一种分布式的社团发现算法,不需要预先给定划分社团的数量和规模等先验信息,对社团的大小也没有限制,其核心思想是:LPA算法首先为每个节点指派唯一标签,在每一步迭代中,每个节点将自身标签更新为其邻接节点出现次数最多的标签,如果邻接节点中出现次数最多的标签同时有多个,则随机选择其中一个作为该节点的新标签,遍历所有节点后,判断是否达到终止条件,终止条件为所有节点的标签均为其邻接节点标签中出现次数最多的标签,如果没有达到,则进行下一步迭代;若干次迭代后,当达到终止条件时,即具有相同标签的节点归为一个社团,则标签收敛,社团划分完成。
[0004]LPA社团发现算法可以实现复杂网络中社团的发现,但在分配标签的时候,当邻接节点中出现次数最多的标签同时有多个时,采用的策略为:随机选择其中一个作为该节点的新标签,从而降低了社团划分的准确率。
【发明内容】
[0005]针对现有技术存在的缺陷,本发明提供一种基于标签传播算法的社团发现方法及系统,用以解决LPA算法进行复杂网络社团划分时,由于忽略复杂网络中节点间连接边的权重等特点,使得其社团发现的准确率降低的技术问题。
[0006]本发明采用的技术方案如下:
[0007]本发明提供一种基于标签传播算法的社团发现方法,包括以下步骤:
[0008]SI,获得源数据:即,对于被分析的网络论坛,通过读取数据库,获得所述网络论坛中某一历史时刻Tl至当前时刻T2之间的所有单向互动记录,其中,所述单向互动记录包括发起方的用户ID以及接收方的用户ID ;
[0009]S2,将所述网络论坛中某一历史时刻Tl至当前时刻T2之间的参与单向互动的所有用户ID分别映射为关系拓扑网络图的节点;将单向互动关系映射为关系拓扑网络图中节点之间相互连接的向量,其中,向量的方向为:由代表单向互动发起方的节点指向代表单向互动接收方的节点;将在某一历史时刻Tl至当前时刻T2之间通过向量连接的两个节点之间的单向互动次数作为连接所述两个节点的向量的权重值,由此得到初始的关系网络图;
[0010]S3,初始化所述初始的关系网络图,S卩:为所述初始的关系网络图中的每个节点均赋予唯一的标签;
[0011]S4,令迭代计数器t = I ;
[0012]S5,以随机顺序排列S3得到的关系网络图中的各个节点,按所排列的顺序遍历更新所述关系网络图中的所有节点的标签;其中,对于任意一个节点m,对所述节点m进行更新的方法为:
[0013]首先获取节点m的所有邻接节点;其中,所述邻接节点指:与节点m发生互动,并且,相对于节点m,作为单向互动接收方的所有节点;然后,判断节点m的所有邻接节点中出现次数最多的标签是否为一个,如果是,则将所有邻接节点中出现次数最多的标签更新为节点m的新标签;如果不是,则将出现次数最多的标签所对应的邻接节点组成邻接节点集M,然后,从所述邻接节点集M中选取与所述节点m连接的向量的权重值最大的邻接节点作为选定节点,将所述选定节点的标签更新为节点m的新标签;
[0014]S6,判断是否满足预设置的迭代终止条件,其中,所述迭代终止条件指:所述关系网络图中的任意节点m’的标签满足以下条件:如果节点m’的所有邻接节点中出现次数最多的标签为一个,则节点m’的标签等于其所有邻接节点中出现次数最多的标签;如果节点m’的所有邻接节点中出现次数最多的标签为两个以上,将出现次数最多的标签所对应的邻接节点组成邻接节点集M’,则节点m’的标签等于邻接节点集Μ’中与节点m’连接的向量的权重值最大的邻接节点的标签;
[0015]如果未满足,则令t = t+Ι,反复迭代执行S5,直至满足预设置的终止条件;如果满足,则对所述网络论坛的社团划分过程结束,具有相同标签的节点所对应的用户ID属于同一个社团。
[0016]优选的,S3中,为每个节点所赋予的唯一的标签即为用户ID。
[0017]优选的,S5中,通过以下方法获取节点m的所有邻接节点:
[0018]建立邻接节点映射表;所述邻接节点映射表存储所述关系网络图中每一个用户ID与其所有邻接节点对应的用户ID的对应关系;
[0019]通过查找所述邻接节点映射表,获得节点m的所有邻接节点。
[0020]优选的,S6之后,还包括:
[0021]通过簇结构的方式显示所述关系网络图的所有节点,其中,具有相同标签的节点属于同一个簇。
[0022]本发明还提供一种基于标签传播算法的社团发现系统,包括:
[0023]源数据获取模块,对于被分析的网络论坛,获得所述网络论坛中的源数据;其中,所述源数据指所述网络论坛中某一历史时刻Tl至当前时刻T2之间的所有单向互动记录,其中,所述单向互动记录包括发起方的用户ID以及接收方的用户ID ;
[0024]关系网络图创建模块,用于读取所述源数据获取模块,将所述网络论坛中某一历史时刻Tl至当前时刻T2之间的参与单向互动的所有用户ID分别映射为关系拓扑网络图的节点,将单向互动关系映射为关系拓扑网络图中节点之间相互连接的向量,将在某一历史时刻Tl至当前时刻T2之间相互连接的两个节点之间的单向互动次数作为连接所述两个节点的向量的权重值,由此得到初始的关系网络图;
[0025]关系网络图初始化模块,用于初始化所述关系网络图创建模块所创建的初始的关系网络图,即:为所述初始的关系网络图中的每个节点均赋予唯一的标签;
[0026]迭代终止条件设置模块,用于设置迭代终止条件,所述迭代终止条件指:所述关系网络图中的任意节点m’的标签满足以下条件:如果节点m’的所有邻接节点中出现次数最多的标签为一个,则节点m’的标签等于其所有邻接节点中出现次数最多的标签;如果节点m’的所有邻接节点中出现次数最多的标签为两个以上,将出现次数最多的标签所对应的邻接节点组成邻接节点集M,,则节点m’的标签等于邻接节点集M,中与节点m’连接的向量的权重值最大的邻接节点的标签;其中,节点m’的邻接节点指:与节点m’发生互动,并且,相对于节点m’,作为单向互动接收方的所有节点;
[0027]迭代处理模块,用于在每次迭代中,以随机顺序排列关系网络图中的各个节点,按所排列的顺序遍历更新所述关系网络图中的所有节点的标签;其中,对于任意一个节点m,对所述节点m进行更新的方法为:首先获取节点m的所有邻接节点;然后,判断节点m的所有邻接节点中出现次数最多的标签是否为一个,如果是,则将所有邻接节点中出现次数最多的标签更新为节点m的新标签;如果不是,则将出现次数最多的标签所对应的邻接节点组成邻接节点集M,然后,从所述邻接节点集M中选取与所述节点m连接的向量的权重值最大的邻接节点作为选定节点,将所述选定节点的标签更新为节点m的新标签;
[0028]迭代终止判断模块,用于当所述迭代处理模块运行完一次迭代后,判断是否满足所述迭代终止条件设置模块所设置的迭代终止条件,如果未满足,则循环执行所述迭代处理模块,反复进行迭代处理;如果满足,则对所述网络论坛的社团划分过程结束,具有相同标签的节点所对应的用户ID属于同一个社团。
[0029]本发明提供一种基于标签传播算法的社团发现方法,包括以下步骤:
[0030]本发明提供的基于标签传播算法的社团发现方法及系统,具有以下优点:
[0031]当邻接节点中出现次数最多的标签有两个以上时,通过判断节点间连接向量的权重而决定需要选取的标签,能够更准确的实现社团的划分,得到网络论坛