-
公开(公告)号:CN113761163B
公开(公告)日:2024-02-02
申请号:CN202110946937.8
申请日:2021-08-18
Applicant: 浙江大学
IPC: G06F16/332 , G06F40/284 , G06F40/30 , G06F8/41 , G06F9/455 , G06N3/0442 , G06N3/045
Abstract: 本发明公开了一种基于代码结构语义信息的深度代码搜索方法、系统及装置,包括从目标软件项目中提取代码文件中的方法级代码和相关注释,形成数据集;训练分词模型生成代码搜索数据集;预处理代码搜索数据集,将方法级代码解析为抽象语法树,遍历抽象语法树并提取API序列;构建深度代码搜索模型,包括代码结构信息编码模块、代码语义信息编码模块、信息融合模块、自然语言编码模块;使用预处理后的数据集,优化深度代码搜索模型;利用深度代码搜索模型,从代码搜索数据集中获得与自然语言查询对应的方法级代码。本发明的方法能够有效提升代码搜索模型对于代码结构语义信息以及自然语言描述文本的理解能力,提高代码搜索系统的搜索效果与性能。
-
公开(公告)号:CN113761163A
公开(公告)日:2021-12-07
申请号:CN202110946937.8
申请日:2021-08-18
Applicant: 浙江大学
IPC: G06F16/332 , G06F40/284 , G06F40/30 , G06F8/41 , G06F9/455 , G06N3/04 , G06N3/08
Abstract: 本发明公开了一种基于代码结构语义信息的深度代码搜索方法、系统及装置,包括从目标软件项目中提取代码文件中的方法级代码和相关注释,形成数据集;训练分词模型生成代码搜索数据集;预处理代码搜索数据集,将方法级代码解析为抽象语法树,遍历抽象语法树并提取API序列;构建深度代码搜索模型,包括代码结构信息编码模块、代码语义信息编码模块、信息融合模块、自然语言编码模块;使用预处理后的数据集,优化深度代码搜索模型;利用深度代码搜索模型,从代码搜索数据集中获得与自然语言查询对应的方法级代码。本发明的方法能够有效提升代码搜索模型对于代码结构语义信息以及自然语言描述文本的理解能力,提高代码搜索系统的搜索效果与性能。
-
-
公开(公告)号:CN110825642A
公开(公告)日:2020-02-21
申请号:CN201911092161.7
申请日:2019-11-11
Applicant: 浙江大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于深度学习的软件代码行级缺陷检测方法,属于软件代码缺陷检测领域,该方法具体包括:(1)master分支中基于类的ATS提取,(2)ATS集合预处理,(3)LSTM模型训练,(4)开发分支ATS集合提取与检测,(5)ATS异常概率排序。该方法的模型代码处理粒度可达代码行级别,可对代码片段做缺陷检测,能够有效捕捉代码中相关Token的前后关联,可利用已有其他代码仓库中的相关代码信息。
-
公开(公告)号:CN113761162B
公开(公告)日:2023-12-05
申请号:CN202110946910.9
申请日:2021-08-18
Applicant: 浙江大学
IPC: G06F16/332 , G06F16/335 , G06F16/31 , G06F40/211 , G06F40/216 , G06F40/30 , G06F40/253 , G06F40/247 , G06F40/284
Abstract: 本发明公开了一种基于上下文感知的代码搜索方法,该方法自适应地解析代码库与自然语言查询的上下文信息,准确匹配两者之间的语义信息,从而获得高效准确的代码搜索结果。首先解析Java文件集合,构建分布式代码库索引并训练自然语言模型N‑Gram,统计代码库中单词及其频率;然后从代码库中解析代码的组成要素,解析自然语言查询中单词的重要属性;最后利用分布式索引和N‑Gram模型从代码库中筛选出候选Java方法,并根据基于上下文匹配的优化算法对候选方法进行重排序。相较于现有方法,本发明不仅可以免去如深度学习模型的大量训练时间,保持在源代码集合扩充中搜索结果的稳定,同时保持很高的搜索准确度。
-
公开(公告)号:CN110825642B
公开(公告)日:2021-01-01
申请号:CN201911092161.7
申请日:2019-11-11
Applicant: 浙江大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于深度学习的软件代码行级缺陷检测方法,属于软件代码缺陷检测领域,该方法具体包括:(1)master分支中基于类的ATS提取,(2)ATS集合预处理,(3)LSTM模型训练,(4)开发分支ATS集合提取与检测,(5)ATS异常概率排序。该方法的模型代码处理粒度可达代码行级别,可对代码片段做缺陷检测,能够有效捕捉代码中相关Token的前后关联,可利用已有其他代码仓库中的相关代码信息。
-
公开(公告)号:CN113761162A
公开(公告)日:2021-12-07
申请号:CN202110946910.9
申请日:2021-08-18
Applicant: 浙江大学
IPC: G06F16/332 , G06F16/335 , G06F16/31 , G06F40/211 , G06F40/216 , G06F40/30 , G06F40/253 , G06F40/247 , G06F40/284
Abstract: 本发明公开了一种基于上下文感知的代码搜索方法,该方法自适应地解析代码库与自然语言查询的上下文信息,准确匹配两者之间的语义信息,从而获得高效准确的代码搜索结果。首先解析Java文件集合,构建分布式代码库索引并训练自然语言模型N‑Gram,统计代码库中单词及其频率;然后从代码库中解析代码的组成要素,解析自然语言查询中单词的重要属性;最后利用分布式索引和N‑Gram模型从代码库中筛选出候选Java方法,并根据基于上下文匹配的优化算法对候选方法进行重排序。相较于现有方法,本发明不仅可以免去如深度学习模型的大量训练时间,保持在源代码集合扩充中搜索结果的稳定,同时保持很高的搜索准确度。
-
-
-
-
-
-
-