[发明专利]一种基于JEAN的软件代码推荐方法有效
申请号: | 202110368686.X | 申请日: | 2021-04-06 |
公开(公告)号: | CN112966095B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 文万志;王仕强;周杰;陆晓虹;梁文栋;赵甜;程实 | 申请(专利权)人: | 南通大学 |
主分类号: | G06F16/335 | 分类号: | G06F16/335;G06F8/71 |
代理公司: | 北京科家知识产权代理事务所(普通合伙) 11427 | 代理人: | 宫建华 |
地址: | 226019 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 jean 软件 代码 推荐 方法 | ||
本发明提供一种基于JEAN的软件代码推荐方法,主要用于解决在软件开发中向开发人员推荐代码段的问题。包括如下步骤:S1、构建JEAN模型;S2、从GitHub上收集带有描述的java代码段数据集,并对其预处理用作训练集,用来训练JEAN模型;S3、构建代码库,使用JEAN模型中的代码嵌入表示模块将代码库中的所有代码段嵌入成代码向量;S4、开发人员进行在线搜索代码,输入查询后,JEAN模型中的描述嵌入表示模块将查询嵌入成查询向量;S5、使用余弦相似性计算查询向量和代码库中的所有代码向量之间的相似性,返回与查询向量最相关的向量的代码段。本发明能够有效地帮助软件开发人员根据自己的需求推荐合适的代码段,具有较高的精确率和效率。
技术领域
本发明属于信息检索的技术领域,具体涉及一种基于JEAN的软件代码推荐方法。
背景技术
在软件开发过程中,为了实现某些程序功能,开发人员经常要执行一些不熟悉的编程任务。当开发人员遇到这些编程问题时,他们往往会在网上搜索能够解决这些编程问题的代码段。然而,有研究表明,软件开发人员平均花费大约21%的开发时间在网络搜索上,这是因为随着互联网相关技术的不断发展,信息传播的速度也显著上升,导致信息过载问题越来越严重,从海量的数据筛选出有价值的信息变得越来越困难。
开发人员会通过搜索引擎或者在线问答论坛寻找他们所需求的代码段,然而通过搜索引擎或者在线问答论坛检索出的代码段中会存在许多一些低质量或者不符合需求的答案。此外,在面对这些检索出来的海量搜索结果时,还需要开发人员具有一定的开发经验来筛选出他们所需求的结果。
为了使开发人员从耗时的网络搜索中解脱出来,提出了根据开发需求自动生成代码段的方法,即代码推荐技术。代码推荐技术在帮助软件开发人员在给定用户查询(例如描述检索特定代码段的功能的简短自然语言文本)的可用开源数据库中检索现有代码片段方面发挥了关键作用。
发明内容
本发明要解决的技术问题是提供一种基于JEAN的软件代码推荐方法,能够有效地帮助软件开发人员根据自己的需求推荐合适的代码段,具有较高的精确率和效率。
为解决上述技术问题,本发明的实施例提供一种基于JEAN的软件代码推荐方法,包括如下步骤:
S1、构建JEAN模型;
S2、从GitHub上收集带有描述的java代码段数据集,并对其预处理用作训练集,用来训练JEAN模型;
S3、构建代码库,使用JEAN模型中的代码嵌入表示模块将代码库中的所有代码段嵌入成代码向量;
S4、开发人员进行在线搜索代码,输入查询后,JEAN模型中的描述嵌入表示模块将查询嵌入成查询向量;
S5、使用余弦相似性计算查询向量和代码库中的所有代码向量之间的相似性,返回与查询向量最相关的向量的代码段。
其中,步骤S1中,JEAN模型分为三个子模块:
S1.1、代码嵌入表示模块:用于表示代码段中Tokens、Method name、API sequence三个模态的向量,然后Attention机制为代码段中每个模态的不同部分赋予不同的权重,最后将注意向量融合成一个单独的向量;
S1.2、描述嵌入表示模块:用于将自然语言描述嵌入到向量中;
S1.3、余弦相似度模块:用于衡量代码段和描述之间的相似度。
进一步,步骤S1.1中的具体步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110368686.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种确保胶体原料颗粒大小相同的炼胶辅助设备
- 下一篇:一种芪苓祛湿散