软件开发者在开发过程遇到应用程序编程接口(application programming interface,api)使用问题时,通常希望能够得到有效的api使用模式建议,从而帮助其学习和使用.传统的api推荐方法会挖掘和学习代码库中api的使用知识,然后给开发者推荐与上下文相关的api.然而由于上下文信息表征不够充分,以及推荐列表中冗余项和同质化内容的出现影响了推荐性能.针对这一问题,构建项目和方法与api的api层次调用图(api hierarchy call graph,AHCG)模型以更好地表达api上下文关系,充分利用api结构信息和语义信息来减少冗余项和降低同质化内容被推荐的可能性,进而提出基于上下文感知并面向多样性的api推荐(context-aware based api recommendation with diversity,CapiRD)方法.该方法中引入相关性度量和关联性度量,最大限度地保留相关结果,同时平衡已选api与候选api的关联性,以尽可能挖掘到合理的初选api列表.最后结合最大边缘相关算法,在标准模式数据集上学习相关性和关联性的最佳权重组合,并进行多样性重排推荐.在2210个项目构成的3类数据集上进行实验并验证推荐性能,实验结果表明,CapiRD在基于上下文的api推荐场景下能够有效提高推荐性能.在所有数据集的api推荐中,平均精度(mean average precision,MAP)指标平均提升值约9%,在Top-1的推荐中,成功率(success rate)指标平均提升约13%.
暂无评论