Skip to main content
QUICK REVIEW

[论文解读] FACOS: Finding API Relevant Contents on Stack Overflow with Semantic and Syntactic Analysis

Kien Luong, M.A. Hadi|arXiv (Cornell University)|Nov 13, 2021
Software Engineering Research被引用 5
一句话总结

FACOS 是一种新颖的框架,通过结合微调后的 CodeBERT 所提供的语义理解与代码片段及自然语言文本的句法分析,提升了在 Stack Overflow 上的 API 资源检索效果。通过使用可学习的加权因子联合建模语义与句法相关性得分,FACOS 在 F1 分数上相比最先进基线方法 DATYS 提升了 13.9%。

ABSTRACT

Collecting API examples, usages, and mentions relevant to a specific API method over discussions on venues such as Stack Overflow is not a trivial problem. It requires efforts to correctly recognize whether the discussion refers to the API method that developers/tools are searching for. The content of the thread, which consists of both text paragraphs describing the involvement of the API method in the discussion and the code snippets containing the API invocation, may refer to the given API method. Leveraging this observation, we develop FACOS, a context-specific algorithm to capture the semantic and syntactic information of the paragraphs and code snippets in a discussion. FACOS combines a syntactic word-based score with a score from a predictive model fine-tuned from CodeBERT. FACOS beats the state-of-the-art approach by 13.9% in terms of F1-score.

研究动机与目标

  • 为了解决在非正式的 Stack Overflow 讨论中,多个 API 拥有相似名称时导致的 API 名称歧义问题。
  • 通过利用文本与代码的语义和句法特征,提升针对给定 API 方法的相关 Stack Overflow 线程的检索效果。
  • 开发一种上下文感知系统,以在识别与特定 API 相关的线程方面,超越现有的基于关键词与类型的方法。
  • 为下游任务(如 API 推荐与自动化文档增强)提供更好的支持,利用众包知识。

提出的方法

  • FACOS 将 DATYS+ 的句法得分(在代码片段中执行完全限定 API 类型名称的贪心标记匹配)与微调后的 CodeBERT 模型生成的语义得分相结合。
  • 语义部分计算目标 API 的注释与实现代码,与每个 Stack Overflow 线程中文本内容或代码内容之间的上下文相似度。
  • 通过可学习的加权融合机制,将句法与语义得分合并为联合相关性得分,加权因子在训练过程中学习得到。
  • 使用 API 方法查询的基准数据集进行评估,相关性由人工标注的线程相关性确定。
  • 消融研究评估了各组件的贡献,以及加权因子对整体性能的影响。
  • 通过将 DATYS 改进为 DATYS+,使框架能更有效地处理代码片段,从而提升代码中的句法匹配效果。

实验结果

研究问题

  • RQ1RQ1: FACOS 是否能在针对给定 API 方法检索相关 Stack Overflow 线程方面,超越最先进基线方法(DATYS)?
  • RQ2RQ2: 语义与句法两个组件各自如何贡献于 FACOS 的整体性能?
  • RQ3RQ3: 语义与句法得分之间的加权因子如何影响 FACOS 的 F1 分数?

主要发现

  • FACOS 在基线方法 DATYS 的基础上,将 F1 分数提升了 13.9%,证明了其在 API 资源检索方面的优越性能。
  • 基于微调后的 CodeBERT 的语义组件在相关性检测中起到了关键作用,尤其在识别提及 API 的上下文相关段落方面表现突出。
  • 句法组件(DATYS+)通过在代码片段中有效匹配 API 类型名称,提升了检索准确性,尤其在处理模糊或缩写引用时表现更优。
  • 消融研究证实,语义与句法组件均不可或缺,最优加权因子能平衡两者贡献,从而实现最高的 F1 分数。
  • 具有可学习权重的联合相关性评分机制优于固定或未加权的融合策略,表明语义与句法信号自适应整合的重要性。

更好的研究,从现在开始

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

无需绑定信用卡

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