有效
一种基于群体传播的特定用户挖掘方法
吴霞、刘志伟、莫李思、赵青
电子科技大学
摘要
本发明公开了一种基于群体传播的特定用户挖掘方法,首先通过对传播学教程中群体的定义及群体传播的特点进行分析,提出群体平均传播贡献的概念并进行计算,再通过采集Twitter数据,构建关注网络并提取网络属性特征,最后构建群体聚类算法和群体标签重分配算法,完成特定Twitter用户挖掘。本发明的方法通过提出群体平均传播贡献对个体与群体中个体的平均交互密切程度进行了衡量,提出了基于群体特征的Twitter用户传播群体挖掘方法,解决了现有群体聚类算法的聚类结果无法较好地体现群体特征的问题。
1.一种基于群体传播的特定Twitter用户挖掘方法,具体步骤如下:S1、计算群体平均传播贡献;S2、Twitter数据的采集;S3、关注网络的构建和网络属性特征的提取;S4、构建群体聚类算法和群体标签重分配算法,完成特定Twitter用户挖掘;所述步骤S1具体如下:具有特定的共同目标和归属感、存在着互动关系的复数个人的集合体即为群体,群体传播条件下的用户群体具备交互关系且同时具有特定的共同目标和归属感;其中,所述交互关系指用户间的关注关系,而对于共同目标和归属感的衡量;设定个体对群体共同目标和归属感的强弱通过个体与群体交互的密切程度来体现,提出群体平均传播贡献的概念,用于衡量个体与群体内每个节点交互的平均密切程度;则群体平均传播贡献具体的计算方式如下: ; ; ; ;其中, 表示节点 在群体 内的平均传播贡献,体现节点 对群体内每个节点的影响力和被群体内每个节点影响的能力; 表示节点 在群体 内的传播贡献; 表示群体 内所包含的节点数; 表示节点 对群体 内其他节点所产生的影响力, 表示节点 在群体 内所受到其它节点的影响力; 表示由节点 指向节点 的关注边的权重; 表示由节点 指向节点 的关注边的权重; 表示目的节点为 的所有关注边对应的源节点集合; 表示由 所指出的所有关注边所对应的目的节点集合。
2.根据权利要求1所述的一种基于群体传播的特定Twitter用户挖掘方法,其特征在于,所述步骤S2中具体如下:基于Twitter所提供的数据采集接口采集特定地区的用户数据、用户间的关注关系、用户所发布的历史推文以及特定主题的推文信息数据。
3.根据权利要求1所述的一种基于群体传播的特定Twitter用户挖掘方法,其特征在于,所述步骤S3具体如下:S31、关注网络的构建;S311、将步骤S2采集到的数据中的 个高影响力用户作为源用户加入网络节点集,随后将所有对高影响力用户的 条指定传播规模l以上的推文有过转发行为的关注者加入网络节点集;其中,所述高影响力用户即所发布推文的转发规模有 %在 以上的用户, 、 的数值根据实际需求人为设定;S312、采集现有网络节点集中所有节点的关注者列表,随后删除其中已在网络节点集中的部分并进行多次不放回的随机采样,并将采样后得到的对象加入网络节点集,且采样的次数等同于未采样前网络节点集中的节点数目;S313、根据用户间的关注关系构建连边,得到完整的信息传播关注网络;S32、网络属性特征的提取;构建用户关键词向量,首先,对所研究关注网络中的所有用户的历史推文中的符号用空格进行替换,所述用户历史推文指的是该用户所发布的最近 条推文,随后采用Python的nltk.tokenize模块中的word_tokenize方法对关注网络中用户所发布的历史推文中的内容进行分词和提取,再通过nltk.wordnet模块中的synsets方法去除分词中的非法词并采用nltk.corpus中的stopwords集合判断分词是否为停用词以对当前分词结果进行过滤,最终得到对应的有效关键词集合;其中, 的数值根据实际需求人为设定;统计有效关键词集合中的每个关键词被多少关注网络中的用户的历史推文提及过,保留有效关键词集合中被提及次数大于该网络总用户数 %的所有关键词,得到对应的词袋;其中, 的数值根据实际需求人为设定;根据词袋中对应的关键词数目 ,分别构建维度为 的用户关键词向量和推文关键词向量;其中,用户关键词向量中每个位置的值分别表示对应关键词在该用户所发布的历史推文中的出现频率;推文关键词向量中每个位置的值分别表示对应关键词在传播推文中所出现的频次;得到用户关键词向量后,通过计算关注边 所对应两个用户节点 和 对应用户关键词向量之间的欧拉距离,得到关注边 的权重。
4.根据权利要求1所述的一种基于群体传播的特定Twitter用户挖掘方法,其特征在于,所述步骤S4具体如下:S41、群体聚类算法的构建;构建群体聚类算法,算法输入包括:整个关注网络 ;平均传播贡献的倍数 ;群体的最小规模 ;节点的群体标签重分配次数 ;群体划分的最大尝试次数 ;其中,G表示步骤S3构建的关注网络, 表示在进行实际的群体聚类前可能加入当前群体的候选节点的群体内平均传播贡献相较群体外平均传播贡献的倍数,;最后输出 中每个节点 所对应的群体标签 ,具体步骤如下:(1)初始化所有节点的初始群体标签 ;(2)初始化未分类节点集 ,其中包含网络中的所有节点;(3)初始化已分类节点集 ,初始为空集;(4)初始化当前群体编号 ;(5)初始化当前群体划分的尝试次数 0;(6)确定当前未进行群体分类的节点数是否为零,如果是则调用群体标签重分配算法,否则对所有未进行群体分类的节点根据其关注关系中的未分类节点数进行降序排序;(7)遍历排序后的每个节点将该节点作为当前群体中的第一个节点,并进一步将和该节点有关注关系的节点作为初始的待选节点集 ;(8)遍历 中的节点,如果当前节点 为已分类节点则继续处理下一个节点,否则计算该节点的群体内平均传播贡献 和群体外平均传播贡献 ,仅当 大于等于 的 倍时才将其加入当前群体,如果 满足加入当前群体的条件,则进一步从 中移除 ,将 加入 中,令 ,最后将 邻居中的未分类节点加入 ;(9)当遍历完 中的节点后,进一步判断本次群体划分的结果是否合理,如果当前划分群体内的节点数大于等于 ,则本次群体划分结果合理;令 +=1, ;否则本次群体划分结果不合理,令 加一,并将 恢复为本次群体划分前的状态;随后判断群体划分的尝试次数 是否大于群体划分的最大尝试次数 ,如果不大于则返回步骤(7),否则将 中的节点加入对应的传播贡献最大的群体中;(10)调用群体标签重分配算法修正每个已分类节点的群体标签;(11)输出关注网络中每个节点的群体编号;S42、群体标签重分配算法的构建;构建群体标签重分配算法,该群体标签重分配算法输入包括:关注网络 ; 中每个节点 的群体标签 ;节点的群体标签重分配次数 ;每条关注边 的权重 和群体标签集合 ;最后输出 中每个节点 修正后的群体标签 ,具体步骤如下:1)判断 是否大于零,如果是则令 ,否则输出 中每个节点 修正后的群体标签 ;2)遍历图 中的每个节点 ,计算其对于现有群体中的每个群体的群体内传播贡献将该节点加入群体传播贡献最大的群体,返回步骤1)。






