paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Effective API recommendation without historical software repositories

无需历史软件仓库的有效 API 推荐
ASE Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering2018匹配度 3/10 · 该论文属于机器学习/程序语言交叉中的API推荐与开发者工具方向,使用排序模型提升API推荐准确率,但不涉及用户核心关注的静态分析、Agentic/LLM程序、LLM改进静态分析或形式化验证,也不涉及浮点程序分析或贝叶斯程序分析。引用 52 inbox
Xiaoyu Liu, LiGuo Huang, Vincent Ng
crossref: 2026-09-12

AI 速览

一句话:提出 RecRank,用 API 使用路径特征与排序式判别模型,在不依赖历史仓库的前提下提升 top-1 API 推荐准确率。

学习并定位完成编程任务所需的正确 API 既耗时又费力,因此自动 API 推荐具有实用价值。已有的基于图的统计模型能够较有效地给出 top-10 API 候选,但在准确推荐真正的 top-1 API 上表现不佳。为弥补这一缺陷,作者提出 RecRank:一种基于排序的判别式方法,利用从代码中抽取的 API 使用路径特征对候选 API 进行区分与重排序,并且不依赖历史软件仓库。作者在由 1385+8 个开源项目组成的大规模语料上进行实证评估,结果表明,与当前最先进的 API 推荐方法相比,RecRank 在 top-1 API 推荐准确率和平均倒数排名(MRR)上均取得显著提升。

问题
自动 API 推荐中,现有基于图的统计模型虽能给出较好的 top-10 候选,却难以准确推荐真正的 top-1 API,且通常依赖历史软件仓库。
方法
提出 RecRank,从代码中提取 API 使用路径特征,采用基于排序的判别式学习对候选 API 进行重排序,从而在不使用历史软件仓库的情况下改进 top-1 推荐。
评估
在 1385+8 个开源项目构成的大规模语料上开展实证评估,与最先进的 API 推荐方法比较 top-1 准确率与 MRR,结果显示显著提升。
原文摘要(Abstract)

It is time-consuming and labor-intensive to learn and locate the correct API for programming tasks. Thus, it is beneficial to perform API recommendation automatically. The graph-based statistical model has been shown to recommend top-10 API candidates effectively. It falls short, however, in accurately recommending an actual top-1 API. To address this weakness, we propose RecRank, an approach and tool that applies a novel ranking-based discriminative approach leveraging API usage path features to improve top-1 API recommendation. Empirical evaluation on a large corpus of (1385+8) open source projects shows that RecRank significantly improves top-1 API recommendation accuracy and mean reciprocal rank when compared to state-of-the-art API recommendation approaches.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4725,
  title = {Effective API recommendation without historical software repositories},
  author = {Xiaoyu Liu and LiGuo Huang and Vincent Ng},
  booktitle = {ASE},
  year = {2018},
  doi = {10.1145/3238147.3238216}
}