Skip to main content
QUICK REVIEW

[论文解读] Resolving API Mentions in Informal Documents

Gias Uddin, Martin P. Robillard|arXiv (Cornell University)|Sep 7, 2017
Software Engineering Research参考文献 27被引用 5
一句话总结

本文提出 ANACE,一种通过结合启发式规则、上下文相似性、结构线索和机器学习来解析开发者论坛帖子中非正式 API 提及的技巧,以将模糊提及(如 'jackson')正确链接到对应 API。该方法通过利用名称匹配、基于名词/动词的上下文相似性以及代码结构分析,实现了高精度和 F1 分数,在处理同音异义词、同义词和虚假提及方面优于基线方法。

ABSTRACT

Developer forums contain opinions and information related to the usage of APIs. API names in forum posts are often not explicitly linked to their official resources. Automatic linking of an API mention to its official resources can be challenging for various reasons, such as, name overloading. We present a technique, ANACE, to automatically resolve API mentions in the textual contents of forum posts. Given a database of APIs, we first detect all words in a forum post that are potential references to an API. We then use a combination of heuristics and machine learning to eliminate false positives and to link true positives to the actual APIs and their resources.

研究动机与目标

  • 解决开发者论坛中因名称模糊或上下文误导而导致的非正式 API 提及解析挑战。
  • 减少因名称重载、同义词、同音异义词和虚假引用导致的 API 提及解析中的误报。
  • 通过将提及链接到正确的 API 条目,提升论坛讨论与官方 API 资源之间的可追溯性。
  • 开发一种结合基于规则的启发式方法与机器学习的混合方法,实现准确且可扩展的解析。
  • 在真实论坛数据上评估该方法,证明其在处理同音异义、同义及平台特定变体等多种模糊类型时的有效性。

提出的方法

  • 通过分词和模式匹配(包括精确匹配、前缀匹配和基于 Jaccard 的模糊匹配)检测论坛帖子中的潜在 API 提及。
  • 从周围文本(3 句钟内窗口)、帖子标题以及其他同一线程中的帖子构建特征上下文,以捕捉上下文线索。
  • 通过从官方 API 门户和主页提取以 API 名称开头、用代词指代或提及依赖关系的句子,生成候选描述。
  • 使用 Jaccard 指数计算提及上下文与候选描述之间的名词和动词相似性得分,以衡量词项重叠程度。
  • 通过识别提及附近的代码元素(如类、接口)并基于类型一致性将它们与候选 API 匹配,评估结构相似性。
  • 使用加权相似性得分(名称、上下文、结构)和流行度指标(使用量和下载量)训练分类器,以预测每个提及最可能对应的 API。

实验结果

研究问题

  • RQ1结合启发式规则与机器学习的混合方法在解析非正式开发者论坛帖子中的模糊 API 提及方面效果如何?
  • RQ2与简单名称匹配相比,上下文、结构和基于名称的特征在多大程度上提升了 API 提及解析的准确性?
  • RQ3不同类型的模糊性(如同音异义、同义和虚假提及)如何影响解析性能?
  • RQ4在高模糊性情况下,流行度指标(使用量和下载量)是否能增强 API 解析的可靠性?
  • RQ5ANACE 在真实论坛数据上的精确率、召回率和 F1 分数方面与基线方法相比表现如何?

主要发现

  • ANACE 在真实论坛数据集上实现了 87.3% 的精确率和 85.1% 的 F1 分数,显著优于基线方法。
  • 引入基于名词和动词的上下文相似性显著提升了解析准确性,尤其在同义和同音异义情况下效果明显。
  • 基于识别出的代码元素(如类名)的结构相似性在区分相似 API 方面具有实质性贡献。
  • 使用 Jaccard 指数的模糊名称匹配有效捕捉了部分匹配,减少了模糊提及中的假阴性。
  • 流行度指标(使用量和下载量)在多个候选具有相似上下文得分时,有助于解决边缘情况。
  • 该系统成功识别并突出显示了论坛线程中的真实 API 提及,客户端界面展示了与官方 API 页面的实时链接。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。