[发明专利]基于代码结构语义信息的深度代码搜索方法、系统及装置在审
申请号: | 202110946937.8 | 申请日: | 2021-08-18 |
公开(公告)号: | CN113761163A | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 刘超;夏鑫;李博奥;张洋;张昕东;杨小虎;王新宇 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F16/332 | 分类号: | G06F16/332;G06F40/284;G06F40/30;G06F8/41;G06F9/455;G06N3/04;G06N3/08 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 结构 语义 信息 深度 搜索 方法 系统 装置 | ||
本发明公开了一种基于代码结构语义信息的深度代码搜索方法、系统及装置,包括从目标软件项目中提取代码文件中的方法级代码和相关注释,形成数据集;训练分词模型生成代码搜索数据集;预处理代码搜索数据集,将方法级代码解析为抽象语法树,遍历抽象语法树并提取API序列;构建深度代码搜索模型,包括代码结构信息编码模块、代码语义信息编码模块、信息融合模块、自然语言编码模块;使用预处理后的数据集,优化深度代码搜索模型;利用深度代码搜索模型,从代码搜索数据集中获得与自然语言查询对应的方法级代码。本发明的方法能够有效提升代码搜索模型对于代码结构语义信息以及自然语言描述文本的理解能力,提高代码搜索系统的搜索效果与性能。
技术领域
本发明属于代码搜索领域,尤其涉及一种基于代码结构语义信息的深度代码搜索方法、系统及装置。
背景技术
随着软件开发与互联网技术的发展,IT企业积累的代码规模越来越大。庞大的代码数据量意味着存在大量可重复利用的代码,如何利用海量代码仓库中已有的代码和注释文本,避免程序员进行重复的项目开发工作,提升已有代码利用率,是智能软件工程领域一个非常重要的问题。对于大型的互联网公司或软件公司而言,考虑到安全性以及知识产权等问题,开发供企业内部人员使用的代码搜索系统的需求日益迫切。一些公司已经开发了可用于开源代码仓库或企业内部代码仓库的代码搜索系统,其中大多数基于关键词匹配和信息检索技术。这些基于关键词匹配和信息检索技术的代码搜索系统的准确性通常不尽人意,其主要原因包括:
(1)代码搜索系统对用户的查询缺乏理解能力;
(2)自然语言查询所表达的语义信息与代码中包含的结构化信息之间的不匹配;
(3)源代码是高度结构化的编程语言,和遵循复杂语法的自然语言是异构的。
因此,有效的自然语言代码搜索引擎需要在代码和自然语言查询之间建立更高级别的语义映射关系,使得搜索引擎能够理解自然语言查询和源代码的语义含义,以提高代码搜索的准确性。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于代码结构语义信息的深度代码搜索方法、系统及装置。本发明可解决代码和自然语言的语法异类问题以及现有方法对用户查询的语义理解困难问题。
本发明的目的是通过以下技术方案来实现的:一种基于代码结构语义信息的深度代码搜索方法,包括:
(1)获取软件项目中的代码数据,并利用分词模型生成代码搜索数据集。
(2)对所述代码搜索数据进行预处理。
(3)利用预处理后的数据集对深度代码搜索模型进行优化与测试。
(4)基于深度代码搜索模型的实施代码搜索。
进一步地,步骤(1)具体为:确定Java软件项目范围,从项目中的Java文件提取Java方法和相关注释;将解析出的数据集用于训练BPE分词模型;利用训练后的分词模型对数据集中的数据进行分词处理,形成代码搜索数据集。
进一步地,步骤(2)中,数据预处理,包括:截取Java方法的第一段注释作为自然语言注释,省略参数的注释和返回值注释;去掉不包含任何API的Java方法以及重复的Java方法;利用代码解析工具Javaparser将Java方法转化为抽象语法树,采用深度有限遍历策略从抽象语法树中提取API序列,数据集中预处理后Java方法包括抽象语法树和API序列两部分;将预处理后的数据集划分为训练集、验证集以及测试集,用于步骤(3)优化和测试深度代码搜索模型。
进一步地,步骤(3)中:深度代码搜索模型利用三个基于注意力机制的长短期记忆力网络,包括网络构建代码结构信息编码模块、代码语义信息编码模块以及自然语言编码模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110946937.8/2.html,转载请声明来源钻瓜专利网。