本公开涉及信息
技术领域:
,具体地,涉及一种应用编程接口的推荐方法、装置、存储介质和电子设备。
背景技术:
:随着计算机技术和软件开发技术的不断发展,为了满足用户的各种需求,应用程序(英文:application,缩写:app)的功能越来越多样化,而应用程序在开发过程中,为了提高封装性和移植能力,通常会采用应用编程接口(英文:applicationprogramminginterface,缩写:api)的形式对外提供服务和功能访问。相应的,针对不同的功能、开发平台和编程语言,互联网上产生了大量的api,因此,如何从大量的api中向用户推荐满足具体开发需求的api一直是相关研究中的重点。现有的推荐方法通常是根据已知的评分矩阵进行推荐,而由于评分矩阵中数据稀疏和新用户冷启动等问题,会导致推荐的覆盖率和准确度都不高。技术实现要素:本公开的目的是提供一种应用编程接口的推荐方法、装置、存储介质和电子设备,用以解决现有技术中应用编程接口推荐的覆盖率和准确度低的问题。为了实现上述目的,根据本公开实施例的第一方面,提供一种应用编程接口的推荐方法,所述方法包括:对评分矩阵进行矩阵分解,以获取推荐矩阵,所述评分矩阵中包括至少一个已知用户对至少一个应用编程接口api的评分,所述推荐矩阵中包括目标用户对所述至少一个api的预测评分;根据所述至少一个已知用户对应的至少一个用户标签集合,和所述目标用户对应的用户标签集合,确定所述目标用户与所述至少一个已知用户的用户相似度;根据所述至少一个api对应的至少一个接口标签集合,确定所述至少一个api中每两个api的接口相似度;根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述至少一个api的能力评分,确定所述目标用户与所述至少一个api的关联程度;根据所述关联程度,向所述目标用户推荐所述至少一个api中的api。可选的,所述对评分矩阵进行矩阵分解,以获取推荐矩阵,包括:对所述评分矩阵进行正则化矩阵分解,以获取多种第一矩阵和第二矩阵的组合,每种所述组合中的第一矩阵和第二矩阵的乘积均约等于所述评分矩阵;以损失函数最小化为条件,在所有所述组合中确定目标组合;根据所述目标组合中的第一矩阵和第二矩阵确定所述推荐矩阵。可选的,所述用户标签集合中包括至少一个能够描述用户需求的标签,所述接口标签集合包括至少一个能够描述api的标签;所述根据所述至少一个已知用户对应的至少一个用户标签集合,和所述目标用户对应的用户标签集合,确定所述目标用户与所述至少一个已知用户的用户相似度,包括:据所述至少一个已知用户对应的至少一个用户标签集合,和所述目标用户对应的用户标签集合,利用第一公式计算所述目标用户与所述至少一个已知用户的用户相似度;所述第一公式包括:其中,ui为所述目标用户,uj为所述至少一个已知用户中第j个已知用户,md(ui,uj)为ui与uj的用户相似度,uti为ui对应的用户标签集合,utj为uj对应的用户标签集合;所述根据所述至少一个api对应的至少一个接口标签集合,确定所述至少一个api中每两个api的接口相似度,包括:根据所述至少一个api对应的至少一个接口标签集合,利用第二计算公式获取所述至少一个api中每两个api的接口相似度;所述第二计算公式包括:其中,apim为所述至少一个api中第m个api,apin为所述至少一个api中第n个api,apid(apim,apin)为apim与apin的接口相似度,apitm为apim对应的接口标签集合,apitn为apin对应的接口标签集合。可选的,所述根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述至少一个api的能力评分,确定所述目标用户与所述至少一个api的关联程度,包括:根据第一api对应的第一能力特征描述矩阵,建立所述第一api的能力模型,所述第一能力特征描述矩阵中包括所述第一api的多个能力特征在评价等级上的模糊隶属度,所述第一api为所述至少一个api中的任一个api;根据所述第一api的能力模型,获取所述第一api对应的能力评分;根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述第一api对应的能力评分,确定所述目标用户与所述第一api的关联程度。可选的,所述根据第一api对应的第一能力特征描述矩阵,建立所述第一api的能力模型,包括:根据所述第一能力特征描述矩阵,利用第三计算公式建立所述第一api的能力模型;所述第三计算公式包括:其中,其中,所述第一能力特征描述矩阵包括p个所述能力特征在q个评价等级上的模糊隶属度,dcm(apim)为第m个api的所述能力评分,kab为第a个能力特征在第b个评价等级上的模糊隶属度,vb为第b个评价等级,wa为第a个能力特征对应的权重。可选的,所述根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述至少一个api的能力评分,确定所述目标用户与所述至少一个api的关联程度,包括:根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述能力评分,利用第四计算公式获取所述目标用户与所述至少一个api的关联程度;所述第四计算公式包括:r(ui,apim)=λ1·rim+λ2·mdi+λ3·apidm+λ4·dcm(apim)其中,ui为所述目标用户,apim为所述至少一个api中第m个api,r(ui,apim)为所述目标用户与第m个api的所述关联程度,rim为所述目标用户对第m个api的预测评分,mdi为所述目标用户与所述至少一个已知用户的所述用户相似度的平均值,apidm为第m个api与所述至少一个api的所述接口相似度的平均值,dcm(apim)为第m个api的所述能力评分,λ1、λ2、λ3、λ4分别为所述预测评分、所述用户相似度、所述接口相似度和所述能力评分对应的权重。可选的,所述根据所述关联程度,向所述目标用户推荐所述至少一个api中的api,包括:根据所述目标用户与所述至少一个api中每个api的所述关联程度,确定每个api的顺序;根据所述顺序向所述目标用户推荐所述至少一个api中预设数量的api。根据本公开实施例的第二方面,提供一种应用编程接口的推荐装置,所述装置包括:分解模块,用于对评分矩阵进行矩阵分解,以获取推荐矩阵,所述评分矩阵中包括至少一个已知用户对至少一个应用编程接口api的评分,所述推荐矩阵中包括目标用户对所述至少一个api的预测评分;第一相似度确定模块,用于根据所述至少一个已知用户对应的至少一个用户标签集合,和所述目标用户对应的用户标签集合,确定所述目标用户与所述至少一个已知用户的用户相似度;第二相似度确定模块,用于根据所述至少一个api对应的至少一个接口标签集合,确定所述至少一个api中每两个api的接口相似度;关联程度确定模块,用于根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述至少一个api的能力评分,确定所述目标用户与所述至少一个api的关联程度;推荐模块,用于根据所述关联程度,向所述目标用户推荐所述至少一个api中的api。可选的,所述分解模块包括:分解子模块,用于对所述评分矩阵进行正则化矩阵分解,以获取多种第一矩阵和第二矩阵的组合,每种所述组合中的第一矩阵和第二矩阵的乘积均约等于所述评分矩阵;最小化子模块,用于以损失函数最小化为条件,在所有所述组合中确定目标组合;矩阵确定子模块,用于根据所述目标组合中的第一矩阵和第二矩阵确定所述推荐矩阵。可选的,所述用户标签集合中包括至少一个能够描述用户需求的标签,所述接口标签集合包括至少一个能够描述api的标签;所述第一相似度确定模块用于:据所述至少一个已知用户对应的至少一个用户标签集合,和所述目标用户对应的用户标签集合,利用第一公式计算所述目标用户与所述至少一个已知用户的用户相似度;所述第一公式包括:其中,ui为所述目标用户,uj为所述至少一个已知用户中第j个已知用户,md(ui,uj)为ui与uj的用户相似度,uti为ui对应的用户标签集合,utj为uj对应的用户标签集合;所述第二相似度确定模块用于:根据所述至少一个api对应的至少一个接口标签集合,利用第二计算公式获取所述至少一个api中每两个api的接口相似度;所述第二计算公式包括:其中,apim为所述至少一个api中第m个api,apin为所述至少一个api中第n个api,apid(apim,apin)为apim与apin的接口相似度,apitm为apim对应的接口标签集合,apitn为apin对应的接口标签集合。可选的,所述关联程度确定模块包括:模型建立子模块,用于根据第一api对应的第一能力特征描述矩阵,建立所述第一api的能力模型,所述第一能力特征描述矩阵中包括所述第一api的多个能力特征在评价等级上的模糊隶属度,所述第一api为所述至少一个api中的任一个api;评分获取子模块,用于根据所述第一api的能力模型,获取所述第一api对应的能力评分;关联程度确定子模块,用于根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述第一api对应的能力评分,确定所述目标用户与所述第一api的关联程度。可选的,所述模型建立子模块用于:根据所述第一能力特征描述矩阵,利用第三计算公式建立所述第一api的能力模型;所述第三计算公式包括:其中,其中,所述第一能力特征描述矩阵包括p个所述能力特征在q个评价等级上的模糊隶属度,dcm(apim)为第m个api的所述能力评分,kab为第a个能力特征在第b个评价等级上的模糊隶属度,vb为第b个评价等级,wa为第a个能力特征对应的权重。可选的,所述关联程度确定模块用于:根据所述推荐矩阵中的所述预测评分、所述用户相似度、所述接口相似度和所述能力评分,利用第四计算公式获取所述目标用户与所述至少一个api的关联程度;所述第四计算公式包括:r(ui,apim)=λ1·rim+λ2·mdi+λ3·apidm+λ4·dcm(apim)其中,ui为所述目标用户,apim为所述至少一个api中第m个api,r(ui,apim)为所述目标用户与第m个api的所述关联程度,rim为所述目标用户对第m个api的预测评分,mdi为所述目标用户与所述至少一个已知用户的所述用户相似度的平均值,apidm为第m个api与所述至少一个api的所述接口相似度的平均值,dcm(apim)为第m个api的所述能力评分,λ1、λ2、λ3、λ4分别为所述预测评分、所述用户相似度、所述接口相似度和所述能力评分对应的权重。可选的,所述推荐模块包括:顺序确定子模块,用于根据所述目标用户与所述至少一个api中每个api的所述关联程度,确定每个api的顺序;推荐子模块,用于根据所述顺序向所述目标用户推荐所述至少一个api中预设数量的api。根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的应用编程接口的推荐方法的步骤。根据本公开实施例的第四方面,提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的应用编程接口的推荐方法的步骤。通过上述技术方案,本公开首先对包括了至少一个已知用户对至少一个api评分的评分矩阵进行矩阵分解,以得到包括了目标用户对至少一个api预测评分的推荐矩阵,然后分别根据已知用户和目标用户对应的用户标签集合确定目标用户和每个已知用户的用户相似度,再根据至少一个api对应的接口标签集合,确定每两个api的接口相似度,之后根据推荐矩阵的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户和每个api的关联程度,最后根据目标用户和每个api的关联程度,向目标用户推荐api。本公开能够在评分矩阵的基础上,结合应用编程接口的能力、多个用户之间的相似度和多个应用编程接口之间的相似度,来推荐适合目标用户的应用编程接口,提高了应用编程接口推荐的覆盖率和准确度。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据一示例性实施例示出的一种应用编程接口的推荐方法的流程图;图2是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图;图3是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图;图4是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图;图5是根据一示例性实施例示出的一种应用编程接口的推荐装置的框图;图6是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图;图7是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图;图8是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图;图9是根据一示例性实施例示出的一种电子设备的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。图1是根据一示例性实施例示出的一种应用编程接口的推荐方法的流程图,如图1所示,该方法包括:步骤101,对评分矩阵进行矩阵分解,以获取推荐矩阵,评分矩阵中包括至少一个已知用户对至少一个应用编程接口api的评分,推荐矩阵中包括目标用户对至少一个api的预测评分。举例来说,目标用户在软件开发的过程中,需要在多个api中寻找能够满足具体需求的api,首先可以对预先获知的评分矩阵进行矩阵分解,以得到能够预测目标用户对各个api的预测评分的预测矩阵,矩阵分解算法可以采用张量分解(英文:tensordecomposition)、正则化奇异值分解(英文:regularizedsingularvaluedecomposition)等算法。其中,评分矩阵能够反映其他开发者(即已知用户)对各个api的评分,例如,评分矩阵可以如表1所示,其中每一个数值,代表一个已知用户对一个api的评分,评分可以为0或1,1代表该已知用户推荐这个api,0代表该已知用户不推荐或者没有使用过这个api,矩阵中的最后一行表示目标用户对每个api的评分未知,通过对评分矩阵进行矩阵分解,来获得目标用户对每个api的预测评分。表1步骤102,根据至少一个已知用户对应的至少一个用户标签集合,和目标用户对应的用户标签集合,确定目标用户与至少一个已知用户的用户相似度。示例的,已知用户和目标用户在软件开发的过程中,都有各自的开发习惯和擅长的领域,例如不同的开发岗位、使用的不同种类的开发平台、或编程语言等,开发岗位相似,或者具有相似开发习惯的用户可能对api的选择具有相似的倾向性,因此可以根据已知用户和目标用户的用户标签集合,来确定目标用户和每个已知用户之间的用户相似度,以达到提高api推荐的准确度的目的。其中,用户标签集合可以包括一个或多个用户标签,用户标签可以是目标用户或者已知用户在搜索api的过程中,自己设置的,也可以是在技术交流平台(例如it社区、社交软件等)中目标用户、已知用户或其他用户互相标记的,用户标签例如可以是:“软件工程师”、“c++”、“数据挖掘”、“可视化界面”等。步骤103,根据至少一个api对应的至少一个接口标签集合,确定至少一个api中每两个api的接口相似度。示例的,每个api也有各自适应的使用范围,例如:功能、开发平台、编程语言等,目标用户在选择api的过程中,具有相似功能,或者使用相同开发平台和编程语言的api更具有参考价值,因此可以根据api对应的接口标签集合来确定多个api中每两个api的接口相似度,以达到提高api推荐的准确度的目的。其中,接口标签集合可以包括一个或多个接口标签,接口标签可以是任一个用户在使用api或者搜索api的过程中,给api标记的标签,也可以是利用数据抓取软件(例如:网络爬虫软件)获取相应api在网络中的数据信息,进行总结获取的标签,接口标签例如可以是:“java”、“天气预测”、“android”等。步骤104,根据推荐矩阵中的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户与至少一个api的关联程度。步骤105,根据关联程度,向目标用户推荐至少一个api中的api。举例来说,在确定了推荐矩阵之后,利用推荐矩阵中的预测评分、用户相似度、接口相似度和每个api的能力评分,来确定目标用户与每个api的关联程度。例如,可以分别设置预测评分、用户相似度、接口相似度和能力评分对应的权重,利用四个参数加权求和来确定目标用户与每个api的关联程度。其中,api的能力评分,可以是利用数据抓取软件获取每个api在网络中的数据信息,以得到能够反映每个api的多个能力特征评价的能力特征描述矩阵,再根据每个api对应的能力特征描述矩阵建立能力模型,获取每个api的能力评分,能够更加全面客观的反映每个api的具体能力特征,以达到提高api推荐的准确度的目的。最后再根据关联程度的大小,向目标用户推荐多个api中满足预设条件的api。例如,可以向目标用户推荐关联程度最大的预设数量(例如:3个)的api,也可以向目标用户推荐关联程度大于预设阈值的api。综上所述,本公开首先对包括了至少一个已知用户对至少一个api评分的评分矩阵进行矩阵分解,以得到包括了目标用户对至少一个api预测评分的推荐矩阵,然后分别根据已知用户和目标用户对应的用户标签集合确定目标用户和每个已知用户的用户相似度,再根据至少一个api对应的接口标签集合,确定每两个api的接口相似度,之后根据推荐矩阵的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户和每个api的关联程度,最后根据目标用户和每个api的关联程度,向目标用户推荐api。本公开能够在评分矩阵的基础上,结合应用编程接口的能力、多个用户之间的相似度和多个应用编程接口之间的相似度,来推荐适合目标用户的应用编程接口,提高了应用编程接口推荐的覆盖率和准确度。图2是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图,如图2所示,步骤101可以通过以下步骤来实现:步骤1011,对评分矩阵进行正则化矩阵分解,以获取多种第一矩阵和第二矩阵的组合,每种组合中的第一矩阵和第二矩阵的乘积均约等于评分矩阵。步骤1012,以损失函数最小化为条件,在所有组合中确定目标组合。步骤1013,根据目标组合中的第一矩阵和第二矩阵确定推荐矩阵。举例来说,对评分矩阵进行正则化矩阵分解,得到多种第一矩阵和第二矩阵的组合,其中,每种组合中的第一矩阵和第二矩阵的乘积均约等于评分矩阵。以评分矩阵中包括m个用户(包括:m-1个已知用户和一个目标用户)对n个api的评分来举例,即评分矩阵为m*n维矩阵,那么经过正则化矩阵分解,可以得到多种第一矩阵和第二矩阵的组合,其中一个组合中的第一矩阵例如可以m*d维,那么对应的第二矩阵则为d*n维的,d为大于1的正整数。在所有组合中,按照损失函数最小化为条件,确定目标组合,将目标组合中的第一矩阵和第二矩阵的乘积作为推荐矩阵。其中,损失函数为:其中,cost为矩阵分解后的损失值,pi为第一矩阵中的第i行(1*d维),qj为第二矩阵中的第j列(d*1维),rij评分矩阵中第i行第j列的评分,||pi||是pi的范数,||qj||是qj的范数,λ为0到1之间的正则化因子,用于防止最小化损失函数过拟合的问题。可选的,用户标签集合中包括至少一个能够描述用户需求的标签,接口标签集合包括至少一个能够描述api的标签。其中,步骤102可以通过以下步骤来实现:据至少一个已知用户对应的至少一个用户标签集合,和目标用户对应的用户标签集合,利用第一公式计算目标用户与至少一个已知用户的用户相似度。第一公式包括:其中,ui为目标用户,uj为至少一个已知用户中第j个已知用户,md(ui,uj)为ui与uj的用户相似度,uti为ui对应的用户标签集合,utj为uj对应的用户标签集合。步骤103可以通过以下步骤来实现:根据至少一个api对应的至少一个接口标签集合,利用第二计算公式获取至少一个api中每两个api的接口相似度。第二计算公式包括:其中,apim为至少一个api中第m个api,apin为至少一个api中第n个api,apid(apim,apin)为apim与apin的接口相似度,apitm为apim对应的接口标签集合,apitn为apin对应的接口标签集合。举例来说,目标用户和其他已知用户的用户相似度,和至少一个api中每两个api的接口相似度,都可以采用jaccard相似性系数的原理来计算,其中,md(ui,uj)为ui和uj分别对应的两个用户标签集合的交集与并集的比值,md(ui,uj)的值越大,说明ui和uj越相似,apid(apim,apin)为apim和apin分别对应的两个接口标签集合的交集与并集的比值,apid(apim,apin)的值越大,说明apim和apin越相似。图3是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图,如图3所示,步骤104可以包括:步骤1041,根据第一api对应的第一能力特征描述矩阵,建立第一api的能力模型,第一能力特征描述矩阵中包括第一api的多个能力特征在评价等级上的模糊隶属度,第一api为至少一个api中的任一个api。步骤1042,根据第一api的能力模型,获取第一api对应的能力评分。步骤1043,根据推荐矩阵中的预测评分、用户相似度、接口相似度和第一api对应的能力评分,确定目标用户与第一api的关联程度。举例来说,以第一api是至少一个api中的任一个api为例,第一api的能力评分,可以是利用数据抓取软件获取第一api在网络中的数据信息,以得到能够反映第一api的多个能力特征在评价等级上的模糊隶属度,并将这些模糊隶属度作为第一能力特征描述矩阵,再根据第一能力特征描述矩阵建立第一api的能力模型,从而获取第一api的能力评分。其中,能力特征可以是:社区活跃度、缺陷率、好评率、可信度等,评价等级可以为:优、良、差等。其中,步骤1041可以通过以下方式来实现:根据第一能力特征描述矩阵,利用第三计算公式建立第一api的能力模型。第三计算公式包括:其中,其中,第一能力特征描述矩阵包括p个能力特征在q个评价等级上的模糊隶属度,dcm(apim)为第m个api的能力评分,kab为第a个能力特征在第b个评价等级上的模糊隶属度,vb为第b个评价等级,wa为第a个能力特征对应的权重。以第一能力特征描述矩阵包括5(即p)个能力特征在3(即q)个评价等级上的模糊隶属度来举例,5个能力特征为{c1、c2、c3、c4、c5},3个评价等级为{v1、v2、v3},5个能力特征对应的权重设置为:{0.2、0.2、0.3、0.2、0.1},表2为对应的第一能力特征描述矩阵,可以求得第一api对应的能力评分为0.085。表2c1c2c3c4c5v10.10.20.30.40.5v20.40.20.30.30.4v30.50.60.40.30.1可选的,步骤104可以通过以下步骤来实现:根据推荐矩阵中的预测评分、用户相似度、接口相似度和能力评分,利用第四计算公式获取目标用户与至少一个api的关联程度。第四计算公式包括:r(ui,apim)=λ1·rim+λ2·mdi+λ3·apidm+λ4·dcm(apim)其中,ui为目标用户,apim为至少一个api中第m个api,r(ui,apim)为目标用户与第m个api的关联程度,rim为目标用户对第m个api的预测评分,mdi为目标用户与至少一个已知用户的用户相似度的平均值,apidm为第m个api与至少一个api的接口相似度的平均值,dcm(apim)为第m个api的能力评分,λ1、λ2、λ3、λ4分别为预测评分、用户相似度、接口相似度和能力评分对应的权重。示例的,利用预测评分、用户相似度、接口相似度和能力评分加权求和来确定目标用户与每个api的关联程度,其中,λ1、λ2、λ3、λ4分别是经验值常数,λ1、λ2、λ3、λ4的和可以设置为1,例如可以设置为:0.4、0.2、0.2、0.2,也可以根据目标用户的具体需求来调整,例如目标用户更倾向于选择和自己相似的用户选择的api,那么可以增大λ2,对应降低λ1、λ3、λ4。图4是根据一示例性实施例示出的另一种应用编程接口的推荐方法的流程图,如图4所示,步骤105可以包括:步骤1051,根据目标用户与至少一个api中每个api的关联程度,确定每个api的顺序。步骤1052,根据顺序向目标用户推荐至少一个api中预设数量的api。举例来说,首先根据每个api的关联程度的大小,确定每个api的顺序,再根据确定的顺序向目标用户推荐至少一个api中预设数量的api。例如可以按照关联程度由大到小降序的顺序对至少一个api中的每个api进行排序,再向目标用户推荐关联程度最大的预设数量(例如可以是5个)的api。还可以预先设置一个关联程度阈值,向目标用户推荐关联程度大于关联程度阈值的api。综上所述,本公开首先对包括了至少一个已知用户对至少一个api评分的评分矩阵进行矩阵分解,以得到包括了目标用户对至少一个api预测评分的推荐矩阵,然后分别根据已知用户和目标用户对应的用户标签集合确定目标用户和每个已知用户的用户相似度,再根据至少一个api对应的接口标签集合,确定每两个api的接口相似度,之后根据推荐矩阵的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户和每个api的关联程度,最后根据目标用户和每个api的关联程度,向目标用户推荐api。本公开能够在评分矩阵的基础上,结合应用编程接口的能力、多个用户之间的相似度和多个应用编程接口之间的相似度,来推荐适合目标用户的应用编程接口,提高了应用编程接口推荐的覆盖率和准确度。图5是根据一示例性实施例示出的一种应用编程接口的推荐装置的框图,如图5所示,该装置200包括:分解模块201,用于对评分矩阵进行矩阵分解,以获取推荐矩阵,评分矩阵中包括至少一个已知用户对至少一个应用编程接口api的评分,推荐矩阵中包括目标用户对至少一个api的预测评分。第一相似度确定模块202,用于根据至少一个已知用户对应的至少一个用户标签集合,和目标用户对应的用户标签集合,确定目标用户与至少一个已知用户的用户相似度。第二相似度确定模块203,用于根据至少一个api对应的至少一个接口标签集合,确定至少一个api中每两个api的接口相似度。关联程度确定模块204,用于根据推荐矩阵中的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户与至少一个api的关联程度。推荐模块205,用于根据关联程度,向目标用户推荐至少一个api中的api。图6是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图,如图6所示,分解模块201包括:分解子模块2011,用于对评分矩阵进行正则化矩阵分解,以获取多种第一矩阵和第二矩阵的组合,每种组合中的第一矩阵和第二矩阵的乘积均约等于评分矩阵。最小化子模块2012,用于以损失函数最小化为条件,在所有组合中确定目标组合。矩阵确定子模块2013,用于根据目标组合中的第一矩阵和第二矩阵确定推荐矩阵。可选的,用户标签集合中包括至少一个能够描述用户需求的标签,接口标签集合包括至少一个能够描述api的标签。第一相似度确定模块202用于:据至少一个已知用户对应的至少一个用户标签集合,和目标用户对应的用户标签集合,利用第一公式计算目标用户与至少一个已知用户的用户相似度。第一公式包括:其中,ui为目标用户,uj为至少一个已知用户中第j个已知用户,md(ui,uj)为ui与uj的用户相似度,uti为ui对应的用户标签集合,utj为uj对应的用户标签集合。第二相似度确定模块203用于:根据至少一个api对应的至少一个接口标签集合,利用第二计算公式获取至少一个api中每两个api的接口相似度。第二计算公式包括:其中,apim为至少一个api中第m个api,apin为至少一个api中第n个api,apid(apim,apin)为apim与apin的接口相似度,apitm为apim对应的接口标签集合,apitn为apin对应的接口标签集合。图7是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图,如图7所示,关联程度确定模块204包括:模型建立子模块2041,用于根据第一api对应的第一能力特征描述矩阵,建立第一api的能力模型,第一能力特征描述矩阵中包括第一api的多个能力特征在评价等级上的模糊隶属度,第一api为至少一个api中的任一个api。评分获取子模块2042,用于根据第一api的能力模型,获取第一api对应的能力评分。关联程度确定子模块2043,用于根据推荐矩阵中的预测评分、用户相似度、接口相似度和第一api对应的能力评分,确定目标用户与第一api的关联程度。可选的,模型建立子模块2041可以通过以下步骤来实现:根据第一能力特征描述矩阵,利用第三计算公式建立第一api的能力模型。第三计算公式包括:其中,其中,第一能力特征描述矩阵包括p个能力特征在q个评价等级上的模糊隶属度,dcm(apim)为第m个api的能力评分,kab为第a个能力特征在第b个评价等级上的模糊隶属度,vb为第b个评价等级,wa为第a个能力特征对应的权重。可选的,关联程度确定模块204可以通过以下步骤来实现:根据推荐矩阵中的预测评分、用户相似度、接口相似度和能力评分,利用第四计算公式获取目标用户与至少一个api的关联程度。第四计算公式包括:r(ui,apim)=λ1·rim+λ2·mdi+λ3·apidm+λ4·dcm(apim)其中,ui为目标用户,apim为至少一个api中第m个api,r(ui,apim)为目标用户与第m个api的关联程度,rim为目标用户对第m个api的预测评分,mdi为目标用户与至少一个已知用户的用户相似度的平均值,apidm为第m个api与至少一个api的接口相似度的平均值,dcm(apim)为第m个api的能力评分,λ1、λ2、λ3、λ4分别为预测评分、用户相似度、接口相似度和能力评分对应的权重。图8是根据一示例性实施例示出的另一种应用编程接口的推荐装置的框图,如图8所示,推荐模块205包括:顺序确定子模块2051,用于根据目标用户与至少一个api中每个api的关联程度,确定每个api的顺序。推荐子模块2052,用于根据顺序向目标用户推荐至少一个api中预设数量的api。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。综上所述,本公开首先对包括了至少一个已知用户对至少一个api评分的评分矩阵进行矩阵分解,以得到包括了目标用户对至少一个api预测评分的推荐矩阵,然后分别根据已知用户和目标用户对应的用户标签集合确定目标用户和每个已知用户的用户相似度,再根据至少一个api对应的接口标签集合,确定每两个api的接口相似度,之后根据推荐矩阵的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户和每个api的关联程度,最后根据目标用户和每个api的关联程度,向目标用户推荐api。本公开能够在评分矩阵的基础上,结合应用编程接口的能力、多个用户之间的相似度和多个应用编程接口之间的相似度,来推荐适合目标用户的应用编程接口,提高了应用编程接口推荐的覆盖率和准确度。图9是根据一示例性实施例示出的一种电子设备300的框图。如图9所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(i/o)接口304,以及通信组件305中的一者或多者。其中,处理器301用于控制该电子设备300的整体操作,以完成上述的应用编程接口的推荐方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:wi-fi模块,蓝牙模块,nfc模块。在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用编程接口的推荐方法。在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的应用编程接口的推荐方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的应用编程接口的推荐方法。综上所述,本公开首先对包括了至少一个已知用户对至少一个api评分的评分矩阵进行矩阵分解,以得到包括了目标用户对至少一个api预测评分的推荐矩阵,然后分别根据已知用户和目标用户对应的用户标签集合确定目标用户和每个已知用户的用户相似度,再根据至少一个api对应的接口标签集合,确定每两个api的接口相似度,之后根据推荐矩阵的预测评分、用户相似度、接口相似度和至少一个api的能力评分,确定目标用户和每个api的关联程度,最后根据目标用户和每个api的关联程度,向目标用户推荐api。本公开能够在评分矩阵的基础上,结合应用编程接口的能力、多个用户之间的相似度和多个应用编程接口之间的相似度,来推荐适合目标用户的应用编程接口,提高了应用编程接口推荐的覆盖率和准确度。以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。当前第1页12