中文

ARCLIN:面向非格式化文本的自动化 API 提及解析

软件工程 2022-04-21 v2

摘要

在线技术论坛(如 StackOverflow)是开发者讨论技术问题的热门平台,例如如何使用特定应用程序编程接口(API)、如何解决编程任务或如何修复代码中的错误。这些讨论常能提供官方文档未涵盖的关于如何使用软件的辅助知识。此类知识的自动抽取将支持一系列下游任务,如 API 搜索或索引。然而,与专家撰写的官方文档不同,开放论坛中的讨论由普通开发者撰写,他们使用简短且非正式的文本,包含拼写错误或缩写。从非结构化自然语言文档中准确识别 API 并将其链接到 API 仓库中的条目面临三大挑战:(1)区分 API 提及与常见词;(2)识别无完全限定名的 API 提及;(3)消除具有相似方法名但位于不同库中的 API 提及的歧义。本文中,为应对这些挑战,我们提出了 ARCLIN 工具,其可在不使用人工标注的情况下有效区分并链接 API。具体而言,我们首先设计一个 API 识别器,通过在双向长短期记忆(Bi-LSTM)模块之上使用条件随机场(CRF)从自然语言句子中自动抽取 API 提及,然后应用上下文感知评分机制计算提及与 API 仓库中各条目的相似度。与先前基于启发式规则的方法相比,我们提出的无需人工检查的工具有在高质量数据集 Py-mention 上高出 8% 的表现,该数据集包含来自五个流行 Python 库的 558 个提及与 2,830 个句子。

关键词

引用

@article{arxiv.2201.01459,
  title  = {ARCLIN: Automated API Mention Resolution for Unformatted Texts},
  author = {Yintong Huo and Yuxin Su and Hongming Zhang and Michael R. Lyu},
  journal= {arXiv preprint arXiv:2201.01459},
  year   = {2022}
}

备注

Accepted by the 44th International Conference on Software Engineering (ICSE '22)