一种基于Twitter数据的社交网络组织成员识别方法
技术领域
本发明海量数据分析与挖掘技术领域,更具体而言涉及一种基于Twitter数据的社交网络组织成员识别方法。
背景技术
社交网络是一种基于用户关系的信息共享、信息传播以及信息获取的平台。它已经渗透到我们生活的方方面面,它突破了传统媒体的信息传播方式,用户可以自由地生产自己认为有价值的信息内容,并以短文本、图片或视频的方式与好友共享此信息。与此同时,用户也可以主动选择成为其他用户的好友或者粉丝,随时随地获取自己感兴趣的信息。随着社交网络的兴起和快速发展,网络生活变得更加丰富多彩,几乎每个网民都参与到了这种新型的网络组织结构中。和现实世界一样,虚拟的社交网络中也存在人际关系。从虚拟的社交网络中发掘用户在现实世界中的人际关系有着很高的学术和应用价值,所以社交网络用户关系挖掘已经成为了新兴的研究热点之一。
目前社交网络组织成员识别方法是:首先抓取了实验组织的若干官方账户的两层粉丝的社交网络数据,利用社交网络的拓扑结构计算用户对目标机构的兴趣度,并在该数据集上进行去噪、压缩处理后,应用基于模度值最大化算法划分出网络中的社交圈子,最后通过定义社区的R@N指标来选取相关社区,社区中的成员即为组织成员识别的结果。
上述识别方法的缺陷在于:第一,只能将社交网络成员划分为几个社群,但它不会进一步确定用户之间的特殊关系;第二,只将社交网络的用户集合根据用户顶点的结构关联度或属性相似度划分为若干用户集合,而并不能针对某个特定的组织挖掘其相关的成员;第三,这些方法存在许多不足,如迭代次数不稳定,用户属性特征选取不明确等。
发明内容
本发明的目的在于针对现有技术中存在的缺陷,提出一种基于Twitter数据的社交网络组织成员识别方法。为了达到目的,本发明提供的技术方案为:
本发明涉及的一种基于Twitter数据的社交网络组织成员识别方法,其特征在于,包括以下步骤:
(1)爬取关注组织公共账号的Twitter用户,构成候选集合U;
(2)寻找n个确定属于目标组织的Twitter用户,构成种子集合S;
(3)设定得分阀值min,设定种子集合S成员的期望值m,m>n;
(4)逐一爬取候选成员的关注列表、被关注列表、推文的推送关系及数量;
(5)统计其中与种子集合S成员相关的部分作为识别因子;
(6)通过识别因子计算所有候选成员的得分Score;
(7)提取得分Score大于得分阀值min的候选成员并纳入种子集合S中,其余候选成员保留在候选集合U中;
(8)判断种子集合S中的人数,若种子集合人数小于期望值m,则重复步骤5~7,继续进行成员识别,若种子集合人数大于期望值m,完成识别。
优选地,所述的步骤1包括以下步骤:
(1.1)提取目标组织的公共账号,爬取关注公共帐号的所有用户名单;
(1.2)爬取每位用户的具体信息,包括昵称、个人简介、关注数量、被关注数量、推文数量;
(1.3)根据每位用户的具体信息过滤用户集,移除非候选成员账号
优选地,所述的步骤4包括以下步骤:
(4.1)逐一爬取每个候选成员的关注列表和被关注列表,候选成员关注的用户集合即为Fa,关注候选成员的用户集合即为Feda,F(a,x)表示候选成员关注的用户x,F(x,a)表示用户x关注候选成员,通过公式
Fa={x|F(a,x)}
Feda={x|F(x,a)}
计算并统计每位候选成员关注和被关注的用户。
(4.2)逐一爬取每个候选成员的推文及推送关系,被候选成员推送过推文的用户集合表示为Ta,给候选成员推送过推文的用户集合表示为Teda,T(a,x)表示Twitter上的候选成员向用户x推送过推文,T(x,a)表示Twitter上的用户x向候选用户推送过推文,通过公式
Ta={x|T(a,x)}
Teda={x|T(x,a)}
计算并统计每位候选成员的推送关系。
(4.3)逐一计算候选成员推文的推送数量,用M(a,x)表示某候选成员向其他用户x推送的推文数量,用M(x,a)表示其他用户x给候选用户推送的推文数量,Na表示候选用户推送推文的总数量,Neda表示候选用户被动推送的推文总数量,通过公式
Na=∑M(a,x)
Neda=∑M(x,a)
计算候选用户的推文的推送数量。
优选地,所述的步骤5包括以下步骤:
(5.1)统计候选成员的关注列表中属于种子集合S中的成员的用户数量Gas,统计候选成员的被关注列表中属于种子集合S中的成员的用户数量Gsa,
Gas=|{x|F(a,x)∩x,x∈S}|,
Gsa=|{x|F(x,a)∩x,x∈S}|。
(5.2)统计候选成员推送推文的对象且属于种子集合S中成员的用户数量Tas,统计给候选成员推送推文的且属于种子集合S中成员的用户数量Tsa,
Tas=|{x|T(a,x)∩x,x∈S}|,
Tsa=|{x|T(x,a)∩x,x∈S}|。
(5.3)统计候选成员给种子集合S中的用户推送的推文数量Nas,统计种子集合S中的用户给候选成员推送的推文数量Nsa,
Nas=∑xeSN(a,x),
Nsa=∑xeSN(x,a)。
优选地,所述步骤6中每个候选成员得分的计算公式为Score=aNas+bNas+cTsa+dTas+eGas+fGsa,且a+b+c+d+e+f=1
优选地,所述的a=0.01,b=0,c=0.4,d=0.09,e=0.1,f=0.4。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
1、本发明涉及的组织成员识别方法能够实现确定用于之间的关系,比如同事关系等,进而能够实现组织用户的成员的挖掘。
2、本发明通过候选用户的关注关系、推文的推送关系以及推文的推送数量作为识别因子,计算该候选成员的得分,以此来判断该用户是否属于组织成员,该识别方法是与实际生活相符,即用户与一组用户中的多名用户存在互动关系,比另一名只与一组用户中的个别用户存在互动关系更能说明该用户与用户组之间存在紧密的关系,因此其识别能力较强。
3、本发明采用迭代循环识别的方式对多个候选成员进行识别,该方法能够提高社交网络成员识别的准确率。
附图说明
附图1是本发明基于Twitter数据的社交网络组织成员识别方法的原理图。
具体实施方式
为进一步了解本发明的内容,结合实施例对本发明作详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。
结合附图1所示,本发明涉及的一种基于Twitter数据的社交网络组织成员识别方法包括以下步骤:
步骤1.1:提取目标组织的公共账号,爬取关注公共帐号的所有用户名单。
步骤1.2:爬取每位用户的具体信息,包括昵称、个人简介、关注数量、被关注数量、推文数量。
步骤1.3:根据每位用户的具体信息过滤用户集,移除非候选成员账号,其余用户组成候选集合U,本实施例经过过滤用户集后,存在200个候选成员。
步骤2:寻找n个确定属于该目标组织的Twitter用户,构成种子集合S,本实施例取n为20为例对本发明进行说明。
步骤3:设定候选用户的得分阀值min,设定种子集合S成员的期望值m,m>n,本实施例以100为例对本发明进行说明。
步骤4.1:针对200个候选成员,逐一爬取每个候选成员的关注列表和被关注列表,关注列表和被关注列表的成员与候选成员存在关注关系,候选成员关注的用户集合即为Fa,关注候选成员的用户集合即为Feda,F(a,x)表示候选成员关注的用户x,F(x,a)表示用户x关注候选成员,则Fa={x|F(a,x)},Feda={x|F(x,a)},通过该计算方法统计每位候选成员关注和被关注的用户。
步骤4.2:针对200个候选成员,逐一爬取每个候选成员的推文及推送关系,被候选成员推送过推文的用户集合表示为Ta,给候选成员推送过推文的用户集合表示为Teda,T(a,x)表示Twitter上的候选成员向用户x推送过推文,T(x,a)表示Twitter上的用户x向候选用户推送过推文,那么Ta={x|T(a,x)},Teda={x|T(x,a)},通过该计算方法统计每位候选成员的推送关系。
步骤4.3:针对200个候选成员,逐一计算候选成员推文的推送数量,用M(a,x)表示某候选成员向其他用户x推送的推文数量,用M(x,a)表示其他用户x给候选用户推送的推文数量,Na表示候选用户推送推文的总数量,Neda表示候选用户被动推送的推文总数量,则Na=∑M(a,x),Neda=∑M(x,a),用该计算方法计算得到候选用户的推文的推送数量。
步骤5.1:统计候选成员的关注列表中属于种子集合S中的成员的用户数量Gas,Gas=|{x|F(a,x)∩x,x∈S}|;统计候选成员的被关注列表中属于种子集合S中的成员的用户数量Gsa,Gsa=|{x|F(x,a)∩x,x∈S}|。
步骤5.2:统计候选成员推送推文的对象且属于种子集合S中成员的用户数量Tas,Tas=|{x|T(a,x)∩x,x∈S}|;统计给候选成员推送推文的且属于种子集合S中成员的用户数量Tsa,Tsa=|{x|T(x,a)∩x,x∈S}|。
步骤5.3:统计候选成员给种子集合S中的用户推送的推文数量Nas,Nas=∑xeSN(a,x),统计种子集合S中的用户给候选成员推送的推文数量Nsa,Nsa=∑xeSN(x,a)。
步骤6:根据步骤5得到的识别因子,计算各个候选成员的得分Score,计算公式为:Score=a·Nas+b·Nsa+c·Tsa+d·Tas+e·Gas+f·Gsa,其中a+b+c+d+e+f=1,系数a、b、c、d、e、f的大小由实证试验确定,经过实证试验,本实施例取a=0.01,b=0,c=0.4,d=0.09,e=0.1,f=0.4,即通过实证试验分析,当a=0.01,b=0,c=0.4,d=0.09,e=0.1,f=0.4时,计算的各候选成员的得分情况更接近与实际的情况。
步骤7:根据步骤6得到的各后候选成员的得分值,并分别与得分阀值min进行比较,候选成员中得分大于得分阀值min的成员组成集合R,从候选集合U中移除集合R中的成员,并将这些成员合并到种子集合S,组成新的种子集合S和新的候选集合U。
步骤8:统计种子集合S中的用户数量,若数量小于设定的期望值m,即种子集合S中用户数量少于100人,则迭代执行步骤4.1~步骤7,直到种子集合S中用户数量大于100人,当种子集合S中的用户数量大于设定的期望值m,则停止识别,得到该目标组织的成员用户列表。
以上结合实施例对本发明进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍属于本发明的专利涵盖范围之内。