论文部分内容阅读
近年来,随着互联网行业的飞速发展,开发者成为被社会关注的热门群体之一。而社交网络也成为了人与人之间联系的主流,开发者社交网络应运而生。GitHub作为近年来快速发展的开源项目托管平台和开发者社交网络,已有上千万的注册用户以及开源项目,其中包含大量与开发者相关的信息,并且信息仍持续更新,信息量不断增加。为了充分挖掘GitHub数据中蕴藏的价值并加以利用,本文针对GitHub用户数据进行分析和研究。由于GitHub数据量较大(总数据集超过100G),涉及多种对象,对象之间交互关系错综多变,网络结构复杂,这对我们的研究提出了巨大挑战。当前对GitHub用户的研究分析较少,没有比较全面的用户特征,这也是本文需要解决的主要问题之一。本文从多种角度分析GitHub用户数据,以及用户相关数据,提取并分析用户特征,以及用户影响力分析。在用户分类中,针对缺少用户标注数据集以及如何将用户特征化这两大关键问题,本文通过爬取GitHub数据构建了标注数据集,并分别基于用户内容以及网络结构,完成了用户自动分类。用户特征和影响力分析,用户分类,对GitHub中搜索,个性化推荐,信息传播等有重要意义。本文主要成果和结论如下:(1)GitHub用户数据预处理与特征分析。本文使用的数据是自2008年4月GitHub上线截止到2017年1月19日的所有用户数据。文中首先进行用户特征提取,并完成用户特征的统计分析,用户特征分布及特征之间的关系分析,并进行了用户数据过滤。用户特征分析是整文数据分析的基础。(2)用户影响力分析。本文基于对GitHub用户数据的分析,从用户follow关系,用户项目star、fork情况,用户活跃性等方面多角度衡量用户的影响力,比较其相关性,并最终综合衡量了GitHub中用户的影响力。(3)用户分类。本文基于GitHub用户数据,构建了用户-主题数据集。并进行了基于用户内容的用户表示和基于用户关系图的用户表示。通过两种方式将用户嵌入到了一个潜在的特征向量空间,然后用机器学习方法对用户进行了半监督分类,并将该方法与已有的社区发现算法进行比较,结果表明本文的方法可以较好地完成对用户的分类。