阅读 228

还在看开源项目的Star?这个指标其实更值得关注!

经常逛 Gitee 的同学一定会注意到,在 Gitee 上衡量一个开源项目优质与否,除了 Star 的数量以外,还有一个很重要的指标——Gitee 指数。如果该项目 Star 数量很多但 Gitee 指数较低,那么该项目可能“年久失修”或已无人维护,如果该项目 Star 数量并不多但 Gitee 指数较高,那么说明这个项目是个“潜力股”,值得持续关注。

综合 Gitee 八年来的经验,我们明白想要对开源项目的质量进行合理评估,仅仅只看 Star 数量是远不够的,要想全方位地评估一个项目,就必须收集其各方面的基础数据。

在没有推荐算法的情况下,用户会通常会选择高 Star 数的项目,而忽略低 Star 数的项目,低 Star 数的项目就不值得推荐吗?根据这个问题引发了 Gitee 团队对什么是优质开源项目的探讨。最后提出了好的开源项目应该从以下角度切入(以下的数据信息和分析都是依据于真实的开源软件社区)。

Gitee指数评估维度

1.影响力

用来判断开发者是否真正关注过该项目,低 Star 数可能是由种种原因被埋没,而长时间无 Star,可能这个项目并没有辐射到其他开发者。

2.代码活跃度

项目代码“年久失修”,维护人员可能已经抛弃了该项目,只是忘了清除仓库,这样的项目在全球范围内不在少数,但也有可能是已经较为完善的项目,不需要过多地维护。

3.社区活跃度

你对一个项目提了一个 Issue,在短时间内就得到回应,这样的感觉是极好的,反映其项目作者与社区普通用户的互动频率。

4.团队健康

这一点也相当的重要,如果项目实际的贡献者只有那么几位,关键贡献者从团队退出是经常导致一个软件的停更的原因,该指数与贡献者人数和稳定度相关。

5.流行趋势

与项目近期收到用户的关注程度相关。

有了评估维度后,就需要对各个维度进行权重划分,各维度具体的权重如下图所示:

维度计算方法

有权重后就可以对不同维度进行计算了,各维度的计算方法如下:

p=iwifip=\sum_{i}^{} w_{i}f_{i}

pp为项目画像的维度, fifi为维度下的各个分支特征,wiwi是基于业务场景中的经验权重。

要做到数据更加易懂及好看,还要进行特征归一化:

x=xmin(xi)max(xi)min(xi)x^{*}=\frac{x-min(x_{i})}{max(x_{i})-min(x_{i})}

其中xx为你输入的数据,min(xi)min(x_{i})为所有数据样本中的最小值,max(xi)max(x_{i})为所有数据样本中的最大值。

该方法能够将你需要对比的数据映射到[0,1]区间中,给用户展示可对比的数据。

归一化后的项目特征如下图:

最终呈现在线上的就是大家在文中最开始看到的效果了。

目前占据 Gitee 指数全站排名第一的项目是来自华为的 AI 框架 MindSpore ,如果你自己项目的 Gitee 指数想要追上它,通过这次的算法大公开,相信你知道要从哪方面努力了,那就赶快行动起来吧!

同时我们也开放各位开发者对于算法的各种建议,目的就是能够最大限度的为大家提供一个科学、合理、公平的开源项目指标,如果你对该算法有什么想法,欢迎通过各种方式告诉我们哦

文章分类
开发工具
文章标签