CN107730131A - 一种众包软件开发者的能力预测及推荐方法、装置 - Google Patents
一种众包软件开发者的能力预测及推荐方法、装置 Download PDFInfo
- Publication number
- CN107730131A CN107730131A CN201711007931.4A CN201711007931A CN107730131A CN 107730131 A CN107730131 A CN 107730131A CN 201711007931 A CN201711007931 A CN 201711007931A CN 107730131 A CN107730131 A CN 107730131A
- Authority
- CN
- China
- Prior art keywords
- task
- developer
- class
- learning model
- development
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063112—Skill-based matching of a person or a group to a task
Abstract
本发明公开了一种众包软件开发者的能力预测及推荐方法及装置,所述方法包括:确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
Description
技术领域
本发明涉及众包软件开发技术领域,尤其涉及一种众包软件开发者的能力预测及推荐方法及装置。
背景技术
众包已经成为了软件开发中的一种重要方法。诸如Topcoder,Freelancer,Kaggle等平台通常采用竞赛的方法利用独立开发者来完成软件开发任务。以Topcoder为例,首先由任务请求者在Topcoder上发布一个任务并给出一定数量的奖金。然后Topcoder上的开发者查看任务描述和奖金数额以决定该任务是否值得去做。接着,感兴趣的开发者将在该任务下进行注册并在完成任务后提交他们的成果至Topcoder。最后Topcoder上将会有一个核心团队负责为他们的成果进行评估。然后Topcoder将对高评分者按照规定发放奖金。
上述过程被称为“公开选拔(open call)模式”,该模式中软件开发的效率与质量很大程度上取决于接受该任务的开发者的技术水平与花费的精力。最近,有一些工作正在尝试向特定任务推荐开发者。现有的研究工作本质上都是在考虑如何寻找技术水平能够满足任务要求的开发者,但实际上开发者的开发水平会随着他执行任务数量的增长而逐渐提升。然而没有人研究众包软件开发过程中开发者的能力提升问题。现有的对推荐开发者的研究工作都将开发者的能力视为静态不变的。这样,导致一些具有潜力的开发者在推荐的过程中容易被忽视,他们在未来的工作中可能会有更出色的表现。
可见,目前对于众包软件开发平台的开发者的推荐都没有考虑到开发者在执行开发任务的过程中能力的提升,这种推荐方式缺乏准确性。
发明内容
为解决上述技术问题,本发明实施例提供了一种众包软件开发者的能力预测及推荐方法及装置。
本发明实施例提供的众包软件开发者的能力预测及推荐方法,包括:
确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;
对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;
基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;
利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;
基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
本发明实施例中,所述确定开发者已开发任务的任务难度,包括:
针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励;
对所述任务的各个难度因子进行归一化,并基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
本发明实施例中,所述根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值,包括:
将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
本发明实施例中,所述对历史任务进行分类,得到多个任务类,包括:
获取历史任务集合,对所述历史任务集合中的各个任务采用聚类算法进行分类,得到多个任务类。
本发明实施例中,所述基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线,包括:
对于各个任务类,查找执行有所述任务类中的任务的开发者;
将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号;
将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
本发明实施例中,所述利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型,包括:
利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数;
基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
本发明实施例中,所述基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者,包括:
获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类;
将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值;
基于所计算出的开发能力值,为所述目标任务推荐开发者。
本发明实施例提供的众包软件开发者的能力预测及推荐装置,包括:
开发能力值计算模块,用于确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;
任务分类模块,用于对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;
开发能力曲线计算模块,用于基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;
学习曲线模型计算模块,用于利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;
推荐模块,用于基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
本发明实施例中,所述开发能力值计算模块包括:
获取单元,用于针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励;
归一单元,用于对所述任务的各个难度因子进行归一化;
难度计算单元,用于基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
本发明实施例中,所述开发能力值计算模块包括:
能力值计算单元,用于将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
本发明实施例中,所述任务分类模块,具体用于获取历史任务集合,对所述历史任务集合中的各个任务采用聚类算法进行分类,得到多个任务类。
本发明实施例中,所述开发能力曲线计算模块包括:
查找单元,用于对于各个任务类,查找执行有所述任务类中的任务的开发者;
提取单元,用于将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号;
开发能力曲线形成单元,用于将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
本发明实施例中,所述学习曲线模型计算模块包括:
系数计算单元,用于利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数;
学习曲线模型确定单元,用于基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
本发明实施例中,所述推荐模块包括:
任务类计算单元,用于获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类;
学习曲线模型提取出单元,用于将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值;
推荐单元,用于基于所计算出的开发能力值,为所述目标任务推荐开发者。
本发明实施例的技术方案中,确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。采用本发明实施例的技术方案,考虑到众包软件开发者在执行开发任务过程中能力的提升,对开发者的能力进行了更加精准的预测,众包软件开发者的推荐结果也就更加准确。
附图说明
图1为本发明实施例的众包软件开发者的能力预测及推荐方法的流程示意图;
图2为本发明实施例的系统框架图;
图3为本发明实施例的任务难度的计算流程图;
图4为本发明实施例的学习曲线模型的计算流程图;
图5为本发明实施例的开发者推荐的流程图;
图6为本发明实施例的众包软件开发者的能力预测及推荐装置的结构组成示意图;
图7为本发明实施例的开发能力值计算模块的结构组成示意图;
图8为本发明实施例的开发能力曲线计算模块的结构组成示意图;
图9为本发明实施例的学习曲线模型计算模块的结构组成示意图;
图10为本发明实施例的推荐模块的结构组成示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
本发明实施例的技术方案,是一种考虑了开发者的技术水平在不断提升的众包软件开发者推荐方案。为了实现这个目标,本发明实施例以Topcoder为研究对象,因为Topcoder是最早且最大的众包软件开发平台。研究表明,人在从事重复性工作时,其能力会随着重复次数逐渐提高,其提升规律可以用学习曲线模型进行刻画。而Topcoder开发者不断执行任务的过程与其类似,通过实验分析,发现大部分Topcoder开发者的能力变化符合负指数型学习曲线模型。本发明实施例的实现就是基于该模型。
为了更加详细了解本发明实施例的技术方案,以下对本发明实施例涉及到的关键因素进行分析:
因素一:如何度量开发者的能力。在开发者完成一个任务后,平台(如Topcoder)往往会根据其任务完成的质量给出一个评分,该评分反映了开发者的软件开发能力。但是,不同的任务由于其任务要求不同,其难度也各不相同。而开发者在每个任务上的得分可以视作工人能力与任务难度的综合表现。为了刻画各个开发者在平台上的相对开发能力,需要剔除平台评分中的难度因素。为此,本发明实施例设计了一种任务难度的计算方法,用于计算开发者的能力。
因素二:如何描述开发者能力的变化情况。为了描述开发者能力的变化情况,将开发者能力按照时间排序,并使用学习曲线进行拟合。通过比较了负指数型学习曲线模型和双曲型学习曲线模型,发现负指数型学习曲线模型对开发者能力的拟合效果更好。本发明实施例采用负指数型学习曲线模型来描述开发者能力的变化情况。
因素三:在推荐过程中,由于不同的任务所需的开发语言、框架和平台不同,在新任务被发布时,需要先找到适合执行这个任务的开发者的候选集合。本发明采用聚类的方法,对历史任务进行聚类,将类似的任务分到一类中。当新任务被发布时,对新任务进行分类,找到与其相似的任务类,从而找到合适的开发者。
图1为本发明实施例的众包软件开发者的能力预测及推荐方法的流程示意图,如图1所示,所述众包软件开发者的能力预测及推荐方法包括以下步骤:
步骤101:确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值。
本发明实施例中,基于难度加权得分来度量开发者的相对能力。
首先需要计算每个任务的任务难度。以Topcoder平台为例,通过四个难度因子来计算任务难度,分别是任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励。由于这四项难度因子与任务难度均为正相关关系,通过对这四个难度因子归一化并累加来表示任务难度。具体过程如下:
(1)归一化:设任务i的持续时间为ti,奖金额度为pi,注册人数为ri,可靠性奖励为bi。然后,将这四个参数进行归一化。设四项数据的最大值分别为tmax、pmax、rmax、bmax,则任务i的时间参数奖金参数为人数参数为可靠性参数为
(2)计算任务难度:难度参数Di=Ti+Pi+Ri+Bi。难度参数的计算方法可以进行改进,比如对四项参数进行加权求和。因为直接累加相对简单,且实验表明该计算方法是有效的,故采用这种方法。
(3)计算开发能力值:用开发者w执行任务i的得分(简称任务得分)乘以该任务的难度参数Di,就得到了开发者w在任务i上的表现分,也即开发者w在任务i上的相对能力(开发能力值)。
步骤102:对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务。
本发明实施例中,如图2所示,基于任务类构建开发者的学习曲线模型数据库,首先,执行如下过程:
(1)聚类:对历史任务进行聚类。聚类的方法有很多,如K Means聚类算法、层次聚类算法、SOM聚类算法等。这里以K Means聚类算法为例对历史任务进行聚类。将任务ti与tj之间的距离定义如下公式(1):
其中,n是技术与平台的总和。xi,k表明第i个任务是否需要第k个技术或平台,若需要则xi,k=1,反之则为0。设一个定值D,将两两之间距离小于D的任务聚为一类。
步骤103:基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线。
对历史任务进行聚类后,执行如下过程:
(2)提取开发者数据:对于某一任务类,首先找出有哪些开发者执行了这个任务类中的任务,然后将每个开发者在该任务类中的每个任务上的难度加权得分(也即开发能力值)提取出来并按照时间排序。将开发者w按时间排序的难度加权分记为yw,按顺序对每个难度加权得分进行编号,其编号记为xw。
步骤104:利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型。
本发明实施例中,开发能力曲线通过yw和xw表征。之后对其进曲线拟合,具体过程如下:
(3)曲线拟合:使用负指数型学习曲线模型对yw和xw进行拟合。
负指数模型的公式如下
其中Qw(x)表示开发者第x个任务时的实时开发能力值,K为开发者的最大开发能力值,pw为开发者初始开发能力值,rw为开发者学习能力值。
先对公式(2)的模型进行如下变换,将其线性化:
Zw(x)=ln(Qw(x)-K) (3)
通过上述变换,将负指数模型变换为如下线性形式:
Zw(x)=αwx+βw (6)
将y的值作为Qw(x)的值带入式(3),得到一组Zw(x)的值。接着使用最小二乘法,用x和Zw(x)的值来估计αw和βw的值。利用αw和βw的值带入式(4)(5)就可以得到pw和rw的值,将pw和rw代入式(2)就得到了开发者w在该类任务下的学习曲线模型。
本发明实施例的技术方案还包括如下过程:
(4)构建学习开发者学习曲线模型数据库:对每一位开发者,计算出其在其执行过的每一类任务下的学习曲线模型,便可得到所有开发者在不同任务类下的学习曲线模型,将这些模型搭建成一个数据库,每一条数据是一个由工人id、任务类id、学习曲线模型三者组成的三元组。
步骤105:基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
本发明实施例提供了一种基于学习曲线模型的推荐系统,如图2所示:
(1)新任务分类:当一个新的任务被发布到平台上时,首先提取出新任务的特征。利用距离公式(1),计算每个任务类中所有任务与这个新任务的距离。然后计算这些距离的平均值,就得到这个新任务到每个任务类的平均距离。找出与新任务平均距离最近的任务类,就是与其最相似的类。
(2)提取开发者学习曲线模型:给新任务分类后,做过这类任务的开发者就是适合这一新任务的开发者。将这些开发者在这类任务下的学习曲线模型从数据库中提取出来。
(3)预测、排名并推荐:利用提取出的学习曲线模型预测每个开发者下一次的难度加权得分(开发能力值)。由于是同一任务下的难度加权得分,任务难度相同,所以通过比较难度加权得分就能够判断开发者在新任务上表现的优劣。选出排名前几的开发者,并将他们推荐给这个新任务。
图3为本发明实施例的任务难度的计算流程图,如图3所示,包括如下步骤:
步骤301:针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励。
步骤302:对所述任务的各个难度因子进行归一化,并基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
步骤303:将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
图4为本发明实施例的学习曲线模型的计算流程图,如图4所示,包括如下步骤:
步骤401:对于各个任务类,查找执行有所述任务类中的任务的开发者。
步骤402:将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号。
步骤403:将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
步骤404:利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数。
步骤405:基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
图5为本发明实施例的开发者推荐的流程图,如图5所示,包括如下步骤:
步骤501:获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类。
步骤502:将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值。
步骤503:基于所计算出的开发能力值,为所述目标任务推荐开发者。
图6为本发明实施例的众包软件开发者的能力预测及推荐装置的结构组成示意图,如图6所示,所述装置包括:
开发能力值计算模块601,用于确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;
任务分类模块602,用于对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;
开发能力曲线计算模块603,用于基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;
学习曲线模型计算模块604,用于利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;
推荐模块605,用于基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
所述任务分类模块602,具体用于获取历史任务集合,对所述历史任务集合中的各个任务采用聚类算法进行分类,得到多个任务类。
本领域技术人员应当理解,图6所示的众包软件开发者的能力预测及推荐装置中的各模块的实现功能可参照前述众包软件开发者的能力预测及推荐方法的相关描述而理解,图6所示的众包软件开发者的能力预测及推荐装置中的各模块的实现功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
图7为本发明实施例的开发能力值计算模块的结构组成示意图,如图7所示,包括:
获取单元701,用于针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励;
归一单元702,用于对所述任务的各个难度因子进行归一化;
难度计算单元703,用于基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
能力值计算单元704,用于将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
图8为本发明实施例的开发能力曲线计算模块的结构组成示意图,如图8所示,包括:
查找单元801,用于对于各个任务类,查找执行有所述任务类中的任务的开发者;
提取单元802,用于将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号;
开发能力曲线形成单元803,用于将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
图9为本发明实施例的学习曲线模型计算模块的结构组成示意图,如图9所示,包括:
系数计算单元901,用于利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数;
学习曲线模型确定单元902,用于基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
图10为本发明实施例的推荐模块的结构组成示意图,如图10所示,包括:
任务类计算单元1001,用于获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类;
学习曲线模型提取出单元1002,用于将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值;
推荐单元1003,用于基于所计算出的开发能力值,为所述目标任务推荐开发者。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明实施例上述装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (14)
1.一种众包软件开发者的能力预测及推荐方法,其特征在于,所述方法包括:
确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;
对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;
基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;
利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;
基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
2.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述确定开发者已开发任务的任务难度,包括:
针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励;
对所述任务的各个难度因子进行归一化,并基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
3.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值,包括:
将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
4.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述对历史任务进行分类,得到多个任务类,包括:
获取历史任务集合,对所述历史任务集合中的各个任务采用聚类算法进行分类,得到多个任务类。
5.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线,包括:
对于各个任务类,查找执行有所述任务类中的任务的开发者;
将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号;
将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
6.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型,包括:
利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数;
基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
7.根据权利要求1所述的众包软件开发者的能力预测及推荐方法,其特征在于,所述基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者,包括:
获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类;
将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值;
基于所计算出的开发能力值,为所述目标任务推荐开发者。
8.一种众包软件开发者的能力预测及推荐装置,其特征在于,所述装置包括:
开发能力值计算模块,用于确定开发者已开发任务的任务难度以及任务得分,并根据所述任务难度以及任务得分计算所述开发者针对所述任务的开发能力值;
任务分类模块,用于对历史任务进行分类,得到多个任务类,其中,每个任务类包括一个以上任务;
开发能力曲线计算模块,用于基于各个任务类以及各个开发者对各个任务的开发能力值,计算各个开发者在不同任务类中的开发能力曲线;
学习曲线模型计算模块,用于利用负指数型学习曲线模型对所述各个开发者在不同任务类中的开发能力曲线进行拟合,得到各个开发者在不同任务类下的学习曲线模型;
推荐模块,用于基于各个开发者在不同任务类下的学习曲线模型,为目标任务推荐开发者。
9.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述开发能力值计算模块包括:
获取单元,用于针对开发者已开发的任务,获取如下难度因子中的至少之一:任务的持续时间、任务的奖金、任务的注册人数、任务的可靠性奖励;
归一单元,用于对所述任务的各个难度因子进行归一化;
难度计算单元,用于基于归一化结果计算所述任务的难度参数,其中,所述任务的难度参数表征所述任务的任务难度。
10.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述开发能力值计算模块包括:
能力值计算单元,用于将所述任务难度与所述任务得分相乘,得到所述开发者针对所述任务的开发能力值。
11.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述任务分类模块,具体用于获取历史任务集合,对所述历史任务集合中的各个任务采用聚类算法进行分类,得到多个任务类。
12.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述开发能力曲线计算模块包括:
查找单元,用于对于各个任务类,查找执行有所述任务类中的任务的开发者;
提取单元,用于将每个开发者在所述任务类中的每个任务的开发能力值提取出,并对每个开发者的开发能力值按时间进行排序,其中,按顺对每个开发能力值进行编号;
开发能力曲线形成单元,用于将每个开发者的开发能力值作为纵坐标,以及将开发能力值的编号作为横坐标,形成每个开发者的开发能力曲线。
13.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述学习曲线模型计算模块包括:
系数计算单元,用于利用所述各个开发者在不同任务类中的开发能力曲线,计算所述负指数型学习曲线模型对应的系数;
学习曲线模型确定单元,用于基于所述负指数型学习曲线模型对应的系数,确定所述各个开发者在不同任务类下的学习曲线模型。
14.根据权利要求8所述的众包软件开发者的能力预测及推荐装置,其特征在于,所述推荐模块包括:
任务类计算单元,用于获取到目标任务时,计算所述目标任务所属的任务类,作为目标任务类;
学习曲线模型提取出单元,用于将所述目标任务类中的各个开发者的学习曲线模型提取出,并基于所提取出的各个开发者的学习曲线模型计算针对所述目标任务的开发能力值;
推荐单元,用于基于所计算出的开发能力值,为所述目标任务推荐开发者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711007931.4A CN107730131B (zh) | 2017-10-24 | 2017-10-24 | 一种众包软件开发者的能力预测及推荐方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711007931.4A CN107730131B (zh) | 2017-10-24 | 2017-10-24 | 一种众包软件开发者的能力预测及推荐方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107730131A true CN107730131A (zh) | 2018-02-23 |
CN107730131B CN107730131B (zh) | 2021-09-10 |
Family
ID=61213925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711007931.4A Active CN107730131B (zh) | 2017-10-24 | 2017-10-24 | 一种众包软件开发者的能力预测及推荐方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107730131B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108564244A (zh) * | 2018-02-26 | 2018-09-21 | 新智数字科技有限公司 | 订单处理方法、装置、设备和半导体可读存储介质 |
CN108596428A (zh) * | 2018-03-13 | 2018-09-28 | 新智数字科技有限公司 | 一种订单派发的方法、装置以及设备 |
CN109272193A (zh) * | 2018-08-13 | 2019-01-25 | 华中师范大学 | 一种基于众智任务的用户置信度分析方法及系统 |
CN109523056A (zh) * | 2018-10-12 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 对象能力分类预测方法及装置、电子设备、存储介质 |
CN109657990A (zh) * | 2018-12-19 | 2019-04-19 | 中国科学技术大学 | 通过程序标记评估学生编程能力的方法 |
CN110706061A (zh) * | 2019-09-12 | 2020-01-17 | Oppo广东移动通信有限公司 | 一种内容分发方法、装置以及计算机存储介质 |
WO2020029400A1 (zh) * | 2018-08-07 | 2020-02-13 | 平安科技(深圳)有限公司 | 项目推荐方法、装置、计算机设备及存储介质 |
CN110929807A (zh) * | 2019-12-06 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 图像分类模型的训练方法、图像分类方法及装置 |
CN112001930A (zh) * | 2020-07-17 | 2020-11-27 | 完美世界控股集团有限公司 | 图片资产处理方法及装置、存储介质、电子装置 |
CN113407844A (zh) * | 2021-07-13 | 2021-09-17 | 北京百度网讯科技有限公司 | 小程序框架的版本推荐方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886402A (zh) * | 2012-12-20 | 2014-06-25 | 国际商业机器公司 | 用于众包系统中的自动激励计算的方法和系统 |
CN104573995A (zh) * | 2015-01-28 | 2015-04-29 | 重庆软文科技有限责任公司 | 众包任务发布、执行方法及发布、执行装置 |
CN104599084A (zh) * | 2015-02-12 | 2015-05-06 | 北京航空航天大学 | 一种群体计算的质量控制方法及装置 |
CN106371840A (zh) * | 2016-08-30 | 2017-02-01 | 北京航空航天大学 | 基于众包的软件开发方法及装置 |
-
2017
- 2017-10-24 CN CN201711007931.4A patent/CN107730131B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886402A (zh) * | 2012-12-20 | 2014-06-25 | 国际商业机器公司 | 用于众包系统中的自动激励计算的方法和系统 |
CN104573995A (zh) * | 2015-01-28 | 2015-04-29 | 重庆软文科技有限责任公司 | 众包任务发布、执行方法及发布、执行装置 |
CN104599084A (zh) * | 2015-02-12 | 2015-05-06 | 北京航空航天大学 | 一种群体计算的质量控制方法及装置 |
CN106371840A (zh) * | 2016-08-30 | 2017-02-01 | 北京航空航天大学 | 基于众包的软件开发方法及装置 |
Non-Patent Citations (2)
Title |
---|
FEIYA SONG ET AL.: "An Approach to Rapid Worker Discovery in Software Crowdsourcing", 《SPRINGER》 * |
SHENGYING PAN ET AL.: "Dynamic Task Allocation Algorithm for Hiring Workers that Learn", 《PROCEEDINGS OF THE TWENTY-FIFTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108564244A (zh) * | 2018-02-26 | 2018-09-21 | 新智数字科技有限公司 | 订单处理方法、装置、设备和半导体可读存储介质 |
CN108596428A (zh) * | 2018-03-13 | 2018-09-28 | 新智数字科技有限公司 | 一种订单派发的方法、装置以及设备 |
CN108596428B (zh) * | 2018-03-13 | 2021-08-03 | 新智数字科技有限公司 | 一种订单派发的方法、装置以及设备 |
WO2020029400A1 (zh) * | 2018-08-07 | 2020-02-13 | 平安科技(深圳)有限公司 | 项目推荐方法、装置、计算机设备及存储介质 |
CN109272193A (zh) * | 2018-08-13 | 2019-01-25 | 华中师范大学 | 一种基于众智任务的用户置信度分析方法及系统 |
CN109523056A (zh) * | 2018-10-12 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 对象能力分类预测方法及装置、电子设备、存储介质 |
CN109523056B (zh) * | 2018-10-12 | 2023-11-07 | 中国平安人寿保险股份有限公司 | 对象能力分类预测方法及装置、电子设备、存储介质 |
CN109657990B (zh) * | 2018-12-19 | 2023-09-01 | 中国科学技术大学 | 通过程序标记评估学生编程能力的方法 |
CN109657990A (zh) * | 2018-12-19 | 2019-04-19 | 中国科学技术大学 | 通过程序标记评估学生编程能力的方法 |
CN110706061A (zh) * | 2019-09-12 | 2020-01-17 | Oppo广东移动通信有限公司 | 一种内容分发方法、装置以及计算机存储介质 |
CN110929807A (zh) * | 2019-12-06 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 图像分类模型的训练方法、图像分类方法及装置 |
CN110929807B (zh) * | 2019-12-06 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 图像分类模型的训练方法、图像分类方法及装置 |
CN112001930A (zh) * | 2020-07-17 | 2020-11-27 | 完美世界控股集团有限公司 | 图片资产处理方法及装置、存储介质、电子装置 |
CN112001930B (zh) * | 2020-07-17 | 2021-05-11 | 完美世界控股集团有限公司 | 图片资产处理方法及装置、存储介质、电子装置 |
CN113407844A (zh) * | 2021-07-13 | 2021-09-17 | 北京百度网讯科技有限公司 | 小程序框架的版本推荐方法、装置、设备以及存储介质 |
CN113407844B (zh) * | 2021-07-13 | 2023-09-29 | 北京百度网讯科技有限公司 | 小程序框架的版本推荐方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107730131B (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107730131A (zh) | 一种众包软件开发者的能力预测及推荐方法、装置 | |
CN109583904A (zh) | 异常操作检测模型的训练方法、异常操作检测方法及装置 | |
CN109189904A (zh) | 个性化搜索方法及系统 | |
CN104750674B (zh) | 一种人机会话满意度预测方法及系统 | |
Chang et al. | Forecasting of manufacturing cost in mobile phone products by case-based reasoning and artificial neural network models | |
CN107766929B (zh) | 模型分析方法及装置 | |
Zhang et al. | A quantitative approach to design alternative evaluation based on data-driven performance prediction | |
JP6246776B2 (ja) | 離職リスク判定器 | |
CN110163647A (zh) | 一种数据处理方法及装置 | |
CN109615280A (zh) | 员工数据处理方法、装置、计算机设备和存储介质 | |
CN110288459A (zh) | 贷款预测方法、装置、设备及存储介质 | |
Chan et al. | A Scorecard‐Markov model for new product screening decisions | |
CN110276677A (zh) | 基于大数据平台的还款预测方法、装置、设备及存储介质 | |
CN109816483A (zh) | 信息推荐方法及装置、可读存储介质 | |
WO2020135642A1 (zh) | 一种基于生成对抗网络的模型训练方法及设备 | |
CN113610552A (zh) | 一种用户流失预测方法及装置 | |
CN107545038A (zh) | 一种文本分类方法与设备 | |
CN110288460A (zh) | 基于前向传播的催收预测方法、装置、设备及存储介质 | |
Petropoulos et al. | The M4 competition:: Bigger. Stronger. Better. | |
CN110263136B (zh) | 基于强化学习模型向用户推送对象的方法和装置 | |
CN115018562A (zh) | 用户预流失预测方法、装置及系统 | |
WO2016106100A1 (en) | Retention risk mitigation system | |
CN117112784A (zh) | 一种文献识别与技术路径演化的实现方法 | |
WO2019149133A1 (zh) | 资源处理方法、存储介质和计算机设备 | |
Rotovei et al. | A methodology for improving complex sales success in CRM Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |