天天看點

如何追蹤GitHub項目的流行度

介紹

github 是世界上最大的開源軟體托管平台,是以追蹤 github 流行度對于軟體開發者和使用者都非常重要。本篇文章是介紹一個

github 流行度追蹤架構,使用他們的 stars 數目來評估 github 的流行軟體。本文使用的資料是 github 5 月 1

日的資料。

度量流行度

這裡我們考慮 github 上前 24 強程式設計語言,通過 github 先進的搜尋引擎分類出來的。下面的資料是每個語言前 1000 個庫的 stars 數分布。

如何追蹤GitHub項目的流行度

假設在 24000 個樣例中系統中前 10% 的系統是流行的,前 1% 是非常流行的。

下面這個表展示的是每個程式設計語言流行和非常流行的系統數目

如何追蹤GitHub項目的流行度

流行度增長模式 popularity growth patterns

随着時間的推移評估應用的流行度,我們限制分析流行系統時間至少是 52 周。以這種方式,我們研究了 2138 個流行系統(89%

的初始樣例)。為了這個系統,我們定義 rt 是在周數 t 排名清單的排名對數(基數為 2)。這個排名對數是根據流行系統的 stars 數目的

right-skewed 确定的。最受歡迎的系統排名是 1。最早的周是 1,最新的是 52。同時還定義了 rtop 和 rbottom

作為最高排名和最低排名。

我們得出以下的幾種流行度增長模式:

持續性增長:在分析周期下持續性增長,計算方式:

(rbottom − rtop ) < 0.25示例:

如何追蹤GitHub項目的流行度

 快速增長:計算方式:

(rold − rnow ) > 1 ∧ (rt+1 ≤ rt) in at least 90% of the weeks t

示例:

如何追蹤GitHub項目的流行度

緩慢增長:計算方式:

(rnow − rold) > 1 ∧ (rt+1 ≥ rt) in at least 90% of the weeks t

示例 (which resulted in a decrease on their rank):

如何追蹤GitHub項目的流行度

病毒式增長:在很短的時間内(比如一周)達到最高的 stars 數目

如何追蹤GitHub項目的流行度

下面清單展示的是每個程式設計語言持續性增長,快速增長,緩慢增長,病毒式增長的情況:

如何追蹤GitHub項目的流行度

流行度相關的 forks 和相關使用

forks:下面的資料展示了一個項目流行度和 ta 的 forks 數的關系。我們可以看到 forks 和 stars 很強的正相關關系(spearman rank correlation coefficient = 0.55)。

如何追蹤GitHub項目的流行度

用戶端:為了關聯用戶端使用和 stars,我們專注于一個限制的應用分組,這是由 npm 系統資料庫的

node.js 基礎庫組成的。我們首先使用 npm api 檢索在資料庫中流行 javascript 應用依賴的數量。然後手動根據依賴選擇的

node.js 基礎庫子產品來審查前 100 個應用。我們發現這兩個因素也有很強的關聯關系(spearman’s rank correlation

coefficient of 0.68)。

如何追蹤GitHub項目的流行度

總結

我們緻力于一個可以跟蹤 github 流行度的架構,使用這個架構我們能發現:

javascript 壟斷了超過三分之一的 github 流行應用,接下來是 ruby, objective-c, python, java 和 php 這 5 種語言占據另外三分之一的流行應用。

21% 的流行系統有可持續的增長;5% 的流行系統有快速的增長;少于 1% 的流行系統會緩慢增長。我們發現有 37 個系統有病毒式增長的行為。

系統的 stars 數不僅僅跟 forks 數有關,其他用戶端應用的高效使用也有一定的關聯。

來源:51cto

繼續閱讀