的社团分布情况,从而更有效的帮助运营决策者获知论坛用户的兴趣点,帮助运营决策者进行运营决策。
【附图说明】
[0032]图1为本发明提供的基于标签传播算法的社团发现方法的流程示意图;
[0033]图2为本发明对节点m进行更新的方法流程示意图;
[0034]图3为本发明提供的基于标签传播算法的社团发现系统的流程示意图;
[0035]图4为关系拓扑网络图的一种简化具体示例图。
【具体实施方式】
[0036]以下结合附图对本发明进行详细说明:
[0037]如图1所示,本发明提供一种基于标签传播算法的社团发现方法,可应用于游戏论坛进行舆情分析,具体包括以下步骤:
[0038]SI,获得源数据:即,对于被分析的网络论坛,通过读取数据库,获得所述网络论坛中某一历史时刻Tl至当前时刻T2之间的所有单向互动记录,其中,所述单向互动记录包括发起方的用户ID以及接收方的用户ID ;例如,获取某一游戏论坛近一周内的所有单向互动记录。此处,以用户ID-1为例,与用户ID-1相关的所有单向互动记录是指:用户ID-1作为单向互动发起方而得到的所有互动记录,如,在此期间,用户ID-1向用户ID-2共传输3条消息,则用户ID-1具有与用户ID-2相关的3条单向互动记录。而在此期间,如果用户ID-2向用户ID-1共传输5条消息,则用户ID-2具有与用户ID-1相关的5条单向互动记录。
[0039]可见,每一条单向互动记录均至少具有三个条件:发起方的用户ID、接收方的用户ID以及发起方发送消息的时间;通过对发起方发送消息的时间进行筛选,即可获得某一指定时间长度内的所有单向互动记录。
[0040]S2,将所述网络论坛中某一历史时刻Tl至当前时刻T2之间的参与单向互动的所有用户ID分别映射为关系拓扑网络图的节点;将单向互动关系映射为关系拓扑网络图中节点之间相互连接的向量,其中,向量的方向为:由代表单向互动发起方的节点指向代表单向互动接收方的节点;将在某一历史时刻Tl至当前时刻T2之间通过向量连接的两个节点之间的单向互动次数作为连接所述两个节点的向量的权重值,由此得到初始的关系网络图;;
[0041]具体的,在Tl到T2时间段内参与单向互动的所有用户ID是指:在Tl到T2时间段内发起消息的所有用户ID以及接收消息的所有用户ID。
[0042]将单向互动关系映射为关系拓扑网络图中节点之间相互连接的向量,是指:为简化说明,参考图4,为关系拓扑网络图的一种简化具体示例,在图4中,共有三个节点,分别为P1、P2和P3 ;对于Pl向P2发送消息的单向互动关系,映射为图4中的向量LI,对于P2向Pl发送消息的单向互动关系,映射为图4中的向量L2 ;也就是说,向量的方向为:由单向互动发起方指向单向互动接收方。
[0043]向量的权重值是指:参考图4,如果在统计时间范围内,Pl向P2共发送10条消息,则向量LI的权重即为10 ;而如果在统计时间范围内,P2向Pl共发送5条消息,则向量L2的权重即为5。
[0044]实际应用中,对于获得的作为源数据的所有单向互动记录,可以首先利用脚本对所有单向互动记录进行处理,将所有单向互动记录处理成LPA社团划分脚本需要的数据源格式,再通过LPA社团划分脚本执行后续步骤。
[0045]S3,初始化所述初始的关系网络图,即:为所述初始的关系网络图中的每个节点均赋予唯一的标签;
[0046]初始时,赋予每个节点的标签,只要能够达到将各个节点进行区分的目的即可,可以为数字、字母或数字与字母的组合均可,当然,由于各个节点所对应的用户ID是唯一的,因此,为简化计算,也可以将用户ID作为对应节点的标签,例如,对于用户ID为12345的节点,该节点的标签可以为12345。因此,本发明并不对各个节点所赋予的标签值进行限制。
[0047]S4-S6为标签更新、传播的过程,即:
[0048]S4,令迭代计数器t = I ;
[0049]S5,以随机顺序排列S3得到的关系网络图中的各个节点,按所排列的顺序遍历更新所述关系网络图中的所有节点的标签;其中,对于任意一个节点m,如图2所示,对所述节点m进行更新的方法为:
[0050]S51,首先获取节点m的所有邻接节点;其中,所述邻接节点指:与节点m发生互动,并且,相对于节点m,作为单向互动接收方的所有节点;仍然以图4为例,对于节点Pl,其邻接节点包括节点P2和节点P3 ;而对于节点P4,由于Pl仅作为互动的接收方,与节点P4发生了通信,但并未作为互动的发起方,主动向节点P4发起互动,因此,节点P4不属于节点Pl的邻接节点。
[0051]S52,然后,判断节点m的所有邻接节点中出现次数最多的标签是否为一个,如果是,则执行S53 ;如果不是,则执行S54 ;
[0052]S53,将所有邻接节点中出现次数最多的标签更新为节点m的新标签;
[0053]S54,将出现次数最多的标签所对应的邻接节点组成邻接节点集M,然后,从所述邻接节点集M中选取与所述节点m连接的向量的权重值最大的邻接节点作为选定节点,将所述选定节点的标签更新为节点m的新标签;
[0054]本步骤中,由于需要进行多次迭代,而每次迭代过程中,对于每个节点,均需要获取其所有邻接节点,因此,当关系网络图中包括的节点数量众多时,例如,当关系网络图中包括I万个节点时,当于任何一个节点,需要遍历其他9999个节点,才能得出该节点的邻接节点,因此,计算非常复杂,还具有计算时间长的问题。因此,本发明中,可以预先建立邻接节点映射表,例如,对于由100个节点组成的关系网络图,节点I的邻接节点为节点2、节点
5、节点10…;因此,在每次需要获得某一节点的所有邻接节点时,只需要查找邻接节点映射表,即可迅速获得该节点的所有邻接节点,从而简化了运算,提高了社团发现的速度。
[0055]S6,判断是否满足预设置的迭代终止条件,其中,所述迭代终止条件指:所述关系网络图中的任意节点m’的标签满足以下条件:如果节点m’的所有邻接节点中出现次数最多的标签为一个,则节点m’的标签等于其所有邻接节点中出现次数最多的标签;如果节点m’的所有邻接节点中出现次数最多的标签为两个以上,将出现次数最多的标签所对应的邻接节点组成邻接节点集M,,则节点m’的标签等于邻接节点集M,中与节点m’连接的向量的权重值最大的邻接节点的标签;即:即,每个节点的邻接节点中,和本节点处于同一个社团的邻接节点数量一定大于等于处于其他社团的数量。
[0056]如果未满足,则令t = t+Ι,反复迭代执行S5,直至满足预设置的终止条件;如果满足,则对所述网络论坛的社团划分过程结束,具有相同标签的节点所对应的用户ID属于同一个社团。然后,还可以通过簇结构的方式显示所述关系网络图的所有节点,其中,具有相同标签的节点属于同一个簇,从而方便用户直观获得该网络论坛的社团分类。具体的,可以将含有用户社团信息的数据存入mysql数据库中。通过php程序从数据库读取用户社团信息,在后台通过图像显示。
[0057]如图3所示,本发明还提供一种基于标签传播算法的社团发现系统,包括:
[0058]源数据获取模块,对于被分析的网络论坛,获得所述网络论坛中的源数据;其中,所述源数据指所述网络论坛中某一历史时刻Tl至当前时刻T2之间的所有单向互动记录,其中,所述单向互动记录包括发起方的用户ID以及接收方的用户ID ;
[0059]关系网络图创建模块,用于读取所述源数据获取模块,将所述网络论坛中某一历史时刻Tl至当前时刻T2之间的参与单向互动的所有用户ID分别映射为关系拓扑网络图的节点,将单向互动关系映射为关系拓扑网络图中节点之间相互连接的向量,将在某一历史时刻Tl至当前时刻T2之间相互连接的两个节点之间的单向互动次数作为连接所述两个节点的向量的权重值,由此得到初始的关系网络图;
[0060]关系网络图初始化模块,用于初始化所述关系网络图创建模块所创建的初始的关系网络图,即:为所述初始的关系网络图中的每个节点均赋予唯一的标签;
[0061]迭代终止条件设置模块,用于设置迭代终止条件,所述迭代终止条件指:所述关系网络图中的任意节点m’的标签满足以下条件:如果节点m’的所有邻接节点中出现次数最多的标签为一个,则节点m’的标签等于其所有邻接节点中出现次数最多的标签;如果节点m’的所有邻接节点中出现次数最多的标签为两个以上,将出现次数最多的标签所对应的邻接节点组成邻接节点集M,,则节点m’的标签等于邻接节点集M,中与节点m’连接的向量的权重值最大的邻接节点的标签;其中,节点m’的