中文

PyART:Python 实时 API 推荐

软件工程 2021-02-10 v1

摘要

对于 Python 等动态语言,实时 API 推荐是一项挑战。许多现有 API 推荐技术非常有效,但主要支持静态语言。少数 Python IDE 基于类型推断及在大量 Python 库与第三方库语料上的训练提供 API 推荐功能。因此,当类型信息缺失或目标 API 为项目特定时,它们可能无法推荐或给出较差推荐。本文提出一种新方法 PyART,用于 Python 程序的实时 API 推荐。其特点是通过轻量级分析推导所谓的乐观数据流,该数据流既非可靠也非完备,但模拟了人类可推导的局部数据流信息。它在请求推荐的程序点上下文中提取三类特征:数据流、词元相似度与词元共现。使用随机森林算法基于这些特征训练预测模型。在 8 个流行 Python 项目上的评估表明 PyART 能提供有效的 API 推荐。当可利用历史提交时(即最先进工具 ARIREC 的目标场景),我们的平均 top-1 准确率达 50% 以上,平均 top-10 准确率达 70% 以上,分别以 28.48%–39.05% 的 top-1 准确率优势和 24.41%–30.49% 的 top-10 准确率优势优于 APIREC 与 Intellicode(即 Visual Studio 中的推荐组件)。在其他应用如历史注释不可用与跨项目推荐中,PyART 也展现出更好的整体性能。平均推荐耗时少于一秒,满足实时要求。

关键词

引用

@article{arxiv.2102.04706,
  title  = {PyART: Python API Recommendation in Real-Time},
  author = {Xincheng He and Lei Xu and Xiangyu Zhang and Rui Hao and Yang Feng and Baowen Xu},
  journal= {arXiv preprint arXiv:2102.04706},
  year   = {2021}
}

备注

12 pages