一种基于GitHub的软件资产推荐的方法及系统与流程

文档序号:17927130发布日期:2019-06-15 00:29阅读:227来源:国知局
一种基于GitHub的软件资产推荐的方法及系统与流程

本发明涉及一种软件资产推荐的方法及系统。



背景技术:

github拥有海量开源代码库以及版本,github已经成为了管理软件开发以及发现已有代码的首选方法,是代码玩家的必备工具。虽然传统的软件资产管理技术能够掌握软件开发和代码使用情况,但是无法及时根据软件和代码的开发情况推荐出最符合开发人员需求的软件和代码,因此软件开发人员在庞大的软件和代码仓库里需要花费多余的时间去寻找自己的需求目标,从而增加了开发人员的负担和时间精力成本,从而不利于加快软件资产市场的发展。



技术实现要素:

本发明的目的在于,在合理、科学的前提下,有效地推荐出最符合开发者需求的软件资产,为开发者提供高效的选择路径,节约时间和人力成本,促进软件开发市场的发展。

为了达到上述目的,本发明提供一种基于github的软件资产推荐的方法及系统,本发明的步骤包含:

步骤1、获取github平台的软件资产信息;

步骤2、建立开发者信息模型a,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交;

步骤3、建立软件资产信息模型b,以记录开发者对软件资产的不同行为的总次数;

步骤4、github中收集开发者对软件资产的行为信息,建立开发者-行为矩阵模型c,以用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产;

步骤5、对每一个开发者对软件资产的行为信息加入不同的权值k;

步骤6、利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前top-n个软件资产。

优选地,在步骤1所述的软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。

优选地,所述步骤2中,根据开发者信息模型a来构建开发者查找模块、浏览模块、下载模块、编辑模块、提交模块,通过各模块来记录开发者所行为过的软件资产列表。

优选地,所述步骤5中把查找、浏览、下载、编辑、提交的k值依次分别设置为1、2、3、4、5。

优选地,在步骤6中,基于开发者相似性度量技术,根据相似度计算方法来计算目标开发者i和其他开发者j之间的相似度sim(i,j);

其中,h为开发者i、j共同行为过的软件资产集合;ki,h、kj,h分别表示开发者i、j对共同行为过的软件资产h的实际行为值;分别表示开发者i、j行为过的软件资产权值均值。

优选地,开发者行为预测技术将sim(i,j)值按照降序排列,取前n个相似度值最高的邻近开发者集n,再根据邻近开发者集n中的每个邻近开发者u分别对目标开发者i的目标项目s计算行为预测值vi,s;

其中,邻近开发者u对目标项目s的行为权值为ku,s;表示邻近开发者u对所有行为过的软件资产的行为平均值。

优选地,为开发者推荐出符合需求的前top-n个软件资产的方法步骤包含:

步骤6.1、为先设定一个阀值a;

步骤6.2、当vi,s>a时放入top-n集合中,并降序排列;

步骤6.3、最后根据开发者行为的相似度和行为预测值来推荐出最符合开发者需求的前n个软件资产。

一种基于github的软件资产推荐系统,包括以下模块:开发者信息获取模块、软件资产信息获取模块、软件资产信息构建模块、开发者行为信息构建模块、目标开发者行为信息获取模块、目标开发者软件资产信息获取模块、相似开发者行为信息获取模块、相似开发者的软件资产信息获取模块、top-n推荐软件资产显示模块;

开发者信息获取模块、软件资产信息获取模块各与github平台中的数据仓库连接,以获取软件资产信息和开发者信息;

所述开发者信息包含:开发者账户id信息和不同开发者对软件资产的行为信息;

开发者信息获取模块发送开发者信息给开发者行为信息构建模块,开发者行为信息构建模块依次对应生成不同账户id信息的开发者对软件资产的行为信息;

目标开发者行为信息获取模块查找开发者行为信息构建模块的所有开发者,并获取目标开发者对应的目标开发者的行为信息,并对不同行为按照权值最高的行为来记录;

所述软件资产信息获取模块将获取到的软件资产信息发送给软件资产信息构建模块,以生成每个软件资产的id信息、每个软件资产的url信息、每个软件资产的名称,每个软件资产的url中记录开发者总行为次数;

目标开发者软件资产信息获取模块获取目标开发者行为信息获取模块发送的目标开发者对应的目标开发者的行为信息;

目标开发者行为信息获取模块为相似开发者行为信息获取模块发送目标开发者的行为信息,相似开发者行为信息获取模块生成相似开发者行为信息;

目标开发者软件资产信息获取模块为相似开发者行为信息获取模块提供目标开发者行为过的软件资产集合,相似开发者行为信息获取模块生成相似开发者共同行为过的软件资产集合;

目标开发者软件资产信息获取模块为相似开发者的软件资产信息获取模块发送目标开发者的软件资产信息,相似开发者的软件资产信息获取模块生成相似开发者的软件资产信息;

相似开发者的软件资产信息获取模块为相似开发者行为信息获取模块提供相似开发者的软件资产信息,相似开发者行为信息获取模块根据相似开发者的软件资产信息获取模块提供的相似开发者的软件资产信息生成相似开发者对软件资产的行为信息;

相似开发者行为信息获取模块和相似开发者的软件资产信息获取模块利用开发者行为度量相似性获取到相似开发者的相似行为和行为过的软件资产信息,再发送给top-n推荐软件资产显示模块;

top-n推荐软件资产显示模块根据行为预测技术和协同过滤推荐算法综合推荐出最符合目标开发者需求的top-n软件资产。

优选地,所述开发者行为信息构建模块进一步包括:开发者查找构建模块、开发者浏览构建模块、开发者下载构建模块、开发者编辑构建模块、开发者提交构建模块;

所述开发者对软件资产的行为信息包括:查找、浏览、下载、编辑、提交;

开发者查找构建模块用来记录开发者查找过的软件资产列表、开发者浏览构建模块用来记录开发者浏览过的软件资产列表、开发者下载构建模块用来记录开发者下载过的软件资产列表、开发者编辑构建模块用来记录开发者编辑过的软件开发代码列表、开发者提交构建模块用来记录开发者提交的软件资产列表。

优选地,所述软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。

本发明的有益效果不仅可以有效识别和整合开发者的需求,为开发人员减少了时间精力,还可以有助于软件开发市场的发展,提高开发人员的开发率和创新性。本发明在合理、科学的前提下,有效的推荐出最符合开发者需求的软件资产,最大限度地发挥软件资产效益,对推动软件资产产业的发展壮大,以及促进开发人员的创新具有重要意义。

附图说明

图1是本发明方法的流程示意图;

图2是本发明系统的总体架构示意图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。

如附图2所示,本发明的系统结构包含:开发者信息获取模块(203)、软件资产信息获取模块(202)、软件资产信息构建模块(210)、开发者行为信息构建模块(209)、目标开发者行为信息获取模块(211)、目标开发者软件资产信息获取模块(212)、相似开发者行为信息获取模块(214)、相似开发者的软件资产信息获取模块(213)、top-n推荐软件资产显示模块(215)。

开发者信息获取模块(203)、软件资产信息获取模块(202)各与github平台中的数据仓库(201)连接,以获取软件资产信息和开发者信息;所述开发者信息包含:开发者账户id信息和不同开发者对软件资产的行为信息。

开发者信息获取模块(203)发送开发者信息给开发者行为信息构建模块(209),开发者行为信息构建模块(209)依次对应生成不同账户id信息的开发者对软件资产的行为信息。

目标开发者行为信息获取模块(211)查找开发者行为信息构建模块(209)的所有开发者,并获取目标开发者对应的目标开发者的行为信息,并对不同行为按照权值最高的行为来记录。

所述软件资产信息获取模块(202)将获取到的软件资产信息发送给软件资产信息构建模块(210),以生成每个软件资产的id信息、每个软件资产的url(资源定位符)信息、每个软件资产的名称,每个软件资产的url中记录开发者总浏览次数、开发者总下载次数。

目标开发者软件资产信息获取模块(212)获取目标开发者行为信息获取模块(211)发送的目标开发者对应的目标开发者的行为信息;目标开发者行为信息获取模块(211)为相似开发者行为信息获取模块(214)发送目标开发者的行为信息,相似开发者行为信息获取模块(214)生成相似开发者行为信息;目标开发者软件资产信息获取模块(212)为相似开发者行为信息获取模块(214)提供目标开发者行为过的软件资产集合,相似开发者行为信息获取模块(214)生成相似开发者共同行为过的软件资产集合。

目标开发者软件资产信息获取模块(212)为相似开发者的软件资产信息获取模块(213)发送目标开发者的软件资产信息,相似开发者的软件资产信息获取模块(213)生成相似开发者的软件资产信息;相似开发者的软件资产信息获取模块(213)为相似开发者行为信息获取模块(214)提供相似开发者的软件资产信息,相似开发者行为信息获取模块(214)根据相似开发者的软件资产信息获取模块(213)提供的相似开发者的软件资产信息生成相似开发者对软件资产的行为信息;相似开发者行为信息获取模块(214)和相似开发者的软件资产信息获取模块(213)利用开发者行为度量相似性获取到相似开发者的相似行为和行为过的软件资产信息,再发送给top-n推荐软件资产显示模块(215)。

top-n推荐软件资产显示模块(215)根据行为预测技术和协同过滤推荐算法综合推荐出最符合目标开发者需求的top-n软件资产。

所述开发者行为信息构建模块(209)进一步包括:开发者查找构建模块(205)、开发者浏览构建模块(204)、开发者下载构建模块(206)、开发者编辑构建模块(207)、开发者提交构建模块(208);所述开发者对软件资产的行为信息包括:查找、浏览、下载、编辑、提交。

开发者查找构建模块(205)用来记录开发者查找过的软件资产列表、开发者浏览构建模块(204)用来记录开发者浏览过的软件资产列表、开发者下载构建模块(206)用来记录开发者下载过的软件资产列表、开发者编辑构建模块(207)用来记录开发者编辑过的软件开发代码列表、开发者提交构建模块(208)用来记录开发者提交的软件资产列表。

所述软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。

如附图1所示,本发明的步骤包含:

步骤1、获取github平台的软件资产信息。

步骤2、建立开发者信息模型a,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交。

步骤3、建立软件资产信息模型b,以记录开发者对软件资产的不同行为的总次数,例如浏览总次数、下载总次数等。

步骤4、github中收集开发者对软件资产的行为信息,建立开发者-行为矩阵模型c,以用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产。

步骤5、对每一个开发者对软件资产的行为信息加入不同的权值k;把查找、浏览、下载、编辑、提交的k值依次分别设置为1、2、3、4、5。

步骤6、利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前top-n个软件资产。

进一步地,所述步骤2中,根据开发者信息模型a来构建开发者查找模块、浏览模块、下载模块、编辑模块、提交模块,通过各模块来记录开发者所行为过的软件资产列表,包含查找列表、浏览列表、下载列表、编辑列表、提交列表。

进一步地,在步骤6中,基于开发者相似性度量技术,根据相似度计算方法来计算目标开发者i和其他开发者j之间的相似度sim(i,j);

其中,h为开发者i、j共同行为过的软件资产集合;ki,h、kj,h分别表示开发者i、j对共同行为过的软件资产h的实际行为值;分别表示开发者i、j行为过的软件资产权值均值。

开发者行为预测技术将sim(i,j)值按照降序排列,取前n个相似度值最高的邻近开发者集n,再根据邻近开发者集n中的每个邻近开发者u分别对目标开发者i的目标项目s计算行为预测值vi,s;

其中,邻近开发者u对目标项目s的行为权值为ku,s;表示邻近开发者u对所有行为过的软件资产的行为平均值。

为开发者推荐出符合需求的前top-n个软件资产的方法步骤包含:

步骤6.1、为先设定一个阀值a;

步骤6.2、当vi,s>a时放入top-n集合中,并降序排列;

步骤6.3、最后根据开发者行为的相似度和行为预测值来推荐出最符合开发者需求的前n个软件资产。

尽管本发明的内容已经通过上述优选实例作了详细介绍,但应当认识到上述的描述不应被认为是本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1