基于代码结构语义信息的深度代码搜索方法、系统及装置.pdf 立即下载
2023-07-25
约1.1万字
约12页
0
571KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

基于代码结构语义信息的深度代码搜索方法、系统及装置.pdf

202110946937.pdf

预览

免费试读已结束,剩余 7 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN113761163A(43)申请公布日2021.12.07(21)申请号202110946937.8G06F9/455(2006.01)(22)申请日2021.08.18G06N3/04(2006.01)G06N3/08(2006.01)(71)申请人浙江大学地址310058浙江省杭州市西湖区余杭塘路866号(72)发明人刘超夏鑫李博奥张洋张昕东杨小虎王新宇(74)专利代理机构杭州求是专利事务所有限公司33200代理人邱启旺(51)Int.Cl.G06F16/332(2019.01)G06F40/284(2020.01)G06F40/30(2020.01)G06F8/41(2018.01)权利要求书2页说明书7页附图2页(54)发明名称基于代码结构语义信息的深度代码搜索方法、系统及装置(57)摘要本发明公开了一种基于代码结构语义信息的深度代码搜索方法、系统及装置,包括从目标软件项目中提取代码文件中的方法级代码和相关注释,形成数据集;训练分词模型生成代码搜索数据集;预处理代码搜索数据集,将方法级代码解析为抽象语法树,遍历抽象语法树并提取API序列;构建深度代码搜索模型,包括代码结构信息编码模块、代码语义信息编码模块、信息融合模块、自然语言编码模块;使用预处理后的数据集,优化深度代码搜索模型;利用深度代码搜索模型,从代码搜索数据集中获得与自然语言查询对应的方法级代码。本发明的方法能够有效提升代码搜索模型对于代码结构语义信息以及自然语言描述文本的理解能力,提高代码搜索系统的搜索效果与性能。CN113761163ACN113761163A权利要求书1/2页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方法的方
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

基于代码结构语义信息的深度代码搜索方法、系统及装置

文档大小:571KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用