本发明涉及一种影响软件开发进度的方法,更特别地说,是指一种情感因素对项目进展的协方差相关性提取方法。
背景技术
开源软件指的是允许用户基于osi(opensysteminterconnection,开放式系统互联)列出的开源协议,在协议许可的范围内自由使用、修改软件源代码,且可以将软件源代码与其他软件代码进行结合使用的一种软件形式。github(是一个面向开源及私有软件项目的托管平台)作为社交化开发平台是众多开源软件的一种。
影响github平台开发过程的因素有很多,其中包括开发者能力水平的高低、开发者人数多少、开源软件的问题解决快慢、用户参与的激励及情感因素等。其中情感因素在github开源软件开发过程中的影响已受到研究者的关注。
对于情感因素的分类参考2013年10月公开的《recursivedeepmodelsforsemanticcompositionalityoverasentimenttreebank》,此文中将情感因素分为了五类:“therecursiveneuraltensornetworkaccuratelypredicting5sentimentclasses,verynegativetoverypositive(––,–,0,+,++),ateverynodeofaparsetreeandcapturingthenegationanditsscopeinthissentence.”,译文为:“非常消极、比较消极、中立、比较积极、非常积极”。
不同情感因素在软件开发过程中起到了一定的作用,但针对情感因素在github开源软件中的影响,尤其是在项目进展方面缺乏相关性的研究。且github中的评论数据并没有专门的github问题数据提取规范,分析起来也存在一定的难度。
技术实现要素:
本发明提出的一种情感因素对项目进展的协方差相关性提取方法,该方法所要解决的是如何提取github中项目的评论数据;并将其评论数据进行情感分析,得到情感分析相关数据;并利用相关性分析得到情感因素与项目进展速度的相关性分析。
本发明的一种基于情感因素对项目进展的协方差相关性提取方法,其特征在于包括有下列处理步骤:
步骤一,从github项目中的pullrequests模块提取出请求合并评论数据集pr;
所述请求合并评论数据集记为pr={r1,r2,…,ra,…,ra};
步骤二,从请求合并数据集pr中获取pullrequests模块的评论内容,并对评论内容匹配情感分析值;
任意一条评论内容经情感匹配处理sst处理后输出一个情感分析值se,则有:
属于r1中的评论内容记为
属于r2中的评论内容记为
属于ra中的评论内容记为
属于ra中的评论内容记为
情感分析值se是指将任意一条评论数据中的评论内容输入至情感匹配处理sst中,然后由情感匹配处理sst输出一个数值;
步骤三,从请求合并数据集pr中获取pullrequests模块的评论量;
由于任意一条请求合并评论数据中携带有评论时间和评论内容,因此,根据评论时间来划分请求合并评论数据集pr={r1,r2,…,ra,…,ra},分别将得到:
以天为单位的天—请求合并评论数据
以周为单位的周—请求合并评论数据
以月为单位的月—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于天—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于周—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于月—请求合并评论数据
步骤四,依据情感相关程度ifc获取以时间划分的评论数据的关联程度;
在本发明中,情感相关程度
若对天—请求合并评论数据
若对周—请求合并评论数据
若对月—请求合并评论数据
本发明基于情感因素对项目进展的协方差相关性提取方法的优点在于:从开源软件开发过程中产生的数据进行分析的角度出发,对影响github开源软件开发过程的情感因素进行了分析,提出了请求合并增加速度等影响因素,并对情感因素与提出的几种物理量之间存在的相关性进行了分析。
具体实施方式
下面将结合实施例对本发明做进一步的详细说明。
在本发明中,引用2013年10月公开的《recursivedeepmodelsforsemanticcompositionalityoverasentimenttreebank》,文章中的“非常消极、比较消极、中立、比较积极、非常积极”五类情感因素数字量化为“0、1、2、3和4”来对应pullrequests模块中评论内容的情感分析值,记为se;则有se=0、se=1、se=2、se=3或者se=4。一条评论内容对应一个情感分析值se。所述《recursivedeepmodelsforsemanticcompositionalityoverasentimenttreebank》进行情感分析值se的获取在本发明中称为情感匹配处理sst。
在本发明中,将应用到github平台中的pullrequests模块来进行评论数据的提取与分析。评论数据中包括有评论内容及评论量(或称为评论内容的个数)。对于评论的提取,克隆github上感兴趣的项目的源代码到本地,创建一个本地的代码库,然后对代码库中的代码进行pullrequests模块评论数据的提取。
本发明的技术解决问题是:针对github平台中pullrequests模块的评论数据,用于提取评论内容及评论量与情感因素的相关性,从而研究情感因素对项目进展的影响。
在本发明中,请求合并评论数据集pr是指在用户使用github平台时,将出现的问题、缺陷等评论内容反馈给开发者,然后开发者对用户的评论数据进行筛选整理,将认为适合改进其项目的评论进行合并。采用集合的形式表示请求合并评论数据集记为pr={r1,r2,…,ra,…,ra},r1表示第一条请求合并评论数据,r2表示第二条请求合并评论数据,ra表示任意一条请求合并评论数据,ra表示最后一条请求合并评论数据,a表示请求合并评论数据的总个数;为了方便说明,ra也表示第a条请求合并评论数据,a表示请求合并评论数据的标识号。任意一条请求合并评论数据ra中包括有时间和评论内容,采用集合形式表达为ra={time,content},其中,content为评论内容;对于所述的time中包括天、周和月,则time={day,week,month};时间time为3个维度分析,分析该事件段内的评论数据及对应的请求合并速度与情感因素之间的相关性。
本发明的基于情感因素对项目进展的协方差相关性提取方法的处理步骤有:
步骤一,从github项目中的pullrequests模块提取出请求合并评论数据集pr;
在本发明中,采用集合的形式表示请求合并评论数据集记为pr={r1,r2,…,ra,…,ra};
r1表示第一条请求合并评论数据;
r2表示第二条请求合并评论数据;
ra表示第a条请求合并评论数据;a表示请求合并评论数据的标识号;
ra表示最后一条请求合并评论数据,a表示请求合并评论数据的总个数。
在本发明中,请求合并评论数据集pr是指在用户使用github平台时,将出现的问题、缺陷等评论内容反馈给开发者,然后开发者对用户的评论进行筛选整理,将认为适合改进其项目的评论进行合并。对于评论的提取,克隆github上感兴趣的项目的源代码到本地,创建一个本地的代码库,然后对代码库中的代码进行pullrequests模块评论数据的提取。
步骤二,从请求合并数据集pr中获取pullrequests模块的评论内容,并对评论内容匹配情感分析值;
在本发明中,任意一条评论内容经情感匹配处理sst处理后输出一个情感分析值se,则有:
属于r1中的评论内容记为
属于r2中的评论内容记为
属于ra中的评论内容记为
属于ra中的评论内容记为
在本发明中,情感分析值se是指将任意一条评论数据中的评论内容输入至情感匹配处理sst中,然后由情感匹配处理sst输出一个数值。
步骤三,从请求合并数据集pr中获取pullrequests模块的评论量;
由于任意一条请求合并评论数据中携带有评论时间和评论内容,因此,根据评论时间来划分请求合并评论数据集pr={r1,r2,…,ra,…,ra},分别将得到以天为单位的评论数据(即天—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于天—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于周—请求合并评论数据
在pr={r1,r2,…,ra,…,ra}中划分出的属于月—请求合并评论数据
在本发明中,分别提取出pullrequests模块需要的评论内容的个数(即评论量)及评论内容,是为了在进行情感分析中作为情感因素相关性的量化。
步骤四,依据情感相关程度ifc获取以时间划分的评论数据的关联程度;
在本发明中,情感相关程度
若对天—请求合并评论数据
若对周—请求合并评论数据
若对月—请求合并评论数据
实施例1
以天为评论时间单位对pullrequests模块评论数据进行情感相关性分析:
若×年1月1日的pullrequests模块中存在有3条评论数据,分别记为第一条评论数据
则属于×年1月1日的评论量记为num1/1/年(num1/1/年=3);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年1月1日的平均情感值记为
属于×年1月1日的情感相关程度
若×年1月2日的pullrequests模块中存在有7条评论数据,分别记为第一条评论数据
则属于×年1月1日的评论量记为num2/1/年(num2/1/年=7);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年1月1-2日的平均情感值记为
属于×年1月1-2日的情感相关程度
当ifc2/1/年小于0时,表明属于×年1月1-2日的评论量与情感值存在负相关。即评论情感值对项目进展可能产生消极影响。
以×年1月2日的方法对不同天的评论数据进行处理,分别获得不同天的评论量、平均情感值和情感相关程度:
ifc大于0时,表明评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
若×年1月10日的pullrequests模块中存在有7条评论数据,分别记为第一条评论数据
则属于×年1月10日的评论量记为num10/1/年(num10/1/年=7);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年1月10日的平均情感值记为
属于×年1月1-10日的情感相关程度:
当ifc10/1/年大于0时,表明属于×年1月1-10日的评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
实施例2
以周为单位的请求合并评论数据集的处理,对于评论的提取,克隆github上感兴趣的项目的源代码到本地,创建一个本地的周—代码库,然后对周—代码库中的代码进行pullrequests模块评论数据的提取。
以周为评论时间单位对pullrequests模块评论数据进行情感相关性分析:
若×年第一周的pullrequests模块中存在有3条评论数据,分别记为第一条评论数据
则属于×年第一周的评论量记为num1/年(num1/年=3);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年第一周的平均情感值记为
属于×年第一周的情感相关程度
若×年第二周的pullrequests模块中存在有8条评论数据,分别记为第一条评论数据
则属于×年第二周的评论量记为num2/年(num2/年=8);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年第二周周的平均情感值记为
属于×年1-2周周的情感相关程度
以×年第2周的方法对不同天的评论数据进行处理,分别获得不同天的评论量、平均情感值和情感相关程度:
ifc大于0时,表明评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
属于×年前10周的情感相关程度
当ifc10/1/年大于0时,表明属于×年前10周的评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
从pr={r1,r2,…,ra,…,ra}中选取以周week为单位的周—请求合并评论数据
所述
实施例3
以月为单位的请求合并评论数据集的处理,对于评论的提取,克隆github上感兴趣的项目的源代码到本地,创建一个本地的月—代码库,然后对月—代码库中的代码进行pullrequests模块评论数据的提取。
以月为评论时间单位对pullrequests模块评论数据进行情感相关性分析:
若×年一月的pullrequests模块中存在有5条评论数据,分别记为第一条评论数据
则属于×年1月的评论量记为numjan/年(numjan/年=5);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年1月的平均情感值记为
属于×年1月的情感相关程度
若×年二月的pullrequests模块中存在有10条评论数据,分别记为第一条评论数据
则属于×年2月的评论量记为numfeb/年(numfeb/年=10);
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
依据情感匹配处理sst对
属于×年2月的平均情感值记为
属于×年1-2月的情感相关程度
当ifcfeb/年小于0时,表明属于×年1-2月的评论量与情感值存在负相关。即评论情感值对项目进展可能产生消极影响。
以×年2月的方法对不同天的评论数据进行处理,分别获得不同天的评论量、平均情感值和情感相关程度:
ifc大于0时,表明评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
属于×年前10月的情感相关程度:
当ifcoct/年大于0时,表明属于×年1-10月的评论量与情感值存在正相关。即评论情感值对项目进展会产生积极影响。
从pr={r1,r2,…,ra,…,ra}中选取以月month为单位的月—请求合并评论数据