基于开发者协作网络的核心开发者识别方法、装置和设备制造方法及图纸

技术编号:37140318 阅读:12 留言:0更新日期:2023-04-06 21:44
本申请涉及互联网技术领域的一种基于开发者协作网络的核心开发者识别方法、装置和设备。所述方法针对存在大量开发者的开源项目中核心开发者识别困难的问题,根据开发者的参与贡献的协作关系,构建了开发者的无向有权协作网络,基于无向有权协作网络提出了识别核心开发者的开发者重要性指标,根据开发者重要性指标对开发者进行排名,并识别出核心开发者。相较于以往的评估方法,综合考虑参与贡献的开发者的个人影响力和协作影响力,利用复杂网络系统对开发者行为进行全面解释,省去了对大量贡献数据整理分析的繁琐步骤,节约了大量资源,提高了对开发者重要性判断的准确性和效率,提升了核心开发者识别的效率。升了核心开发者识别的效率。升了核心开发者识别的效率。

【技术实现步骤摘要】
基于开发者协作网络的核心开发者识别方法、装置和设备


[0001]本申请涉及互联网
,特别是涉及一种基于开发者协作网络的核心开发者识别方法、装置和设备。

技术介绍

[0002]近年来,随着开发模式的不断发展,开源逐渐走入了大众视野。以GitHub、GitLink、OSchina为典型代表的开源社区孕育了一大批优秀的开源软件。但同时,开源项目的开发存在着门槛低、自由参与的特征,参与的开发者具有自发性和不确定性等性质,使得部分项目开发效率低下、开发持续性差、项目质量难以保证等问题,而废弃项目则浪费了大量的资源。为了防止优秀的核心开发者流失,促进项目开发活力,提升开发者协同合作水平,改善开源项目的管理质量,部分开源社区对开发者能力进行画像,以此来判断开发者是否重要。开源社区给定开发者的属性标签,一定程度上可以缓解协作中存在的开发效率低的问题,但是由于标签本身的局限性,所产生的开发者属性趋于扁平化,没有充分考虑开发者行为和开发者协作关系本身,仅仅依靠开发者历史贡献数据进行了身份标识,特别对于外围开发者中具有突出能力和贡献的核心开发者的识别能力较差。如果能根据开源项目中开发者的贡献构建开发者协作网络,对于处于“枢纽节点”上的核心开发者则一目了然,可以极大的提高核心开发者定位的准确性和效率。
[0003]目前,对于开发者关键性识别的方法主要从两个角度来构建:基于历史贡献数据的角度和基于开发者关系属性的角度。基于历史贡献数据的角度是根据开发者贡献的文件数量、代码行数,参与的问题讨论程度等评定开发者的贡献。基于开发者关系属性的角度是通过开发者关系网络、开发者技能属性或者开发者责任划分等构建开发者类型,通过不同评估条件下给出衡量开发者的指标,对于不同类型的开发者进行评级来判断开发者的重要性。一般来说,基于历史贡献数据的方法通常是根据客观的数据,通过开发者提交了多少代码、做了多少贡献来决定其重要性的,该类方法虽然客观直接,但是往往会忽略开发者行为存在的自发性和主观性,忽视开发者之间存在的协作关系。基于开发者关系属性的角度则充分了考虑了这一点,但同时,单纯的考虑开发者关系而弱化开发者的历史贡献也是不可取的。

技术实现思路

[0004]基于此,有必要针对上述技术问题,充分利用开源社区所提供的历史数据内容,结合复杂系统网络科学的研究方法,提供了一种基于开发者协作网络的核心开发者识别方法、装置和设备。
[0005]一种基于开发者协作网络的核心开发者识别方法,所述方法包括:
[0006]获取预定开源项目的每个事件集下每个事件的数据,将所述事件的数据处理为指定格式的记录;根据所有所述指定格式的记录构建本地数据库。
[0007]根据设定的时间片对所述本地数据库中的记录进行分组,得到时间片分组,在不
同所述时间片分组内按照事件集进行二次分组,将得到的不同事件集分组内的事件的发起人两两匹配,得到开发者数据对。
[0008]以开发者数据对中包括的开发者为节点,以所述开发者数据对作为连边,构建无向协作网络。
[0009]对所述无向协作网络的连边进行遍历,根据连边对应的所述开发者数据对在不同事件集分组中重复出现的次数,确定对应连边权重,并根据所述连边权重更新所述无向协作网络的连边权重。
[0010]根据得到的无向有权协作网络,计算开发者个人影响力因子和协作影响力因子。
[0011]根据所述开发者个人影响力因子和所述协作影响力因子,确定无向有权协作网络中开发者的开发者重要性指标。
[0012]根据所述开发者重要性指标确定开发者重要性排名,并识别出核心开发者。
[0013]在其中一个实施例中,获取预定开源项目的每个事件集下每个事件的数据,将所述事件的数据处理为指定格式的记录;根据所有所述指定格式的记录构建本地数据库,包括:
[0014]利用爬虫程序爬取预定开源项目的每个数据集下每个事件的数据。
[0015]将每个所述事件的数据处理为json格式记录。
[0016]将事件集下包含的事件的json格式的记录作为存储数据的最小单位存储在本地数据库中;事件的json格式记录的属性包括:与对应的事件集标识对应的标识属性,事件的发起人以及事件发生时间。
[0017]在其中一个实施例中,根据设定的时间片对所述本地数据库中的记录进行分组,得到时间片分组,在不同所述时间片分组内按照事件集进行二次分组,将得到的不同事件集分组内的事件的发起人两两匹配,得到开发者数据对,包括:
[0018]根据设定的时间片对所述本地数据库中的每条记录进行分组,得到时间片分组。
[0019]将同一时间片分组内的事件数据按照事件集标识进行二次分组,将事件集标识一致的事件数据作为一组,得到事件集分组。
[0020]将同一所述事件集分组内的事件的发起人两两匹配,得到开发者数据对;所述开发者数据对的数据格式为:
[0021]{[(x0,y0),(x1,y1)...],[(z0,m0),(z1,m1)...],...}
[0022]其中,x0、x1、

,y0、y1、

,z0、z1、

,m0、m1、

均为事件的发起人,()为同一时间片下同一事件集内的开发者数据对,[]为同一时间片下的不同事件集分组。
[0023]在其中一个实施例中,对所述无向协作网络的连边进行遍历,根据连边对应的所述开发者数据对在不同事件集分组中重复出现的次数,确定对应连边权重,并根据所述连边权重更新所述无向协作网络的连边权重,包括:
[0024]检查所述无向协作网络的连边所对应的开发者数据对在对应的时间片分组、事件集分组中是否重复出现,每重复出现一次则该连边权重加1,直到所述无向协作网络的所有连边遍历为止,得到所述无向协作网络中所有连边的连边权重。
[0025]根据所述连边权重对所述无向协作网络的连边权重进行更新。
[0026]在其中一个实施例中,根据得到的无向有权协作网络,计算开发者个人影响力因子和协作影响力因子,包括:
[0027]根据无向有权协作网络,计算开发者个人影响力因子和协作影响力因子;所述开发者个人影响力因子的表达式为:
[0028][0029]其中,T(i)为节点i对应的开发者个人影响力因子,k(i)为节点i的度,DG(i)为无向有权协作网络中删除节点i后的最大连通子图,G为无向有权协作网络的初始图。
[0030]所述协作影响力因子的表达式为:
[0031]I(i)=∑
i,j∈S
W(i,j)
·
k(j)
[0032]其中,I(i)为节点i对应的开发者的协作影响力因子,W(i,j)是节点j到节点i的权重比率,k(j)是节点j的度,S是节点i和节点j所在的连通图。
[0033]在其中一个实施例中,当节点j为节点i的邻居时,将节点j和节点i之间的权重,除以节点i的所有邻居和节点i之间的权重和,得到节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于开发者协作网络的核心开发者识别方法,其特征在于,所述方法包括:获取预定开源项目的每个事件集下每个事件的数据,将所述事件的数据处理为指定格式的记录;根据所有所述指定格式的记录构建本地数据库;根据设定的时间片对所述本地数据库中的记录进行分组,得到时间片分组,在不同所述时间片分组内按照事件集进行二次分组,将得到的不同事件集分组内的事件的发起人两两匹配,得到开发者数据对;以开发者数据对中包括的开发者为节点,以所述开发者数据对作为连边,构建无向协作网络;对所述无向协作网络的连边进行遍历,根据连边对应的所述开发者数据对在不同事件集分组中重复出现的次数,确定对应连边权重,并根据所述连边权重更新所述无向协作网络的连边权重;根据得到的无向有权协作网络,计算开发者个人影响力因子和协作影响力因子;根据所述开发者个人影响力因子和所述协作影响力因子,确定无向有权协作网络中开发者的开发者重要性指标;根据所述开发者重要性指标确定开发者重要性排名,并识别出核心开发者。2.根据权利要求1所述的方法,其特征在于,获取预定开源项目的每个事件集下每个事件的数据,将所述事件的数据处理为指定格式的记录;根据所有所述指定格式的记录构建本地数据库,包括:利用爬虫程序爬取预定开源项目的每个数据集下每个事件的数据;将每个所述事件的数据处理为json格式记录;将事件集下包含的事件的json格式的记录作为存储数据的最小单位存储在本地数据库中;事件的json格式记录的属性包括:与对应的事件集标识对应的标识属性,事件的发起人以及事件发生时间。3.根据权利要求1所述的方法,其特征在于,根据设定的时间片对所述本地数据库中的记录进行分组,得到时间片分组,在不同所述时间片分组内按照事件集进行二次分组,将得到的不同事件集分组内的事件的发起人两两匹配,得到开发者数据对,包括:根据设定的时间片对所述本地数据库中的每条记录进行分组,得到时间片分组;将同一时间片分组内的事件数据按照事件集标识进行二次分组,将事件集标识一致的事件数据作为一组,得到事件集分组;将同一所述事件集分组内的事件的发起人两两匹配,得到开发者数据对;所述开发者数据对的数据格式为:{[(x0,y0),(x1,y1)...],[(z0,m0),(z1,m1)...],...}其中,x0、x1、

,y0、y1、

,z0、z1、

,m0、m1、

均为事件的发起人,()为同一时间片下同一事件集内的开发者数据对,[]为同一时间片下的不同事件集分组。4.根据权利要求1所述的方法,其特征在于,对所述无向协作网络的连边进行遍历,根据连边对应的所述开发者数据对在不同事件集分组中重复出现的次数,确定对应连边权重,并根据所述连边权重更新所述无向协作网络的连边权重,包括:检查所述无向协作网络的连边所对应的开发者数据对在对应的时间片分组、事件集分组中是否重复出现,每重复出现一次则该连边权重加1,直到所述无向协作网络的所有连边
遍历为止,得到所述无向协作网络中所有连边的连边权重;根据所述连边权重对所述无向协作网络的连边权重进行更新。5.根据权利要求1所述的方法,其特征在于,根据得到的无向有权协作网...

【专利技术属性】
技术研发人员:王涛宋玉林张洋余跃杨程张迅晖周怀安
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1