中文

深度 API 学习再探

软件工程 2022-05-04 v1

摘要

理解正确的 API 使用序列是程序员在使用不熟悉库时最重要的任务之一。然而,程序员常因 API 文档质量差或基于查询的搜索策略低效而难以找到合适信息。为助解决此问题,研究者提出多种方法,根据给定的、代表程序员信息需求的自然语言查询来推荐 API 序列。在此类工作中,Gu 等人采用深度学习方法,特别是 RNN 编码器-解码器架构来完成该任务,并在 Java 常见 API 上取得可喜结果。本文旨在复现其结果并将相同方法应用于 Python 的 API。此外,我们将性能与较新的基于 Transformer 的方法(即 CodeBERT)在同一任务上比较。实验显示,在仔细进行数据清洗后性能指标明显下降。得益于大量源代码文件的预训练与有效编码技术,CodeBERT 在很大程度上优于 Gu 等人的方法。

关键词

引用

@article{arxiv.2205.01254,
  title  = {Deep API Learning Revisited},
  author = {James Martin and Jin L. C. Guo},
  journal= {arXiv preprint arXiv:2205.01254},
  year   = {2022}
}

备注

10 pages, 6 figures. This paper is accepted at ICPC 2022 (the 30th IEEE/ACM International Conference on Program Comprehension)