Retrieving API Knowledge from Tutorials and Stack Overflow Based on Natural Language Queries

计算机科学 应用程序编程接口 片段(逻辑) 情报检索 自然语言 知识库 万维网 程序设计语言 自然语言处理
作者
Di Wu,Xiao‐Yuan Jing,Hongyu Zhang,Yang Feng,Haowen Chen,Yuming Zhou,Baowen Xu
出处
期刊:ACM Transactions on Software Engineering and Methodology [Association for Computing Machinery]
卷期号:32 (5): 1-36 被引量:8
标识
DOI:10.1145/3565799
摘要

When encountering unfamiliar APIs, developers tend to seek help from API tutorials and Stack Overflow (SO). API tutorials help developers understand the API knowledge in a general context, while SO often explains the API knowledge in a specific programming task. Thus, tutorials and SO posts together can provide more API knowledge. However, it is non-trivial to retrieve API knowledge from both API tutorials and SO posts based on natural language queries. Two major problems are irrelevant API knowledge in two different resources and the lexical gap between the queries and documents. In this article, we regard a fragment in tutorials and a Question and Answering (Q&A) pair in SO as a knowledge item (KI). We generate ⟨ API, FRA ⟩ pairs (FRA stands for fragment) from tutorial fragments and APIs and build ⟨ API, QA ⟩ pairs based on heuristic rules of SO posts. We fuse ⟨ API, FRA ⟩ pairs and ⟨ API, QA ⟩ pairs to generate API knowledge (AK for short) datasets, where each data item is an ⟨ API, KI ⟩ pair. We propose a novel approach, called PLAN, to automatically retrieve API knowledge from both API tutorials and SO posts based on natural language queries. PLAN contains three main stages: (1) API knowledge modeling, (2) query mapping, and (3) API knowledge retrieving. It first utilizes a deep-transfer-metric-learning-based relevance identification (DTML) model to effectively find relevant ⟨ API, KI ⟩ pairs containing two different knowledge items (⟨ API, QA ⟩ pairs and ⟨ API, FRA ⟩ pairs) simultaneously. Then, PLAN generates several potential APIs as a way to reduce the lexical gap between the query and ⟨ API, KI ⟩ pairs. According to potential APIs, we can select relevant ⟨ API, KI ⟩ pairs to generate potential results. Finally, PLAN returns a list of ranked ⟨ API, KI ⟩ pairs that are related to the query. We evaluate the effectiveness of PLAN with 270 queries on Java and Android AK datasets containing 10,072 ⟨ API, KI ⟩ pairs. Our experimental results show that PLAN is effective and outperforms the state-of-the-art approaches. Our user study further confirms the effectiveness of PLAN in locating useful API knowledge.
最长约 10秒,即可获得该文献文件

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
羊羊完成签到 ,获得积分20
刚刚
宁听白发布了新的文献求助10
1秒前
rookie_b0完成签到,获得积分10
1秒前
1秒前
wangyanyan完成签到,获得积分20
1秒前
标致小伙完成签到,获得积分10
2秒前
2秒前
Harlotte发布了新的文献求助10
3秒前
3秒前
潦草发布了新的文献求助10
3秒前
丘比特应助Ll采纳,获得10
4秒前
4秒前
yu完成签到 ,获得积分10
4秒前
小蘑菇应助zzznznnn采纳,获得10
4秒前
Orange应助俊秀的白猫采纳,获得30
5秒前
深情安青应助小可采纳,获得10
5秒前
5秒前
情怀应助pearl采纳,获得10
5秒前
6秒前
所所应助cybbbbbb采纳,获得10
6秒前
果汁发布了新的文献求助10
6秒前
7秒前
7秒前
Lucas应助柚子采纳,获得10
7秒前
MADKAI发布了新的文献求助10
7秒前
8秒前
爆米花应助咕咕咕采纳,获得10
8秒前
zxy发布了新的文献求助10
8秒前
9秒前
醉人的仔发布了新的文献求助10
9秒前
daguan完成签到,获得积分10
9秒前
桐桐应助nikai采纳,获得10
9秒前
10秒前
11秒前
123完成签到,获得积分10
11秒前
善良香岚发布了新的文献求助10
11秒前
12秒前
12秒前
444完成签到,获得积分10
12秒前
任一发布了新的文献求助30
12秒前
高分求助中
Continuum Thermodynamics and Material Modelling 3000
Production Logging: Theoretical and Interpretive Elements 2700
Social media impact on athlete mental health: #RealityCheck 1020
Ensartinib (Ensacove) for Non-Small Cell Lung Cancer 1000
Unseen Mendieta: The Unpublished Works of Ana Mendieta 1000
Bacterial collagenases and their clinical applications 800
El viaje de una vida: Memorias de María Lecea 800
热门求助领域 (近24小时)
化学 材料科学 生物 医学 工程类 有机化学 生物化学 物理 纳米技术 计算机科学 内科学 化学工程 复合材料 基因 遗传学 物理化学 催化作用 量子力学 光电子学 冶金
热门帖子
关注 科研通微信公众号,转发送积分 3527699
求助须知:如何正确求助?哪些是违规求助? 3107752
关于积分的说明 9286499
捐赠科研通 2805513
什么是DOI,文献DOI怎么找? 1539954
邀请新用户注册赠送积分活动 716878
科研通“疑难数据库(出版商)”最低求助积分说明 709759