[发明专利]基于代码结构语义信息的深度代码搜索方法、系统及装置在审
申请号: | 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 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 结构 语义 信息 深度 搜索 方法 系统 装置 | ||
1.一种基于代码结构语义信息的深度代码搜索方法,其特征在于,包括:
(1)获取软件项目中的代码数据,并利用分词模型生成代码搜索数据集。
(2)对所述代码搜索数据进行预处理。
(3)利用预处理后的数据集对深度代码搜索模型进行优化与测试。
(4)基于深度代码搜索模型的实施代码搜索。
2.如权利要求1所述基于代码结构语义信息的深度代码搜索方法,其特征在于,步骤(1)具体为:确定Java软件项目范围,从项目中的Java文件提取Java方法和相关注释;将解析出的数据集用于训练BPE分词模型;利用训练后的分词模型对数据集中的数据进行分词处理,形成代码搜索数据集。
3.如权利要求2所述基于代码结构语义信息的深度代码搜索方法,其特征在于,步骤(2)中,数据预处理,包括:截取Java方法的第一段注释作为自然语言注释,省略参数的注释和返回值注释;去掉不包含任何API的Java方法以及重复的Java方法;利用代码解析工具Javaparser将Java方法转化为抽象语法树,采用深度有限遍历策略从抽象语法树中提取API序列,数据集中预处理后Java方法包括抽象语法树和API序列两部分;将预处理后的数据集划分为训练集、验证集以及测试集,用于步骤(3)优化和测试深度代码搜索模型。
4.如权利要求3所述基于代码结构语义信息的深度代码搜索方法,其特征在于,步骤(3)中:深度代码搜索模型利用三个基于注意力机制的长短期记忆力网络,包括网络构建代码结构信息编码模块、代码语义信息编码模块以及自然语言编码模块。
为了优化三个长短期记忆力网络中的参数,以上三个模块分别以步骤(2)中训练数据中Java方法的抽象语法树、API序列以及相关注释作为输入;然后构建信息融合模块,融合代码结构信息编码模块和代码语义信息编码模块输出的向量;最后构建相似度匹配模块,计算融合向量与自然语言编码模块输出向量之间的余弦相似度,计算深度代码搜索模型的损失函数,优化三个编码模块中的参数。
优化过程的停止条件为:优化迭代次数超过训练集中的Java方法总数,或模型在验证集上的效果收敛。
5.如权利要求4所述基于代码结构语义信息的深度代码搜索方法,其特征在于,步骤(4)具体为:以自然语言查询和Java方法为输入,计算两者之间的相似度,根据相似度大小完成对Java方法集合的重排序,输出最终排序后的Java方法。
6.一种基于代码结构语义信息的深度代码搜索系统,其特征在于,包括离线端、在线端。
离线端,负责解析Java文件、构建结构化数据集以及训练深度代码搜索模型等功能。
在线端,用于与用户交互,为用户提供网页搜索入口和搜索结果呈现,记录用户查看搜索结果的行为,用于统计分析和后续进一步优化深度代码搜索模型。
7.如权利要求6所述基于代码结构语义信息的深度代码搜索系统,其特征在于,离线端包括数据解析模块、数据存储模块、模型训练模块。
数据解析模块,从Java文件中提取Java方法及其对应的注释,将Java方法解析为抽象语法树,根据抽象语法树的深度进行剪枝,利用基于正则表达式的方法从解析的抽象语法树中提取Java方法的方法名和方法体,遍历抽象语法树提取API序列。
数据存储模块,支持大规模计算存储,支持多种计算类型,并提供细粒度权限管理、沙箱防护及数据监控功能,以json格式保存解析出的数据用于深度代码搜索模型的训练。
模型训练模块,支持多种机器学习和深度学习计算框架,包括流式计算框架、深度学习框架、计算引擎。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110946937.8/1.html,转载请声明来源钻瓜专利网。