本说明书实施例通常涉及计算机,尤其涉及应用程序接口(applicationprogramming interface,api)的用法聚类方法、搜索方法和装置。
背景技术:
1、随着软件技术的飞速发展,所产生的代码的数量也越来越多。作为代码中的重要组成部分,api的数量也随之快速增长。因而需要一种api搜索工具,使得在准确返回调用该api的函数的代码搜索结果的基础上,能够帮助用户快速查找到想要了解的、他人对于某个api的具体使用方法。
技术实现思路
1、鉴于上述,本说明书实施例提供了一种应用程序接口的用法聚类方法、搜索方法和装置。利用该方法、装置,可以实现对api的高效搜索。
2、根据本说明书的实施例的一个方面,提供一种api的用法聚类方法,包括:获取目标函数代码集,其中,所述目标函数代码集中的各个目标函数代码包含对目标api的调用;针对各个目标函数代码,从该目标函数代码中提取与所述目标api相关的特征,得到该目标函数代码对应于所述目标api的特征集;根据各个目标函数代码对应于所述目标api的特征集中的特征之间的关联,得到所述目标api的用法集和与所述用法集中的各个用法对应的代码片段集,其中,用法包括至少一个特征;以及根据各个代码片段集所包含的代码片段的数目对所述用法集中的各个用法进行排序,得到与所述目标api对应的用法列表和各个用法对应的代码片段集。
3、根据本说明书的实施例的另一个方面,提供一种api搜索方法,包括:接收用户提供的待搜索api;从api用法分类库中查找与所述待搜索api相匹配的用法列表和属于各个用法的代码片段集,其中,所述api用法分类库用于指示api、用法列表以及属于各个用法的代码片段集之间的关系,该用法列表中的用法根据所属的代码片段集所包含的代码片段的数目排序,并且属于同一用法的代码片段集中的各个代码片段对应于该api的特征集中的特征之间具有关联;以及将所述用法列表和属于各个用法的至少部分代码片段集提供给所述用户。
4、根据本说明书的实施例的又一个方面,提供一种api的用法聚类装置,包括:代码获取单元,被配置为获取目标函数代码集,其中,所述目标函数代码集中的各个目标函数代码包含对目标api的调用;特征提取单元,被配置为针对各个目标函数代码,从该目标函数代码中提取与所述目标api相关的特征,得到该目标函数代码对应于所述目标api的特征集;用法聚类单元,被配置为根据各个目标函数代码对应于所述目标api的特征集中的特征之间的关联,得到所述目标api的用法集和与所述用法集中的各个用法对应的代码片段集,其中,用法包括至少一个特征;以及用法排序单元,被配置为根据各个代码片段集所包含的代码片段的数目对所述用法集中的各个用法进行排序,得到与所述目标api对应的用法列表和各个用法对应的代码片段集。
5、根据本说明书的实施例的再一个方面,提供一种api搜索装置,包括:接收单元,被配置为接收用户提供的待搜索api;匹配单元,被配置为从api用法分类库中查找与所述待搜索api相匹配的用法列表和属于各个用法的代码片段集,其中,所述api用法分类库用于指示api、用法列表以及属于各个用法的代码片段集之间的关系,该用法列表中的用法根据所属的代码片段集所包含的代码片段的数目排序,并且属于同一用法的代码片段集中的各个代码片段对应于该api的特征集中的特征之间具有关联;以及用法反馈单元,被配置为将所述用法列表和属于各个用法的至少部分代码片段集提供给所述用户。
6、根据本说明书的实施例的另一方面,提供一种api的用法聚类装置,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的api的用法聚类方法。
7、根据本说明书的实施例的另一方面,提供一种api搜索装置,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的api搜索方法。
8、根据本说明书的实施例的另一方面,提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的api的用法聚类方法和/或api搜索方法。
9、根据本说明书的实施例的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的api的用法聚类方法和/或api搜索方法。
1.一种应用程序接口api的用法聚类方法,包括:
2.如权利要求1所述的方法,其中,所述针对各个目标函数代码,从该目标函数代码中提取与所述目标api相关的特征,得到该目标函数代码对应于所述目标api的特征集包括:
3.如权利要求2所述的方法,其中,所述节点特征包括标签特征,节点标签包括替代符,
4.如权利要求2或3所述的方法,其中,所述节点特征包括关联节点特征,关联节点包括父节点、兄弟节点中的至少一项,
5.如权利要求1所述的方法,其中,所述根据各个目标函数代码对应于所述目标api的特征集中的特征之间的关联,得到所述目标api的用法集和与所述用法集中的各个用法对应的代码片段集包括:
6.如权利要求5所述的方法,其中,所述根据该目标代表特征对应的代码片段集对该代表特征对应的前一轮用法中的各个代表特征对应的代码片段集进行精简,得到与该代表特征对应的当前轮用法对应的代码片段集包括:
7.如权利要求5或6所述的方法,其中,所述判断所确定的相关度分数中是否存在大于预设阈值的相关度分数包括:
8.如权利要求5所述的方法,其中,在所述根据各个代码片段集所包含的代码片段的数目对所述用法集中的各个用法进行排序,得到与所述目标api对应的用法列表和各个用法对应的代码片段集之前,所述方法还包括:
9.一种api搜索方法,包括:
10.一种api的用法聚类装置,包括:
11.如权利要求10所述的装置,其中,所述特征提取单元包括:
12.如权利要求11所述的装置,其中,所述节点特征包括标签特征,节点标签包括替代符,
13.如权利要求11或12所述的装置,其中,所述节点特征包括关联节点特征,关联节点包括父节点、兄弟节点中的至少一项,
14.如权利要求10所述的装置,其中,所述用法聚类单元包括:
15.如权利要求14所述的装置,其中,所述用法序列生成模块被进一步配置为:
16.如权利要求14或15所述的装置,其中,所述用法序列生成模块被进一步配置为:
17.如权利要求14所述的装置,其中,所述装置还包括:
18.一种api搜索装置,包括:
19.一种api的用法聚类装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求1至8中任一所述的api的用法聚类方法。
20.一种api搜索装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求9所述的api搜索方法。