【技术实现步骤摘要】
一种基于软件开发问答网站的API教程汇编生成方法
本专利技术属于智能化软件开发
,具体涉及一种API教程汇编生成方法。
技术介绍
许多软件开发任务都需要利用API来完成,因此学习并掌握各种API库(如JDK、Android)是软件开发人员的基本技能之一。虽然API参考文档以及API教程等文档为API的定义和使用提供了相关说明,但是这些文档中所描述API知识经常很难被开发人员有效利用。此外,开发人员在日常的软件开发过程中还会碰到各种API文档中没有涉及的问题,需要相关的问题解释或者解决方案建议。因此,API相关的问题讨论在软件开发问答网站(如StackOverflow)中占据着相当的比例。然而,软件开发问答网站往往只提供非常粗粒度的描述标签(如所涉及的编程语言)以及有限的检索支持(如基于关键字的文本检索),使得这些API问题讨论难以在开发人员需要时被有效收集和利用。软件开发问答网站中的API讨论大多都是围绕特定的API问题场景进行的。例如,功能实现问题场景关注于实现特定功能所需要的API、功能性(非功能性)改进问 ...
【技术保护点】
1.一种基于软件开发问答网站的API教程汇编生成方法,其特征在于,以概念模型以及各类API问题场景类型所需的关键信息和API角色定义为基础,从软件开发问答网站中的API问题讨论中抽取API问题场景实例以及描述所需的关键信息的句子和扮演相关角色的API,从而形成API教程汇编所需要的API问题场景结构化描述;/n首先,通过对Stack Overflow上带有Java或Android标签的API相关问题讨论进行采样分析,识别并确定8种典型的API问题场景类型,即功能实现、非功能性改进、功能性改进、错误处理、原理性解释、API比较、替代解决方案、API使用方式学习;/n同时,通过 ...
【技术特征摘要】
1.一种基于软件开发问答网站的API教程汇编生成方法,其特征在于,以概念模型以及各类API问题场景类型所需的关键信息和API角色定义为基础,从软件开发问答网站中的API问题讨论中抽取API问题场景实例以及描述所需的关键信息的句子和扮演相关角色的API,从而形成API教程汇编所需要的API问题场景结构化描述;
首先,通过对StackOverflow上带有Java或Android标签的API相关问题讨论进行采样分析,识别并确定8种典型的API问题场景类型,即功能实现、非功能性改进、功能性改进、错误处理、原理性解释、API比较、替代解决方案、API使用方式学习;
同时,通过采样分析确定总体概念模型;其中,每个API讨论都包含一个问题和若干个答案;每个API问题场景类型都定义一组相关的API角色以及所需要的关键信息;抽取自问题描述的每一个API问题场景实例都属于某个API问题场景类型的实例,其中包含一组描述性句子以及相关的API;抽取自问题的描述性句子提供相应的API问题场景类型所需要的关键信息描述;抽取自问题和答案的API提供相应的API问题场景类型所需要的相关API角色;
针对8种典型的API问题场景类型,分别识别出各自所需要的关键信息,共17种,具体如下:
功能实现:所要实现的功能;
非功能性改进:已实现的功能、当前的次优实现方案、期望的改进;
功能性改进:期待结果、实际结果、当前的不正确实现方案;
错误处理:错误类型、错误出现上下文、当前有问题的实现;
原理性解释:原理性问题;
API比较:比较对象、比较场景;
替代解决方案:目前解决方案、期待解决方案描述;
API使用方式学习:使用对象、使用场景;
针对8种典型的API问题场景类型,识别出5种典型的API角色,具体为:上下文API、所建议的API、目前使用的API、错误API、异常类型API。
2.根据权利要求1所述的API教程汇编生成方法,其特征在于,具体步骤如下:
(1)API识别与API问题讨论筛选;
从所有候选的问题讨论中筛选出与目标API库中的API相关的问题讨论;筛选依据为:讨论内容中提及的目标API库中的API,以及问题讨论中是否包含被接受的答案、问题讨论的整体评分;
(2)问题场景及关键信息识别;
对于每一个筛选得到的API问题讨论进行分析,确认其中包含哪些问题场景,同时确定问题中的每个句子属于哪一类关键信息;为此,需要对问题陈述中的文本内容进行预处理,预处理包括分词分句、将代码片段替换为占位符、将句子中的API元素替换为特殊符号;
针对所定义的8种问题场景类型,通过人工标注API问题形成训练数据,利用这些训练数据为每一种问题场景类型训练一个二元文本分类器;给定一个API问题,依次使用每一种问题场景类型分类器对其进行判定,确定是否包含对应类型的问题场景;同一个API问题可以同时包含多种类型的问题场景;
针对所定义的17种关键信息类型,通过人工标注API问题中的句子形成训练数据,利用这些训练数据为每一种关键信息类型训练一个二元文本分类器;给定一个API问题中的每一个句子,根据问题场景类型分类器的判断结果,依次使用API问题包...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。