当前位置: 首页 > 科技观察

如何追踪GitHub项目的热度

时间:2023-03-15 00:34:59 科技观察

介绍GitHub是全球最大的开源软件托管平台,因此追踪GitHub的热度对于软件开发者和用户来说非常重要。这篇文章是介绍一个GitHub流行度追踪框架,用他们的Stars数来评估GitHub的流行软件。本文使用的数据来自于5月1日的GitHub。衡量流行度这里我们考虑GitHub上排名前24位的编程语言,通过GitHub的高级搜索引擎进行排序。下面的数据是每种语言前1000个库的星数分布。假设24000个示例中前10%的系统很受欢迎,前1%的系统非常受欢迎。下表显示了每种编程语言的流行和非常流行的系统数量。流行度增长模式评估应用程序随时间的流行度。我们将对流行系统的分析限制为至少52周。通过这种方式,我们研究了2138个流行系统(占初始样本的89%)。出于本系统的目的,我们将Rt定义为第t周排名列表的排名对数(以2为底)。这个排名对数是由右偏的流行系统的Star数决定的。***的系统排名为1,最早的周为1,最旧的为52。同时定义了RTop和RBottom为top和bottom位置。我们得到了以下人气增长模式:持续增长:在分析期内持续增长,计算方法:(RBottom?RTop)<0.25示例:快速增长:计算方法:(ROld?RNow)>1∧(Rt+1≤Rt)在至少90%的周t示例:缓慢增长:计算:(RNow?ROld)>1∧(Rt+1≥Rt)在至少90%的周t示例(这导致theirrank):Viralgrowth:短时间内(比如一周)达到最高的Star数例子:下面的列表展示了各个编程语言的持续增长,fastgrowth,slowgrowthGrowth,ViralGrowthCases:Popularity-relatedForksandRelatedUsageForks:下面的数据显示了一个项目的受欢迎程度和TA的fork数量之间的关系。我们可以看到分叉和星级之间存在很强的正相关性(Spearman秩相关系数=0.55)。客户端:为了将客户端使用与Stars相关联,我们专注于一组受限制的应用程序,这些应用程序由来自NPM注册表的Node.js基础库组成。我们首先使用NPMAPI检索数据库中流行的JavaScript应用程序的依赖项数量。然后根据依赖项选择的Node.js基础库模块,对排名前100的应用程序进行人工审核。我们还发现这两个因素之间存在很强的相关性(Spearman等级相关系数为0.68)。总结我们正在开发一个可以跟踪GitHub流行度的框架。使用这个框架,我们可以发现:JavaScript垄断了GitHub超过三分之一的热门应用,其次是Ruby、Objective-C、Python、Java和PHP。语言占流行应用程序的另外三分之一。21%的流行系统具有可持续增长;5%的热门系统增长迅速;不到1%的流行系统增长缓慢。我们发现了37个具有病毒式增长行为的系统。系统中的star数量不仅与分叉数量有关,还与其他客户端应用程序的使用效率有关。