X-lab 周一论文分享,唐烨男
访谈问卷类需要深厚的底蕴
暂时难以驾驭
客观计算类的更符合个人兴趣
希望能运用到所有仓库
每个Repo都有机会看到自己的数据
也许可以从更微观的角度来衡量贡献者
基于GitHub日志 → 基于.git目录
e.g.实验室的贡献者/仓库异构网络?
Linux,Python,R
9个Apache项目
核心文件组 → 核心开发者
贡献度分配算法
...
9个Apache项目
全是Java项目
两部分数据信息
核心文件组
文件引用关系
文件作者列表
贡献度份额向量c
(1个m维向量)
for p in 核心文件组:
建立p的3层关联网络
求p的贡献度份额向量c
所有开发者对核心文件组
的贡献度份额向量
= 所有c的平均值
(选取贡献度总和的前80%
作为核心开发者)
第1层
p本身(图中P0)
第2层
调用p的所有文件d
第3层
所有d调用的非核心文件
向量集合s
第1、3层中各文件被所有d调用的次数
分配矩阵T
每行代表p的其中一个作者在第1、3层各文件中的人头占比
c = Ts
Q: 每个c的长度不相等,怎么办?
A: 假设每个核心文件的作者集合是所有的开发者,这样可以统一长度且不影响结果
c中贡献度总和的前80%覆盖的开发者为核心开发者
仅仅按人头比来计算贡献度易造成偏差
故引入全局影响因子$\lambda$
${c_i}^{'} = {c_i}{\lambda_i}$
${\lambda_i} = \frac{I_i}{N_i}$
其中,$I_i$是开发者$i$编辑过的所有文件在整个项目中被调用的次数,$N_i$是开发者$i$在整个项目中编辑过的文件数
从实验结果可以看出,与传统分类方案相比,基于文件贡献的分类法在总体上有着更高的真实名单相似度
简单来说,在核心贡献度这一个指标的基础上
再综合若干个其他指标,可以让核心开发者的识别更准确
所以多维度综合分析效果是更好的