【技术实现步骤摘要】
面向自然语言形式的基于讲义和StackOverflow的API信息检索方法
本专利技术属于信息检索领域.,尤其涉及一种面向自然语言形式的基于讲义和StackOverflow的API信息检索方法。
技术介绍
目前,业内常用的现有技术是这样的:现有的方法大多基于全文检索,比如利用基于VSM的Lucene全文检索引擎包,直接根据自然语言问题在文档库中进行关键词的检索和匹配,以及使用基于神经网络的Word2Vec词向量模型可以很好的挖掘词之间的上下文关系,因此可以先将问题和文档分别进行词向量表示,再根据两者之间的相似性返回结果。除此之外,CK方法则利用了源码中软件领域的概念知识,通过提取API图谱进行API相关文档推荐。开发者们通常使用API来加速软件开发进程或提高软件质量。但随着API库规模的扩大和API数目的增加,开发者们往往会遇到不熟悉的API或是新的API库。此时,他们需要知道用什么API和怎样使用它们,而现实中一些学习资料和论坛比如API讲义和StackOverflow(SO)能够帮助查找和使用API。前者整合了用于解释API的文字描述和代码实例,并按编程任务进行分组。后者是一个供开发者们学习和分享编程知识的问答(Q&A)网站,汇集的大量问答帖可以被认为是群智的一种,作为官方文档(比如API讲义)的补充。有研究表明,API讲义能够帮助开发者们理解泛型编程环境中API的某些行为,而SO中的问答帖则倾向于对特定编程环境中的API用法进行解释,将两者结合能够提供更多类型的API相关信息。现有的方法不能为开发者们同时提供两种资料上的API相关信息检索。为 ...
【技术保护点】
1.一种面向自然语言形式问题的基于讲义和Stack Overflow的API相关信息检索方法,其特征在于,所述面向自然语言形式问题的基于讲义和Stack Overflow的API相关信息检索方法包括以下步骤:步骤一,构建API与知识项的API‑KI库;API‑KI库包含API与讲义段的API‑段对、API与问答帖的API‑Q&A对,并进行提取;步骤二,对自然语言形式的提问进行分析,获取与问题相应的潜在API;步骤三,使用相关性鉴别模型TDML对相关的API‑KI对进行鉴别;步骤四,将潜在API与相关的API‑KI对匹配生成候选列表,并根据排序策略对候选列表进行降序排列,最后返回排序后的API‑KI列表作为问题的解答。
【技术特征摘要】
1.一种面向自然语言形式问题的基于讲义和StackOverflow的API相关信息检索方法,其特征在于,所述面向自然语言形式问题的基于讲义和StackOverflow的API相关信息检索方法包括以下步骤:步骤一,构建API与知识项的API-KI库;API-KI库包含API与讲义段的API-段对、API与问答帖的API-Q&A对,并进行提取;步骤二,对自然语言形式的提问进行分析,获取与问题相应的潜在API;步骤三,使用相关性鉴别模型TDML对相关的API-KI对进行鉴别;步骤四,将潜在API与相关的API-KI对匹配生成候选列表,并根据排序策略对候选列表进行降序排列,最后返回排序后的API-KI列表作为问题的解答。2.如权利要求1所述的面向自然语言形式问题的基于讲义和StackOverflow的API相关信息检索方法,其特征在于,步骤一中,从API讲义中提取API-段对包括:对API讲义划分为多个段,每段内容紧密相关并集中于某一个主题;采用相同的分段策略,提取<href>标签中的内容来获取该段的API,将API与对应段相连结为API-段对;对于没有被<href>标签链接的API,将段打散为多个标记,并使API与每个词相匹配,从匹配的上下文中根据关键词查找API,同样生成API-段对;从SO问答帖中提取API-Q&A对包括:根据问题的标签收集与API相关的问答帖;构造正例时,挑选的问答对中所提问题包括至少三个回答且有一个被接受的回答作为最终结果;被接受的问题包含代码;将回答中的代码进行分词处理,并与该问题标签类的讲义中的各API进行匹配,得到问答帖对应的API;正例API-Q&A对标记为相关。未被接受的答案中的API由于不能很好地解决该问题,API与问答对组成API-Q&A对的负例;构造负例时,收集含有未接受回答的问题;每个未接受回答的分数小于0;提取未接受回答中的API,并与问答对组成API-Q&A对的负例;随机选取的负例数目和正例相同,负例API-Q&A对标记为不相关。3.如权利要求1所述的面向自然语言形式问题的基于讲义和StackOverflow的API相关信息检索方法,其特征在于,步骤二中,先将问题转化为数个潜在的API,再用API检索相关文档;使用Javadoc对自然语言问题进行分析并转化为潜在的API,具体包括:Jsoup从在线文档中提取API相应的Javadoc;提取出的API规范包括API全称和API描述;Word2Vec对问题、API全称、API描述三种语料进行训练,得到语料库中每个词的词向量;再分别计算各文档中向量的均值,整个文档的向量,vi表示第i个文档向量;vq作为自然语言形式问题的向量;和分别作为第i个API全称和API描述;表示vq和之间的余弦相似性,表示vq和之间的余弦相似性;将和降序排列,选择API描述和API全称相似性排名前m的API作为初始的API候选,分别用APId和APIn表示;同时出现在这两个集合中的API更有可能成为潜在的API;将API分为子集1、子集2、子集3,然后使用公式(1)为每个候选API打分;子集1为同时出现在APId和APIn中的API,子集2为只出现在的APId中的API,子集3为只出现在APIn中的API;η作为调整因子用来确保子集1的分数要比其他子集高;η为0.1;公式(1)遵循两个规则:子集1中的API要比其他子集中的API排名高;相似度值高的API要比相似度值低的API排名更靠前;对三个子集中的所有API的分数进行排序,选择m个最高的分数对应的API作为潜在API列表;m值为20。4.如权利要求1所述的面向自然语言形式问题的基于讲义和StackOverflow的API相关信息检索方法,其特征在于,步骤三中,基于迁移的深度度量学习方法TDML对相关的API-KI对进行鉴别包括:为API-讲义段对的训练集,xiT为第i个带标签的API-讲义段对样本,NT是API-KI库中API-讲义段对的数目;为API-Q&A对的训练集,包含NS的API-Q&A对,其中xiS为第i个带标签的API-Q&A...
【专利技术属性】
技术研发人员:荆晓远,吴迪,黄鹤,谢宇,姚永芳,訾璐,李云鹤,
申请(专利权)人:广东石油化工学院,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。