一种基于人工免疫网络的微博社交圈挖掘方法及系统与流程

文档序号:17358760发布日期:2019-04-09 21:54阅读:221来源:国知局
一种基于人工免疫网络的微博社交圈挖掘方法及系统与流程

本发明属于网络信息处理技术领域,尤其涉及一种基于人工免疫网络的微博社交圈挖掘方法及系统。



背景技术:

目前,业内常用的现有技术是这样的:

微博社交网络是指用户在微博中进行博文的发布、关注和交互等行为的同时形成的用户关系网络。

微博社交圈挖掘即运用一些数据挖掘技术,构建微博网络模型,定义用户间关系强度的衡量指标,从微博用户庞大的虚拟关系网络中准确识别和挖掘出不同用户所隶属的社交圈,对于社交网络的结构特征演化分析、网络舆情的预测以及用户个性化推荐等领域研究具有重要意义。

传统的社交网络中社交圈挖掘可分为两类:非重叠社交圈发现和重叠社交圈的发现,不足之处如下:

(1)传统非重叠社交圈挖掘方法

主要包括gn算法和标签传播lpa算法等方法,gn算法根据网络中社交圈内部高内聚、社交圈之间低内聚的特点,逐步去除社交圈之间的边,取得相对内聚的社交圈结构,这样边全部去掉后,可获得社交圈最终结构。lpa算法将一个节点的邻居节点的标签中数量最多的标签作为该节点自身的标签。给每个节点添加标签(label)以代表它所属的社交圈,并通过标签的“传播”形成同一标签的“社交圈”结构。但这些方法局限在于只能找到指定用户所在的一个社交圈,无法解决社交网络中社交圈的重叠问题,且计算效率偏低。

(2)传统重叠社交圈挖掘方法

copra算法通过对标签传播lpa算法进行改进,允许一个用户同时存在多个邻居节点的标签,算法跟踪每轮计算结束后网络上还剩下的标签集合的大小,当连续两轮中这个值不变,就认为满足终止条件,标签即社交圈,从而实现重叠社交圈的发现。但是该方法需要预设每个用户最多属于的标签数n,且在邻接节点的标签大于n时会随机选取n个标签,因此该算法存在随机性强、鲁棒性差、较容易把所有节点分配给一个社交圈等缺点,并且可能划分出一些无意义的社交圈。

微博作为一种新兴的社交网络方式,具有信息量庞大、用户关系定义不清晰、网络结构复杂等特点,传统的社交圈挖掘方法并不能有效应用于当前的微博社交圈发现。因此,越来越多对于微博社交圈挖掘的研究开始出现。微博社交圈的挖掘,首先需进行微博社交网络中用户关系的刻画,然后将微博社交网络中关系强度大的用户进行聚类实现社交圈的挖掘工作。

现有的微博社交圈挖掘方法及其不足之处如下:

(1)基于用户兴趣的微博社交圈挖掘方法

从微博用户发表的博文内容、转发和评论的博文内容以及用户的标签中挖掘出用户的兴趣特征,并以关注关系为边,用户之间的兴趣相似度为权重,构建出微博有向加权网络。使用主题模型挖掘出每个节点在各个主题的影响力,选取影响力最大的用户作为初始节点,通过标签传播算法在微博有向加权网络中进行社交圈发现。该方法仅仅考虑了关注关系,没有深入分析用户之间的社交信息,存在相似度定义方式过于单一、用户之间关系强度刻画不够全面的问题,挖掘出的社交圈更趋向于兴趣社交圈。

(2)基于用户相似度的微博社交圈挖掘方法

微博社交圈挖掘方法cmus算法从微博用户的博文内容中挖掘出用户的兴趣主题,从微博用户的关注粉丝列表中挖掘出用户的社交信息。以此为基础计算用户之间的相似度,通过用户之间的相似度衡量用户的关系,分析用户与不同社交圈内用户的关系强度计算出用户与不同社交圈的隶属度,实现了微博重叠社交圈的划分,但其定义的隶属度受社交圈规模的影响较大,导致形成的社交圈规模大多一样,与实际不符。

(3)基于中心节点自我网络发现的微博社交圈挖掘方法:

将微博用户社交圈检测问题转化为用户自我网络中多成员节点聚类问题,综合利用用户个人信息和网络拓扑结构数据实现在线社交网络中的社交圈检测。选取中心节点,通过层层递进实现节点模型的扩展,完成重叠社交圈的挖掘工作。但该方法需要先定义中心节点,且其社交圈发现的效果依赖于中心节点的选择,算法稳定性差。

综上所述,现有技术存在的问题是:

传统非重叠社交圈挖掘方法只能找到指定用户所在的一个社交圈,无法解决社交网络中社交圈的重叠问题,且计算效率偏低;

传统重叠社交圈挖掘方法随机性强、鲁棒性差、较容易把所有节点分配给一个社交圈等缺点,并且可能划分出一些无意义的社交圈;

现有的基于用户兴趣的微博社交圈挖掘方法仅仅考虑了关注关系,没有深入分析用户之间的社交信息,存在相似度定义方式过于单一、用户之间关系强度刻画不够全面的问题,挖掘出的社交圈更趋向于兴趣社交圈;

基于用户相似度的微博社交圈挖掘方法采用的隶属度指标容易受社交圈规模的影响,在社交圈规模较小与时外来用户与社交圈的隶属度普遍较高因此较容易加入,当社交圈规模增大时外来用户与社交圈的隶属度普遍减小,容易漏掉真正属于该社交圈的用户。

基于中心节点自我网络发现的微博社交圈挖掘方法:需要先定义中心节点,且其社交圈发现的效果依赖于中心节点的选择,算法稳定性差。

解决上述技术问题的难度和意义:

现有技术不能解决技术问题的难度在于:

在真实的社交圈中,用户可能同时属于多个社交圈,也可能只属于一个社交圈,非重叠社交圈发现方法所挖掘出的社交圈每个用户只能属于一个社交圈,不符合实际情况。

传统的重叠社交圈需要预先设定用户所属社交圈的最大数目,且具有随机性强,算法不稳定等缺点,往往需要进行多次社交圈的发现才能挖掘出较为真实的社交圈结构。

基于用户兴趣的微博社交圈挖掘方法仅仅考虑了用户的博文内容、转发和评论的博文内容、用户自身标签等兴趣特征,忽略了微博中的关注信息和粉丝信息是构成微博社交网络的基础,用户在此基础上发现自身感兴趣的信息。

基于中心节点自我网络发现的微博社交圈挖掘方法需要先定义中心节点,其社交圈挖掘方法的效果依赖于中心节点的选取,基于用户相似度的微博社交圈挖掘方法定义的隶属度指标受社交圈的规模影响太大,两个算法普适性不强。

解决现有技术的问题后,本发明带来的意义:

本发明在形成新的免疫网络时,会选择不在当前免疫网络内的用户,判定其是否可以加入当前免疫网络,选择的用户可以是已存在于别的免疫网络中的用户,这样保证用户可同时属于多个免疫网络,从而解决了重叠社交圈的发现问题。

本发明通过微博无向加权网络和用户相似性网络的定义后,在用户相似性网络中将亲和力高的用户进行划分形成免疫网络,最后通过网络合并和抑制将相似的免疫网络进行合并,免疫网络即社交圈。本发明不依赖于用户所述社交圈数目的设定和社交圈划分的随机性,从而避免了重叠社交圈算法挖掘的不稳定性。

本发明通过对用户相似度的研究,从用户的关注与粉丝信息中提取用户的社交关系信息,从用户的博文内容中提取用户的兴趣特征词,加权融合用户之间的社交信息相似度和兴趣相似度得出用户之间相似度。本发明对用户相似度的分析更为全面,对用户之间关系强度的刻画更符合实际,为微博中用户社交网络的刻画和社交圈的挖掘奠定了基础。

本发明所实现的社交圈挖掘方法使用邻居抗体阈值,抗体判别数两个算法参数协同控制着免疫网络的规模,将关系强度大的用户划分在一起,最后通过网络合并将相似的免疫网络进行合并来消除社交圈挖掘的随机性。本发明可以随机选取一个任一用户作为初始节点,不需刻意选取中心节点,可靠性和适用性更高。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于人工免疫网络的微博社交圈挖掘方法及系统。

本发明是这样实现的,一种基于人工免疫网络的微博社交圈挖掘方法,包括:

利用人工免疫网络,结合社交网络中用户相似度分析挖掘微博社交网络中的社交圈;

通过提取新浪微博用户的关注信息、粉丝信息和博文主题作为用户社交信息和兴趣信息,并结合社交网络中用户相似度的相关内容,给出融合用户社交信息和兴趣信息的用户相似度的度量方法,描述用户间关系的紧密程度;

在上述基础上,去除关系较弱的边形成以用户为节点、关系强度为权重的用户相似性网络;在用户相似性网络中,两个用户之间存在边,则两个用户存在关系;

再基于人工免疫网络将用户相似性网络中关系强度大的用户进行聚合,并允许一个用户同时属于多个免疫网络。从而实现新浪微博社交网络中的重叠社交圈的挖掘。

进一步,所述基于人工免疫网络的微博社交圈挖掘方法具体包括:

步骤一,获取微博用户特征数据;通过调用微博平台提供的api接口和网络爬虫方法获取相关数据,相关数据包括在不同时间段随机获取指定用户的关注粉丝列表与用户博文内容,剔除掉关注数与粉丝数之和小于5且博文数小于3的用户;

步骤二,用户之间社交信息相似度的计算:将用户的关注信息和粉丝信息作为用户的社交信息,采用余弦相似度的方法来计算用户之间的关注信息相似度和粉丝信息相似度;通过用户之间关注信息相似度和粉丝信息相似度的融合得出用户之间的社交信息相似度;

步骤三,用户之间兴趣相似度的计算:每条博文数据上都有其对应的主题,本发明通过提取用户的博文主题组成用户的兴趣特征词,通过计算两个用户的兴趣特征词之间的编辑距离,得出兴趣特征词之间的相似度,用户间所有兴趣特征词之间相似度的和即为用户间的兴趣相似度;

步骤四,用户之间的关系强度计算:通过用户之间的社交信息相似度和兴趣相似度的加权融合得出;

步骤五,在所有用户两两之间进行相似度的计算后,构成以用户为节点,用户关系为连边,相似度为连边权重的微博用户无向加权网络;

步骤六,邻居用户集合的构建:随机选择不在任一免疫网络内的一个用户作为当前用户,再选取所有与当前用户存在关系的用户,若存在用户b与用户a的相似度大于邻居抗体集合阈值,则将用户b加入用户a的邻居用户抗体集合中;邻居抗体集合为与指定用户关系更紧密的用户集合;

步骤七,随机选择一个不在任一免疫网络内的用户作为当前用户,当前用户与其邻居抗体集合一起形成新的免疫网络,再选择不在当前免疫网络模型中的所有用户,若存在用户c与当前模型内存在关系的用户数大于抗体判别数,则将用户c加入到当前免疫网络内;

步骤八,判断是否所有用户都属于某个免疫网络内;若是,则进行步骤九,否则,重复步骤七;

步骤九,网络的合并与抑制:若两个免疫网络的相同用户数过多,这两个免疫网络属于同一个免疫网络,进行合并;在所有用户都属于某个免疫网络后,遍历每两个免疫网络,若两个免疫网络中相同的用户数大于网络合并判别数,这两个免疫网络相似,将相似的免疫网络进行合并。

进一步,步骤二中,用户之间社交信息相似度的计算方法包括:

用户之间的社交信息相似度=a*关注信息相似度+b*粉丝信息相似度,其中a和b为系数,满足a+b=1。

进一步,步骤四,用户之间的关系强度计算方法包括:

用户之间的关系强度=c*社交信息相似度+d*兴趣相似度,其中c代表用户社交信息相似度的权值,d代表兴趣相似度的权值,其中c和d为系数,满足c+d=1。

进一步,步骤六,邻居用户集合的构建中,邻居抗体集合阈值的计算方法包括:

邻居抗体集合阈值=α×用户相似度的平均值avg,邻居抗体集合内的关系更紧密,邻居抗体集合阈值要比相似度平均值avg更大,即α>1;

步骤七,抗体判别数的计算方法包括:

抗体判别数=β×当前社交圈内的内的节点数且0<β<1,抗体判别数与当前免疫网络内的节点数成正比,通过调节参数β控制抗体判别数的大小。

步骤九,网络的合并与抑制中,网络合并判别数的计算方法包括:

网络合并判别数=θ×较少免疫网络内的用户数且0<θ<1,网络合并判别数的值与两个免疫网络中较小免疫网络内的内的用户数成正比;通过调节参数θ控制网络合并判别数的大小。

本发明的另一目的在于提供一种计算机程序,所述计算机程序实现所述的基于人工免疫网络的微博社交圈挖掘方法。

本发明的另一目的在于提供一种所述基于人工免疫网络的微博社交圈挖掘方法的信息数据处理终端。

本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于人工免疫网络的微博社交圈挖掘方法。

本发明的另一目的在于提供一种实现所述基于人工免疫网络的微博社交圈挖掘方法的基于人工免疫网络的微博社交圈挖掘系统,所述基于人工免疫网络的微博社交圈挖掘系统包括:

获取微博用户特征数据模块,用于通过调用微博平台提供的api接口和网络爬虫方法获取相关数据,相关数据包括在不同时间段随机获取指定用户的关注粉丝列表与用户博文内容,剔除掉关注数与粉丝数之和小于5且博文数小于3的用户;

用户之间相似度的计算模块,用于用户之间社交信息相似度的计算;将用户的关注信息和粉丝信息作为用户的社交信息,采用余弦相似度的方法来计算用户之间的关注信息相似度和粉丝信息相似度;

还用于用户之间兴趣相似度的计算,通过提取用户的博文主题组成用户的兴趣特征词,通过计算两个用户的兴趣特征词之间的编辑距离,得出兴趣特征词之间的相似度,用户间所有兴趣特征词之间相似度的和为用户间的兴趣相似度;编辑距离用于评价两个字符串间的绝对差异,评价两个自然语言词语之间的相似度;

还用于用户之间的关系强度计算,通过用户之间的社交信息相似度和兴趣相似度的加权融合得出;

用户相似性网络构建模块,用于在所有用户两两之间进行相似度的计算后,构成以用户为节点,用户关系为连边,相似度为连边权重的微博用户无向加权网络;

基于人工免疫网络的社交圈挖掘模块,用于邻居用户集合的构建:随机选择不在任一免疫网络内的一个用户作为当前用户,选取所有与当前用户存在关系的用户,若存在用户b与用户a的相似度大于邻居抗体集合阈值,则将用户b加入用户a的邻居用户抗体集合中;

进一步,基于人工免疫网络的社交圈挖掘模块,还用于随机选择一个不在任一免疫网络内的用户作为当前用户,当前用户与其邻居抗体集合一起形成新的免疫网络,选择不在当前免疫网络模型中的所有用户,若存在用户c与当前模型内存在关系的用户数大于抗体判别数,则将用户c加入到当前免疫网络内;

还用于判断是否所有用户都属于某个免疫网络内;

还用于网络的合并与抑制,若两个免疫网络的相同用户数过多,则这两个免疫网络应属于同一个免疫网络,进行合并;在所有用户都属于某个免疫网络后,遍历每两个免疫网络,若两个免疫网络中相同的用户数大于网络合并判别数,则认为这两个免疫网络是相似的,将相似的免疫网络进行合并。

用户相似性网络构建模块中,本发明认为用户之间的相似度若大于所有用户相似度的平均值,则两个用户就存在关系,且微博用户无向加权网络中关系较弱的边对于社交圈的挖掘没有实质性的作用,因此本发明去除用户间相似度较弱的边(去除相似度小于0.05的边),取余下用户间相似度的平均值avg,然后去除微博用户无向加权网络中相似度小于平均值avg的边,形成用户相似性网络。在用户相似性网络中,只要两个用户存在连边,则代表这两个用户存在关系,用户之间的相似度为连边的权重。

网络合并后免疫网络中会存在相同的用户,则进行网络抑制删除其中一个。来保持每个免疫网络内用户的唯一性。

网络的合并与抑制后,还需进行:实验评价及指标:

针对检测本方法的有效性,有如下评价指标。

(1)采用平衡误差率ber衡量预测社交圈集合b与真实社交圈集合p的相似程度,它是广泛应用于社交圈预测的评价指标。平衡误差率ber的定义如下:

其中,b为集合b中的一个预测社交圈,p为对应的一个真实社交圈。指真实社交圈中未被预测到的节点比例,指预测社交圈中预测错误的比例。通过比较预测社交圈集合b和真实社交圈集合p之间的相似性来验证社交圈挖掘算法的准确性。

预测社交圈b和真实社交圈p的相似性的定义如下:

其中f是集合b与集合p之间的部分映射,|f|=min(|b|,|p|)。当|b|<|p|时,对于每一个预测社交圈b∈b,都要找到一个对应的真实社交圈p∈p。当|b|<|p|时,不惩罚多找到的社交圈,因为多找到的社交圈可能是尚未分组的真实社交圈。预测社交圈集合b与真实社交圈集合p的相似性越高,则算法的准确率越大。

(2)采用紧密度(partitiondensity)d指标衡量重叠社交圈的划分效果.该指标用来衡量无权无向图的划分。假设一个无向无权网络含有m条边,该网络划分为{c1,c2,…,ct}个社交圈,则第i个社交圈的紧密度di如下式所示。

其中mi和ni分别表示第i个社交圈的边数和节点数,当ni=2时,di的值为0。划分紧密度d为所有社交圈划分紧密度的加权平均。每个社交圈的权值为社交圈内的边数与整个网络边数的权重总数,整个网络的划分紧密度如下式所示。

综上所述,本发明的优点及积极效果为:

本发明将用户的关注信息和粉丝信息作为用户的社交信息,从博文内容中挖掘出用户的兴趣信息。通过对用户之间的社交信息和兴趣信息的分析进行用户之间相似度的计算,以相似度来度量用户之间的关系强度,对用户之间的关系强度进行了较为全面的刻画。并在此基础上构建以用户为节点,关系强度为权重的微博无向加权网络,去除无向加权网络中关系强度较小的边,得到微博用户相似性网络。采用具有较强自适应性和自调节性的人工免疫方法,将生物学免疫网络的原理及作用机制应用在微博用户的相似性聚类上,将关系强度大的用户划分在一起,并在划分时允许一个用户同时属于多个社交圈从而实现重叠社交圈的挖掘。本发明可随机选择用户作为初始节点,最终将相似的社交圈进行合并消除社交圈挖掘过程中的随机性,算法的可靠性和鲁棒性更高。

本发明运用用户相似度进行用户之间关系强度的度量,提出了一种挖掘微博社交网络中社交圈的人工免疫方法。通过分析用户之间的社交信息和兴趣信息进行用户之间社交信息相似度和用户兴趣相似度的计算,加权融合后将得出的用户之间的相似度作为用户之间的关系强度。以用户为节点、用户相似度作为权重进行微博无向加权网络的刻画,并去除网络中权重较小的边形成用户相似性网络。基于人工免疫网络思想将用户相似性网络中关系强度大的用户进行聚类,挖掘出新浪微博用户相似性网络中的重叠社交圈,与现有技术相比本发明的主要优点如下。

(1)本发明基于人工免疫网络模型将关系强度高的用户聚合在一起,并在聚合过程中允许一个用户存在于多个社交圈,与传统的非重叠社交圈挖掘方法相比,本发明实现了微博重叠社交圈的挖掘。

(2)本发明深入分析用户之间的社交信息和兴趣,通过融合用户之间的社交信息相似度和兴趣相似度来度量用户之间的关系强度,与基于用户兴趣的微博社交圈挖掘方法相比,本发明用户之间的关系刻画更为全面,挖掘出的社交圈更趋向于真实社交圈。

(3)本发明通过微博无向加权网络和用户相似性网络的定义,可随机选择用户作为初始节点,根据外来用户与社交圈内用户的关系数判断其是否加入,最后通过网络合并和抑制将相似的社交圈进行合消除社交圈过程中的随机性,与基于中心节点的微博社交圈挖掘方法相比,不依赖于中心节点的选择,与传统的重叠社交圈挖掘方法相比,本发明的鲁棒性和可靠性更高。

(4)本发明借鉴生物免疫系统的思想,融合用户之间的社交信息相似度和兴趣相似度进行用户之间关系强度的度量,基于用户之间的关系运用人工免疫网络的思想设计出一种微博社交网络中的用户社交圈挖掘算法。本发明系统性的考察了基于两个单独的相似度和融合的相似度的社交圈挖掘算法挖掘出的社交圈与真实社交圈的相似性,实验结果表明,融合的相似度对于社交圈的挖掘的检测率最高,基于社交关系相似度挖掘出来的社交圈有一定的参考价值。为了进一步验证基于人工免疫网络的社交圈挖掘算法的有效性,将它与其他社交圈识别算法挖掘出来的社交圈结果集合分别在与真实社交圈的相似性和社交圈划分紧密度上进行比较,本发明方法取得了更好的效果,证明了本发明的有效性。

附图说明

图1是本发明实施例提供的基于人工免疫网络的微博社交圈挖掘方法流程图。

图2是本发明实施例提供的基于人工免疫网络的微博社交圈挖掘原理图。

图3是本发明实施例提供的新抗体加入邻居抗体集合图。

图4是本发明实施例提供的免疫网络的合并图。

图5是本发明实施例提供的实验一融合相似度指标有效性验证图。

图6是本发明实施例提供的实验二基于免疫网络的社交圈挖掘算法准确性验证图。

图7是本发明实施例提供的实验二基于免疫网络的社交圈挖掘算法紧密度验证图。

图8是本发明实施例提供的基于人工免疫网络的微博社交圈挖掘系统示意图。

图中:1、获取微博用户特征数据模块;2、用户之间相似度的计算模块;3、用户相似性网络构建模块;4、基于人工免疫网络的社交圈挖掘模块。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

人工免疫网络(immunenetwork),是人工免疫系统中将免疫网络思想应用到计算机领域的一种模型;

gn算法(findingandevaluatingcommunitystructureinnetworks),一种社交圈挖掘中的经典聚类算法;

cmus(circleminingalgorithmbasedonusersimilarity),一种基于用户相似度的微博用户社交圈挖掘算法。

本发明实施例提供的基于人工免疫网络的微博社交圈挖掘方法,利用人工免疫网络的思想,结合社交网络中用户相似度分析来有效地挖掘出微博社交网络中的社交圈。

通过提取新浪微博用户的关注信息、粉丝信息和博文主题作为用户社交信息和兴趣信息,并结合社交网络中用户相似度的相关研究,给出一种融合用户社交信息和兴趣信息的用户相似度的度量方法,用来描述用户间关系的紧密程度。在此基础上,去除关系较弱的边形成以用户为节点、关系强度为权重的用户相似性网络。在用户相似性网络中,只要两个用户之间存在边,则代表两个用户存在关系。基于人工免疫网络思想将用户相似性网络中关系强度大的用户进行聚合,并允许一个用户同时属于多个免疫网络,免疫网络即社交圈,从而实现新浪微博社交网络中的重叠社交圈的挖掘。

如图1,本发明实施例提供的所述基于人工免疫网络的微博社交圈挖掘方法具体包括:

s101:获取微博用户特征数据;通过调用微博平台提供的api接口和网络爬虫方法获取相关数据,相关数据包括在不同时间段随机获取指定用户的关注粉丝列表与用户博文内容,剔除掉关注数与粉丝数之和小于5且博文数小于3的用户;

s102:用户之间社交信息相似度的计算:将用户的关注信息和粉丝信息作为用户的社交信息,采用余弦相似度的方法来计算用户之间的关注信息相似度和粉丝信息相似度;通过用户之间关注信息相似度和粉丝信息相似度的融合得出用户之间的社交信息相似度;

s103:用户之间兴趣相似度的计算:每条博文数据上都有其对应的主题,本发明通过提取用户的博文主题组成用户的兴趣特征词,通过计算两个用户的兴趣特征词之间的编辑距离,得出兴趣特征词之间的相似度,用户间所有兴趣特征词之间相似度的和即为用户间的兴趣相似度;

s104:用户之间的关系强度计算:通过用户之间的社交信息相似度和兴趣相似度的加权融合得出;

s105:在所有用户两两之间进行相似度的计算后,构成以用户为节点,用户关系为连边,相似度为连边权重的微博用户无向加权网络;

s106:邻居用户集合的构建:随机选择不在任一免疫网络内的一个用户作为当前用户,再选取所有与当前用户存在关系的用户,若存在用户b与用户a的相似度大于邻居抗体集合阈值,则将用户b加入用户a的邻居用户抗体集合中;邻居抗体集合为与指定用户关系更紧密的用户集合;

s107:随机选择一个不在任一免疫网络内的用户作为当前用户,当前用户与其邻居抗体集合一起形成新的免疫网络,再选择不在当前免疫网络模型中的所有用户,若存在用户c与当前模型内存在关系的用户数大于抗体判别数,则将用户c加入到当前免疫网络内;

s108:判断是否所有用户都属于某个免疫网络内;若是,则进行步骤s109,否则,重复步骤s107;

s109:网络的合并与抑制:若两个免疫网络的相同用户数过多,这两个免疫网络属于同一个免疫网络,进行合并;在所有用户都属于某个免疫网络后,遍历每两个免疫网络,若两个免疫网络中相同的用户数大于网络合并判别数,这两个免疫网络相似,将相似的免疫网络进行合并。

进一步,步骤二中,用户之间社交信息相似度的计算方法包括:

用户之间的社交信息相似度=a*关注信息相似度+b*粉丝信息相似度,其中a和b为系数,满足a+b=1。

进一步,步骤四,用户之间的关系强度计算方法包括:

用户之间的关系强度=c*社交信息相似度+d*兴趣相似度,其中c代表用户社交信息相似度的权值,d代表兴趣相似度的权值,其中c和d为系数,满足c+d=1。

进一步,步骤六,邻居用户集合的构建中,邻居抗体集合阈值的计算方法包括:

邻居抗体集合阈值=α×用户相似度的平均值avg,邻居抗体集合内的关系更紧密,邻居抗体集合阈值要比相似度平均值avg更大,即α>1;

步骤七,抗体判别数的计算方法包括:

抗体判别数=β×当前社交圈内的内的节点数且0<β<1,抗体判别数与当前免疫网络内的节点数成正比,通过调节参数β控制抗体判别数的大小。

步骤九,网络的合并与抑制中,网络合并判别数的计算方法包括:

网络合并判别数=θ×较少免疫网络内的用户数且0<θ<1,网络合并判别数的值与两个免疫网络中较小免疫网络内的内的用户数成正比;通过调节参数θ控制网络合并判别数的大小。

本发明的另一目的在于提供一种计算机程序,所述计算机程序实现所述的基于人工免疫网络的微博社交圈挖掘方法。

本发明的另一目的在于提供一种所述基于人工免疫网络的微博社交圈挖掘方法的信息数据处理终端。

本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于人工免疫网络的微博社交圈挖掘方法。

如图8,本发明实施例提供的基于人工免疫网络的微博社交圈挖掘系统包括:

获取微博用户特征数据模块1,用于通过调用微博平台提供的api接口和网络爬虫方法获取相关数据,相关数据包括在不同时间段随机获取指定用户的关注粉丝列表与用户博文内容,剔除掉关注数与粉丝数之和小于5且博文数小于3的用户;

用户之间相似度的计算模块2,用于用户之间社交信息相似度的计算;将用户的关注信息和粉丝信息作为用户的社交信息,采用余弦相似度的方法来计算用户之间的关注信息相似度和粉丝信息相似度;

还用于用户之间兴趣相似度的计算,通过提取用户的博文主题组成用户的兴趣特征词,通过计算两个用户的兴趣特征词之间的编辑距离,得出兴趣特征词之间的相似度,用户间所有兴趣特征词之间相似度的和为用户间的兴趣相似度;编辑距离用于评价两个字符串间的绝对差异,评价两个自然语言词语之间的相似度;

还用于用户之间的关系强度计算,通过用户之间的社交信息相似度和兴趣相似度的加权融合得出;

用户相似性网络构建模块3,用于在所有用户两两之间进行相似度的计算后,构成以用户为节点,用户关系为连边,相似度为连边权重的微博用户无向加权网络;

基于人工免疫网络的社交圈挖掘模块4,用于邻居用户集合的构建:随机选择不在任一免疫网络内的一个用户作为当前用户,选取所有与当前用户存在关系的用户,若存在用户b与用户a的相似度大于邻居抗体集合阈值,则将用户b加入用户a的邻居用户抗体集合中;

基于人工免疫网络的社交圈挖掘模块,还用于随机选择一个不在任一免疫网络内的用户作为当前用户,当前用户与其邻居抗体集合一起形成新的免疫网络,选择不在当前免疫网络模型中的所有用户,若存在用户c与当前模型内存在关系的用户数大于抗体判别数,则将用户c加入到当前免疫网络内;

还用于判断是否所有用户都属于某个免疫网络内;

还用于网络的合并与抑制,若两个免疫网络的相同用户数过多,则这两个免疫网络应属于同一个免疫网络,进行合并;在所有用户都属于某个免疫网络后,遍历每两个免疫网络,若两个免疫网络中相同的用户数大于网络合并判别数,则认为这两个免疫网络是相似的,将相似的免疫网络进行合并。

下面结合具体实施例对本发明作进一步描述。

图2是本发明实施例提供的基于人工免疫网络的微博社交圈挖掘原理图。

本发明实施例提供的基于人工免疫网络的微博社交圈挖掘方法,包括:

步骤1,新浪微博数据的获取与预处理:

本发明使用聚焦网络爬虫,通过调用新浪微博平台提供的api接口和网络爬虫方法实现相关数据的获取。实现针对微博的用户信息爬取。

本发明指定的用户微博账号作为种子节点,在不同时间段随机获取到指定用户的关注粉丝列表内用户节点的数据,其中包含用社交信息和用户兴趣信息。社交信息即用户的关注信息和粉丝信息,用户兴趣信息即用户的博文内容。当一个微博用户的关注、粉丝数量和博文数量都非常少时,该用户稀疏的交往关系和兴趣信息对于后面的研究没有多大意义。

因此,本发明人工剔除关注数与粉丝数之和小于5且博文数小于3的用户节点,并对用户节点进行人工标注得到真实的社交圈集合。

步骤2,计算用户间的社交信息相似度

本发明考虑将用户的关注信息和粉丝信息作为用户的社交信息,通过用户之间关注信息相似度和粉丝信息相似度的融合得出用户之间的社交信息相似度。对于两个用户i与j,其社交信息相似度定义为关注信息相似度定义为粉丝信息相似度定义为各相似度的计算公式如下。

关注相似度的计算:

其中fows(i)为用户i的关注总人数,fows(j)为用户j的关注总人数,fows(i,j)为用户i与j的共同关注数。

粉丝相似度的计算:

其中fans(i)为用户i粉丝总数,fans(j)为用户j粉丝总数,fans(i,j)为用户i与j的共同粉丝数。

将上述关注相似度和粉丝相似度融合得出社交关系相似度

其中a和b是社交信息相似度的权值,a+b=1。由于用户的关注行为往往是一种有目的性的主观行为,而被关注行为由其他用户的产生并不受当前用户自身控制,相较于被关注行为,关注行为更具有主动性,更能体现用户的主观思想,具有相同关注用户的人往往对同一类型的事物感兴趣或同时认识某一个人,更容易属于同一社交圈。因此,本发明认为关注信息相似度和粉丝信息相似度对社交信息相似度的贡献比应设为3:2比较合适,这样可以设a=0.6,b=0.4。

步骤3,计算用户间的兴趣相似度

首先通过提取用户所发微博的主题作为用户的兴趣特征词,兴趣特征词之间的相似度采用评价两个字符间的绝对差异的编辑距离来计算。对于两个用户i和j,其初始兴趣相似度定义为i和j的初始兴趣相似度的计算如下:

其中用户i的兴趣特征词集合为wi,用户j的兴趣特征词集合为wj。用户i的第m个兴趣特征词为wi(m),用户j的第n个兴趣特征词为wj(n),wi(m)与wj(n)之间的编辑距离表示为distance(wi(m),wj(n))。l(x)表示x的长度。用户i和j的兴趣相似度越大,则其兴趣关系强度就越高。

再将得出的兴趣相似度归一化,计算得到最终的用户兴趣相似度

其中,max是所有用户之间初始兴趣相似度的最大值,min是最小值。

步骤4,社交信息相似度与兴趣相似度的融合:

通过用户之间的社交信息相似度和兴趣相似度的加权融合得出用户间的相似度,对于两个用户i和j,定义其相似度为sij,用户相似度的计算如下:

其中,c代表用户社交信息相似度的权值,d代表兴趣相似度的权值。c+d=1。用户之间的相似度越高,

则用户之间的关系强度越大。社交信息是社交网络中用户关系的基础,有相同社交信息的用户比有相同兴趣的用户更容易认识,相较于用户兴趣,用户之间的社交关系对用户之间关系强度的影响更大。因此,本发明认为社交信息相似度和粉丝相似度对用户之间相似度的贡献比应设为3:2比较合适,这样我们可以设c=0.6,d=0.4。

步骤5,用户相似性网络的构建:

在所有用户两两之间进行相似度的计算后,构成微博用户无向加权网络g=(v,e,s),其中v={v1,v2,v3…vn},vi∈v代表用户节点,e为连边集合,s为连边的权重,本发明以用户之间的相似度作为连边权重。

无向加权网络中关系较弱的边对于以后社交圈的挖掘没有实质性的作用,因此本发明去除用户间相似度较弱的边(去除相似度小于0.05的边)。取余下用户间相似度的平均值avg,如果两个用户之间的相似度大于平均值avg,则认为两个用户之间存在关系,本发明去除微博用户无向加权网络g=(v,e,s)中相似度小于平均值avg的边,构成用户相似性网络u=(v,e,s)。在用户相似性网络中,只要两个用户存在连边,则代表这两个用户存在关系,用户间的相似度为连边的权重。

步骤6,基于人工免疫网络的社交圈挖掘算法:

(1)邻居抗体集合的构建:邻居抗体集合是免疫网络中比较特殊的群体,指定用户与其邻居抗体集合内的用户要比其他的用户有更紧密的关系。对于用户a,其邻居抗体集合即是与用户a关系更紧密的用户集合。用户a的邻居抗体集合构建方法如下。

选取所有与用户a存在关系的用户,若存在用户b与用户a的相似度大于邻居抗体集合阈值,则将用户b加入用户a的邻居用户抗体集合中。邻居抗体集合阈值的计算方法如下。

邻居抗体集合阈值=α×用户相似度的平均值avg,邻居抗体集合内的关系更紧密,则邻居抗体集合阈值要比相似度平均值avg更大,即α>1,通过调节参数α可以控制邻居抗体集合阈值的大小。通过多次实验对比与总结,最终将α取值为1.2。

(2)免疫网络模型的构建。选在不在当前免疫网络模型中的用户,若存在用户c与该模型内存在关系的用户数大于抗体判别数,则将用户c加入到免疫网络模型m内。抗体判别数的计算方法如下。

抗体判别数=β×当前社交圈内的内的节点数且0<β<1,抗体判别数与当前免疫网络内的节点数成正比,通过调节参数β可以控制抗体判别数的大小。

随着免疫网络模型规模的增大,外来用户需与免疫网络模型内的更多用户有关系才能加入进来。

如图3所示,节点表示用户,实心点则代表已经存在于某免疫网络中的用户,连接线表示用户之间存在关系,当β取值为0.4时,外来用户需与免疫网络内的较多用户有关系才能加入进来。通过多次实验对比与总结,最终将β取值为0.5。

(3)判断是否所有用户都属于某个免疫网络内。若是,则进行(4);否则,重复(2)。

(4)网络的合并与抑制:当两个免疫网络的相同节点数过多时,需要合并。具体实现方法为在无新抗体

加入邻居抗体集合后,遍历每两个免疫网络,若两个免疫网络中相同的抗体数大于网络合并判别数,则认为这两个免疫网络是相似的,将相似的免疫网络进行合并。网络合并判别数的计算方法如下。

网络合并判别数=θ×较少免疫网络内的用户数且0<θ<1,网络合并判别数的值与两个免疫网络中较小免疫网络内的内的用户数成正比。通过调节参数θ可以控制网络合并判别数的大小。其中网络合并判别数θ的值与两个免疫网络中较小免疫网络内的内的节点数成正比。

如图4所示,当θ取值为0.5时,两个免疫网络内的相同节点数超过了网络合并判别数,将这两个免疫网络合并。最终挖掘出的免疫网络模型即社交圈。通过多次实验对比与总结,最终将θ取值为0.8。

步骤7,实验与分析:

实验一:融合相似度指标有效性验证实验

实验分别基于融合的用户之间的相似度、基于单独的用户社交关系相似度、基于单独的用户兴趣相似度,运用本发明的社交圈挖掘算法设置对比试验,其中融合相似度方法和社交关系相似度方法采用的权值矩阵在上文中进行了说明。三种计算相似度的权值矩阵如下:

上表中用户间社交关系相似度通过用户间的关注相似度和粉丝相似度加权融合得出。这两个相似度所用的权值如下:

通过步骤1-6进行多次实验,在最终形成的社交圈结果集合中,每种方法得到的最优社交圈相似性(1-ber)结果如图5所示,基于融合相似度的社交圈挖掘方法比单独的基于兴趣相似度或社交关系相似度在社交圈结果的准确率上更高。其中单纯基于社交关系相似度的挖掘出来的社交圈结果有一定的准确性,单纯基于兴趣相似度的挖掘方法表现最差。

实验二:基于免疫网络的社交圈挖掘算法有效性验证实验

将本方法与基于用户相似度的社交圈挖掘算法cmus算法和newman提出的经典快速聚类gn算法进行比较,在最终形成的社交圈结果集合中,每种方法得到的最优社交圈相似性(1-ber)如图6所示,每种方法所得到的最优紧密度d

如图7所示。可以看到基于人工免疫网络的社交圈挖掘算法与cmus算法和经典快速聚类算法相比有着较高的准确率。另外cmus算法在紧密度方面表现最差,而基于人工免疫网络的社交圈挖掘算法的所发现的社交圈紧密度均优于其他两个方法。

下面结合具体实验对本发明作进一步描述。

本发明通过融合用户社交信息与兴趣相似度,并借鉴人工免疫网络思想实现微博社交圈的挖掘。实验评价指标包括预测社交圈与真实社交圈的相似性(1-ber)和社交圈划分紧密度d。每个指标值越高,则社交圈挖掘的效果越好。

预测社交圈与真实社交圈的相似性(1-ber)用来衡量衡量预测社交圈集合与真实社交圈集合的相似程度。社交圈划分紧密度d即当前社交圈内的边数与整个网络边数的比值,它为所有社交圈划分紧密度的加权平均,该指标用来衡量无权无向图的划分。

本发明分别进行基于单独的社交关系相似度、单独的兴趣相似度与融合相似度的社交圈挖掘算法的对比实验,比较每个实验结果中社交圈与真实社交圈的相似性(1-ber),实验结果表明,融合的相似度对于社交圈挖掘的准确率最高。为了进一步验证基于人工免疫网络的社交圈挖掘算法的有效性,将它与其他社交圈识别算法挖掘出来的社交圈结果集合在预测社交圈与真实社交圈的相似性(1-ber)和社交圈划分紧密度d进行比较。实验结果表明本发明方法挖掘的社交圈在相似性(1-ber)和紧密度d上效果更好。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1