[发明专利]一种基于长短期记忆网络的代码推荐方法有效

专利信息
申请号: 201710687197.4 申请日: 2017-08-11
公开(公告)号: CN107506414B 公开(公告)日: 2020-01-07
发明(设计)人: 余啸;殷晓飞;刘进;伍蔓;姜加明;崔晓晖 申请(专利权)人: 武汉大学
主分类号: G06F16/9535 分类号: G06F16/9535;G06F16/9536
代理公司: 42222 武汉科皓知识产权代理事务所(特殊普通合伙) 代理人: 鲁力
地址: 430072 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 短期 记忆 网络 代码 推荐 方法
【说明书】:

发明涉及一种基于长短期记忆网络的代码推荐方法,针对现有代码推荐技术普遍存在推荐准确率低、推荐效率低等问题,本发明先将源代码提取成API序列,利用长短期记忆网络构建一个代码推荐模型,学习API调用之间的关系,然后进行代码推荐。并使用了dropout技术防止模型过拟合。同时提出运用ReLu函数代替传统饱和函数,解决梯度消失问题加快模型收敛速度,提高模型性能,充分发挥神经网络的优势。本发明的技术方案具有简单、快速的特点,能够较好地提高代码推荐的准确率和推荐效率。

技术领域

本发明属于代码推荐领域,特别是涉及一种基于长短期记忆网络的代码推荐方法。

背景技术

(1)代码推荐系统

开发者往往采用成熟的软件框架和类库来进行开发,以提高软件开发的效率和质量。因此,开发者往往需要知道,如何通过调用相应的API来重用现有的类库或框架。但是学习不熟悉的库函数或框架中的API是软件开发过程中的一个较大的障碍。一方面,近年来各类成熟的软件框架中新增的API数量非常多,使得开发者需要花费更多的时间了解这些软件框架中的API。另一方面,不充足或不准确的API代码样例,不完整或有误的API注释文档以及API自身的复杂性等众多因素使得开发者对于API的学习和使用异常困难。

现代软件开发工作流程的主体是集成开发环境(IDE)。最初其作为用户界面引入特定的编码语言,如普遍使用的C++和Java编程语言。至今,IDE已经演变成一种的独立计算产品,更像是一个高端的字符文档管理控制系统,而不仅仅是用于编码和调试工具的用户界面。其中,为解决开发者的API使用困难这一难题,许多高级开发工具的IDE的核心功能中包括了代码自动推荐功能。然而IDE中包含的代码推荐系统仅考虑API的类型兼容性和可见性,此类代码推荐系统面对复杂软件框架时,所推荐的API准确率低。主要原因是此类推荐方法根据简单规则对所有API筛选之后,推荐大量的方法或字段,最后按照字母表顺序排序并给出推荐结果。

更准确的方法是通过挖掘API的使用模式,将之应用于代码推荐系统中,推荐与开发者需求高度相关的API,并呈现给开发者。现有的挖掘API使用模式的方法都有一定的缺点。例如,基于搜索的代码推荐技术虽然推荐效率很快,但是没有利用时序信息。而经验告诉我们,一个方法中的时序信息很重要。比如,一个API调用序列中,任何一个对象的使用,都必须在该对象构造和声明之后,任何一次文件读写,都必须在该文件创建之前。所以,API调用的顺序,即API调用的时序信息,可以帮助我们更加合理的挖掘API的使用模式。基于图的方式不仅考虑时序信息,还考虑了代码中的结构化信息,如数据依赖关系,控制依赖关系等,但是应用时使用的子图搜索技术效率低。基于自然语言处理的方法,考虑了时序信息,效率折中,且可以考虑多API之间的使用模式。

(2)深度学习

近年来,深度学习应用在自然语言处理领域中有着非常优异的效果,其中循环神经网络模型(Recurrent Neural Networks,RNN)是最常用的深度学习模型之一。RNN可以处理任意长度的时序序列,在文本分类、机器翻译、词性标注和图片语义分析等方面表现出非凡的能力。然而,RNN模型也有不足。RNN的本质是在神经网络的隐藏层维护一个状态,用以记忆历史信息,但随着时序序列的增长,训练过程中会存在梯度消失(gradientvanishing)或梯度爆炸(gradient explosion)的问题。所以,RNN在输入序列超过一定长度的情况下表现不佳。另一方面,深度神经网络在训练时超过一定的迭代次数,容易发送过拟合现象。

1)长短期记忆网络

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710687197.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top