亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        論學(xué)術(shù)界對(duì)開(kāi)源社區(qū)GitHub的貢獻(xiàn)

        2018-04-26 01:46:56劉琪琪
        現(xiàn)代計(jì)算機(jī) 2018年5期
        關(guān)鍵詞:用戶(hù)分析

        劉琪琪

        (四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)

        0 引言

        在今天的數(shù)字世界中,開(kāi)源軟件幾乎是現(xiàn)代社會(huì)和經(jīng)濟(jì)的全部賦能。任何對(duì)于開(kāi)源社區(qū)項(xiàng)目的貢獻(xiàn)都是至關(guān)重要的,尤其是依賴(lài)于開(kāi)源社區(qū)所提供的關(guān)鍵服務(wù)以及技術(shù)支持的用戶(hù)群體。

        GitHub是一個(gè)面向開(kāi)源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)閮H支持Git作為唯一的版本庫(kù)格式進(jìn)行托管,故名GitHub。其作為全球最大的代碼托管平臺(tái),平均每小時(shí)都有成千上萬(wàn)個(gè)項(xiàng)目產(chǎn)生,它為開(kāi)源社區(qū)做出了不可磨滅的貢獻(xiàn)。已經(jīng)有研究人員開(kāi)始嘗試挖掘GitHub上龐大的數(shù)據(jù)信息,試圖理解GitHub用戶(hù)群體如何使用GitHub開(kāi)發(fā)開(kāi)源軟件。GitHub引入了一個(gè)“fork&pull”模型,開(kāi)發(fā)人員可以通過(guò)fork創(chuàng)建自己的拷貝存儲(chǔ)庫(kù),當(dāng)他們想要在項(xiàng)目修改后可以并入主分支時(shí),便可以通過(guò)pull提交一個(gè)請(qǐng)求。除了代碼托管、協(xié)作代碼審查和集成問(wèn)題跟蹤之外,GitHub還集成了社交功能。用戶(hù)可以關(guān)注某個(gè)用戶(hù),隨時(shí)關(guān)注其關(guān)注用戶(hù)的項(xiàng)目,及時(shí)將用戶(hù)感興趣的信息推送給用戶(hù)。用戶(hù)還可以擁有自己的站點(diǎn),通過(guò)自動(dòng)識(shí)別可以顯示出他們最近的活動(dòng)。GitHub已經(jīng)變得越來(lái)越受歡迎,目前已經(jīng)有超過(guò)3500萬(wàn)的項(xiàng)目。如此受歡迎程度、社會(huì)和協(xié)作功能以及其源數(shù)據(jù)的可用性使得數(shù)據(jù)挖掘領(lǐng)域的研究人員把GitHub作為一個(gè)完美的數(shù)據(jù)挖掘?qū)ο蟆?/p>

        開(kāi)源軟件項(xiàng)目的成功很大程度上依賴(lài)于積極的團(tuán)隊(duì)參與,包括計(jì)劃、開(kāi)發(fā)、維護(hù)和文檔化。參與者通常使用一個(gè)或多個(gè)共享軟件存儲(chǔ)庫(kù)進(jìn)行協(xié)作,以存儲(chǔ)和管理源代碼、文檔和bug報(bào)告。GitHub平臺(tái)的開(kāi)源軟件項(xiàng)目的完成主要是來(lái)自團(tuán)隊(duì)的貢獻(xiàn),然而對(duì)于此類(lèi)項(xiàng)目的軟件資源庫(kù)訪問(wèn)通常是嚴(yán)格控制的,GitHub上這些項(xiàng)目的合作更傾向于以修復(fù)程序或者pull request的形式請(qǐng)求外部參與[1]。

        學(xué)術(shù)界是指學(xué)術(shù)或?qū)W院式的環(huán)境。在GitHub中超過(guò)千萬(wàn)的項(xiàng)目中,有很大一部分來(lái)自于學(xué)術(shù)界,這些項(xiàng)目與科研工作者的研究息息相關(guān)。而且,使用數(shù)據(jù)挖掘技術(shù)能夠從GitHub龐大的數(shù)據(jù)中挖掘并分析這類(lèi)信息。將GitHub用戶(hù)群體進(jìn)行分類(lèi),其中隱含著學(xué)術(shù)界、工業(yè)界以及個(gè)人用戶(hù)的數(shù)量及其所占比例。通過(guò)分析挖掘的信息,能夠知曉用戶(hù)使用這個(gè)產(chǎn)品的目的和習(xí)慣,從而得出開(kāi)源項(xiàng)目的發(fā)展趨勢(shì)。

        本文首次提出分析學(xué)術(shù)界對(duì)開(kāi)源社區(qū)所做的貢獻(xiàn),結(jié)合現(xiàn)在最受歡迎的開(kāi)源項(xiàng)目平臺(tái)GitHub,通過(guò)平臺(tái)提供的API挖掘到的一定量的大數(shù)據(jù)進(jìn)行整理分析,從學(xué)術(shù)界人員所占比例、人員的分布、所參與的項(xiàng)目以及使用語(yǔ)言的偏好著手,通過(guò)運(yùn)用對(duì)比分析法、結(jié)構(gòu)分析法等對(duì)數(shù)據(jù)進(jìn)行分析,再運(yùn)用杜邦分析法分析原因,實(shí)驗(yàn)結(jié)果反映出了學(xué)術(shù)界對(duì)于開(kāi)源平臺(tái)重視程度以及開(kāi)源平臺(tái)在一定程度上對(duì)科學(xué)研究有引領(lǐng)作用。

        1 數(shù)據(jù)收集

        GitHub對(duì)外提供開(kāi)放應(yīng)用編程接口(API),可以使用其獲取整個(gè)平臺(tái)的數(shù)據(jù),借助GitHubarchive和GHTorrent工具以及GoogleBigquery查詢(xún)到自己需要的數(shù)據(jù)。也可從現(xiàn)有各個(gè)渠道搜索查找相關(guān)數(shù)據(jù),例如中文網(wǎng)站GitHuber。

        1.1 GitHubarchive

        GitHub Archive網(wǎng)站是通過(guò)GitHub的API,定期抓取GitHub的事件數(shù)據(jù),并上傳到Google Big Query進(jìn)行分析。GitHubarchive中根據(jù)時(shí)間線(xiàn)存儲(chǔ)著從GitHub上獲取的數(shù)據(jù),數(shù)據(jù)分為 yeardataset,monthdataset,daydataset。通過(guò)查詢(xún)GitHub的API文檔,我們了解到用戶(hù)star一個(gè)項(xiàng)目時(shí)會(huì)觸發(fā)一個(gè)WatchEvent。因此,程序可以遍歷去年所有的WatchEvent事件,按repo_name進(jìn)行分組,計(jì)算每組的數(shù)目。最終截取前7000條數(shù)據(jù),用來(lái)分析去年最受關(guān)注的項(xiàng)目。

        SELECT COUNT(*)AS star,repo.name

        FROM[GitHubarchive:year.2016]

        WHERE type='WatchEvent'

        GROUP BY repo.name ORDER BY star DESC LIMIT 7000

        由此可挑選出去年最受歡迎的100個(gè)項(xiàng)目,從而篩選出這些項(xiàng)目中的參與用戶(hù),有多少來(lái)自學(xué)術(shù)界,評(píng)比學(xué)術(shù)界在這些項(xiàng)目中的貢獻(xiàn)。

        表1 按star值排名靠前的部分項(xiàng)目

        2.2 GHTorrent

        GHTorrent中的數(shù)據(jù)也是源于GitHub API獲取的JSON數(shù)據(jù),數(shù)據(jù)以bson的形式保存在MongoDB里,在解析后得到Schema不僅可以將其保存在MySQL里還可以導(dǎo)出SQL[3]。使用GoogleBigQuery即可進(jìn)行SQL查詢(xún)。篩選數(shù)據(jù)庫(kù)中表users里的company,可以得到包 含 有“university”,“institute”,“college”,“school”,“academy”,“學(xué)院”,“大學(xué)”,“學(xué)?!保把芯克?,“研究院”,“中科院”的用戶(hù)。意味著這些用戶(hù)隸屬于學(xué)術(shù)界。通過(guò)projects表,可查出相關(guān)用戶(hù)所做的項(xiàng)目情況。

        圖1 GHTorrent數(shù)據(jù)庫(kù)表

        對(duì)所得數(shù)據(jù)進(jìn)行預(yù)處理整合,去除重復(fù)項(xiàng),共3543人的company來(lái)自于學(xué)術(shù)界。經(jīng)過(guò)學(xué)術(shù)界的用戶(hù)匹配項(xiàng)目后,可以得到一共4983個(gè)項(xiàng)目。

        圖2 部分學(xué)術(shù)界用戶(hù)的公司和地理位置

        圖3 部分學(xué)術(shù)界用戶(hù)的項(xiàng)目和項(xiàng)目描述

        1.3 GitHuber

        GitHuber是基于GitHub數(shù)據(jù)平臺(tái)的一個(gè)中文網(wǎng)站,可直接通過(guò)關(guān)鍵字搜索相關(guān)機(jī)構(gòu)的用戶(hù),選擇關(guān)鍵字“學(xué)院”,即可查出所有中國(guó)的學(xué)術(shù)界用戶(hù)。部分?jǐn)?shù)據(jù)如下:

        圖4 中國(guó)學(xué)術(shù)界按聲望排行榜

        1.4 其他

        通過(guò)調(diào)用 GitHub的 API,抓取 followers排名前1000的用戶(hù),再使用如下公式計(jì)算Score值。本文提出的計(jì)算公式是受到了業(yè)界對(duì)followers的排名認(rèn)可度的啟發(fā)。業(yè)界普遍認(rèn)為followers在前期的增長(zhǎng)含金量比較高,而之后的增加主要是影響力因素。

        通過(guò)計(jì)算,分別找到了中國(guó)地區(qū)和世界地區(qū)排名前1000的人。部分排名如下:

        圖5 GitHub用戶(hù)聲望計(jì)算方式

        圖6 中國(guó)地區(qū)排名

        圖7 世界地區(qū)排名

        2 數(shù)據(jù)處理

        數(shù)據(jù)處理包含數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)化、數(shù)據(jù)提取、數(shù)據(jù)計(jì)算等過(guò)程。

        2.1 數(shù)據(jù)清洗

        數(shù)據(jù)清洗主要包含刪除重復(fù)項(xiàng),填充缺失項(xiàng)以及檢測(cè)邏輯錯(cuò)誤項(xiàng)等。由于公司名字存在多個(gè)模糊匹配字段,所以在數(shù)據(jù)量足夠多的情況下,得到的總?cè)藬?shù)中必然有重復(fù)存在的數(shù)據(jù),因此需要將重復(fù)項(xiàng)刪除。在3543名學(xué)術(shù)界的用戶(hù)信息中,去除location填寫(xiě)為空的用戶(hù),有2559名用戶(hù)顯示了其地理位置。而匹配的目標(biāo)字段存在很多空白的缺失數(shù)據(jù),需將其補(bǔ)齊。當(dāng)缺失值是以錯(cuò)誤標(biāo)識(shí)符形式出現(xiàn)的時(shí)候,本文的做法是將其全部替換成0。

        2.2 數(shù)據(jù)加工

        當(dāng)數(shù)據(jù)表現(xiàn)為某些數(shù)據(jù)字段不滿(mǎn)足我們的數(shù)據(jù)分析需求時(shí),需要對(duì)現(xiàn)有字段進(jìn)行抽取、計(jì)算或者轉(zhuǎn)換等處理,生成符合本文分析所需要的一系列新數(shù)據(jù)字段。如抽取的項(xiàng)目參與人員commit次數(shù)的數(shù)據(jù),得到的是數(shù)字加上人名的形式,而本文只需要參與人員姓名即可,則通過(guò)檢測(cè)空格把數(shù)據(jù)進(jìn)行字段分列,去除掉commit字段后,再將人名用“&”進(jìn)行字段合并。

        從Bigquery上直接導(dǎo)出的數(shù)據(jù)中文字段會(huì)存在亂碼情況,是由于CSV文件編碼引起的。因而需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換而得到相應(yīng)的字段。

        3 數(shù)據(jù)分析

        3.1 學(xué)術(shù)界的用戶(hù)分布分析

        在3543名學(xué)術(shù)界的用戶(hù)信息中,去除location填寫(xiě)為空的用戶(hù),得到了帶有明確地理位置信息的2559名用戶(hù)。利用ArcGIS軟件導(dǎo)入位置數(shù)據(jù),可以得到一個(gè)如下圖的學(xué)術(shù)界用戶(hù)群體分布圖。

        圖8 學(xué)術(shù)界地理位置分布圖

        由圖可知,GitHub上的學(xué)術(shù)界用戶(hù)群體大多分布在美國(guó)、英國(guó)、中國(guó)、印度、韓國(guó)等國(guó)家,且一線(xiàn)城市的居多。

        3.2 學(xué)術(shù)界的項(xiàng)目分析

        通過(guò)獲取的2016年最火的前100個(gè)項(xiàng)目,使用基于git的后臺(tái)并配置ssh key可下載獲得這些項(xiàng)目的源代碼。在命令窗輸入git log--pretty='%aN'|sort|uniq-c|sort-k1-n-r,可以獲得每個(gè)項(xiàng)目的參與人員commit的次數(shù)。

        圖9 學(xué)術(shù)界所在城市排名

        圖10 獲取參與人員commit詳情

        選取學(xué)術(shù)界前10的項(xiàng)目一一進(jìn)行研究分析后,將所有用戶(hù)匯總到同一個(gè)表格內(nèi),去重處理后可知共有3179名用戶(hù)參與,再與先前獲取的學(xué)術(shù)界用戶(hù)群體數(shù)據(jù)進(jìn)行比對(duì)可知,學(xué)術(shù)界人員有15名,占總?cè)藬?shù)的0.5%。

        學(xué)術(shù)界的項(xiàng)目類(lèi)型主要分為三大類(lèi),一是龐大人群共同參與的工程類(lèi)項(xiàng)目開(kāi)發(fā),二是個(gè)人所在科研項(xiàng)目的研發(fā)討論,三是個(gè)人生活學(xué)習(xí)類(lèi)的小型項(xiàng)目。

        3.3 學(xué)術(shù)界所使用的編程語(yǔ)言偏好分析

        通過(guò)對(duì)學(xué)術(shù)界項(xiàng)目的抽樣調(diào)查,可得到所有項(xiàng)目使用的語(yǔ)言詳情。

        圖11 學(xué)術(shù)界所做項(xiàng)目分類(lèi)

        圖12 項(xiàng)目語(yǔ)言詳情

        由此可得偏好語(yǔ)言的排序:

        圖13 項(xiàng)目語(yǔ)言排行

        4 結(jié)語(yǔ)

        開(kāi)源社區(qū)有近一半的貢獻(xiàn)者表示,他們關(guān)于開(kāi)源社區(qū)所做的一些工作對(duì)于他們當(dāng)前所從事的工作有或多或少的幫助,甚至有一些具有重大意義的工作也放在開(kāi)源社區(qū)的平臺(tái)上。開(kāi)源工作有助于開(kāi)發(fā)者建立自己的專(zhuān)業(yè)信譽(yù)。

        從參與的總?cè)藬?shù)和總項(xiàng)目來(lái)看,學(xué)術(shù)界的用戶(hù)在開(kāi)源平臺(tái)的用戶(hù)群體中所占的比例不大。通過(guò)分析排名靠前的用戶(hù)信息所知,這些用戶(hù)幾乎都是國(guó)內(nèi)外頂尖的互聯(lián)網(wǎng)公司人才。但是通過(guò)學(xué)術(shù)界所做的項(xiàng)目數(shù)據(jù)信息進(jìn)行分析可知,大部分學(xué)者在開(kāi)源平臺(tái)的項(xiàng)目大都和自己研究方向相關(guān)。

        參考文獻(xiàn):

        [1]Padhye R,Mani S,Sinha V S.A Study of External Community Contribution to Open-Source Projects on GitHub[C].Proceedings of the 11th Working Conference on Mining Software Repositories.ACM,2014:332-335.

        [2]Gousios G,Pinzger M,Deursen A.An Exploratory Study of the Pull-Based Software Development Model[C].Proceedings of the 36th International Conference on Software Engineering.ACM,2014:345-355.

        [3]Gousios G.The GHTorent Dataset and Tool Suite[C].Proceedings of the 10th Working Conference on Mining Software Repositories.IEEE Press,2013:233-236.

        [4]Cosentino V,Izquierdo J L C,Cabot J.Findings from GitHub:Methods,Datasets and Limitations[C].Mining Software Repositories(MSR),2016 IEEE/ACM 13th Working Conference on.IEEE,2016:137-141.

        [5]Dyer R,Nguyen H A,Rajan H,et al.Boa:A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories[C].Proceedings of the 2013 International Conference on Software Engineering.IEEE Press,2013:422-431.

        猜你喜歡
        用戶(hù)分析
        隱蔽失效適航要求符合性驗(yàn)證分析
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        關(guān)注用戶(hù)
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        Camera360:拍出5億用戶(hù)
        100萬(wàn)用戶(hù)
        如何獲取一億海外用戶(hù)
        中西醫(yī)結(jié)合治療抑郁癥100例分析
        在线播放亚洲第一字幕| 末成年人av一区二区| 国内揄拍国内精品少妇| 国产成人av 综合 亚洲| 91精品啪在线看国产网站| 麻豆三级视频网站在线观看| 四虎永久在线精品免费网址| 久久国产劲暴∨内射| jjzz日本护士| 最新国产一区二区三区| 熟女人妻中文字幕av| 亚洲精品无码久久久久牙蜜区| 91精品国产91久久久无码95| 久久亚洲精品成人av观看| 91精品亚洲成人一区二区三区| 欧美一区二区三区红桃小说| 亚洲av日韩av综合aⅴxxx| 一区二区三区手机看片日本韩国| 日韩免费视频| 全部孕妇毛片| 欧美精品v欧洲高清| 亚洲熟妇一区二区蜜桃在线观看| √天堂中文官网在线| 草莓视频成人| 亚洲区1区3区4区中文字幕码| 亚洲蜜臀av一区二区三区| 人妻激情另类乱人伦人妻 | 人妻少妇偷人精品视频| 免费无遮挡无码永久视频| 精品性高朝久久久久久久| 黄色av三级在线免费观看| 亚洲一二三区免费视频| 97久久人人超碰超碰窝窝| 任你躁欧美一级在线精品免费| 在线观看视频亚洲一区二区三区 | 熟女性饥渴一区二区三区| 男人的天堂在线无码视频| 国产一区二区三区精品成人爱| 天天爽夜夜爽夜夜爽精品视频| 国产乱理伦片在线观看| 亚洲av乱码国产精品色|