Document
拖动滑块完成拼图
个人中心

预订订单
商城订单
发布专利 发布成果 人才入驻 发布商标 发布需求

请提出您的宝贵建议,有机会获取IP积分或其他奖励

投诉建议

在线咨询

联系我们

龙图腾公众号
首页 专利交易 IP管家助手 科技果 科技人才 积分商城 国际服务 商标交易 会员权益 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 东北大学印莹获国家专利权

东北大学印莹获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网获悉东北大学申请的专利一种基于图序列化的代码搜索系统及方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115268869B

龙图腾网通过国家知识产权局官网在2025-10-28发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202210885120.9,技术领域涉及:G06F8/30;该发明授权一种基于图序列化的代码搜索系统及方法是由印莹;李晶莹;时宇岑;赵宇海设计研发完成,并于2022-07-26向国家知识产权局提交的专利申请。

一种基于图序列化的代码搜索系统及方法在说明书摘要公布了:本发明提供了一种基于图序列化的代码搜索系统及方法,涉及代码搜索技术领域。本发明系统及装置通过图序列转换器G2SC学习代码片段的控制依赖关系和数据依赖关系,获得富含代码片段图结构信息的程序依赖图序列,并且比图神经网络更适用于节点少的代码图结构;在特征提取过程中使用注意力机制将方法名特征向量、Token特征向量、以及G2SC提取的程序依赖图特征向量进行融合,使得代码的语义和结构信息能够充分表达,特征提取更完整,有效提升代码搜索的准确率;使用G2SC、双向长短时记忆网络将代码片段的程序依赖图的信息映射到较低维度的特征空间中,可节省深度学习中所消耗的大量算力。

本发明授权一种基于图序列化的代码搜索系统及方法在权利要求书中公布了:1.一种基于图序列化的代码搜索方法,采用基于图序列化的代码搜索系统实现,该系统包括: 数据采集模块,用于采集多个原始代码片段,构成原始代码片段集合; 代码片段预处理模块,用于对所述原始代码片段集合中的每一代码片段提取相关特征,包括代码片段的方法名序列、代码片段的令牌Token序列和代码片段的程序依赖图PDG; 图序列转换器G2SC:用于根据代码片段预处理模块提取的程序依赖图PDG学习代码片段的控制依赖关系和代码片段的数据依赖关系,生成富含代码图结构信息的程序依赖图序列,并将所述程序依赖图序列发送给图特征提取模块; 方法名特征提取模块,用于将代码片段预处理模块提取的方法名序列输入到双向长短时记忆网络Bi-LSTM中提取方法名序列包含的特征,获得方法名特征向量并发送给注意力嵌入模块; Token特征提取模块,用于将代码片段预处理模块提取的Token序列输入到多层感知机MLP中提取Token序列包含的特征,获得Token特征向量并发送给注意力嵌入模块; 图特征提取模块,用于将程序依赖图序列输入到双向长短时记忆网络Bi-LSTM中提取程序依赖图序列包含的特征,获得程序依赖图特征向量并发送给注意力嵌入模块; 注意力嵌入模块,用于接收所述方法名特征提取模块发送的方法名特征向量、所述Token特征提取模块发送的Token特征向量、所述图特征提取模块发送的程序依赖图特征向量,并为所述方法名特征向量、Token特征向量和程序依赖图特征向量分配不同的注意力系数,得到代码片段的融合特征向量并发送给相似度计算模块; 自然语言预处理模块,用于通过分词工具对用户输入的查询语句进行分词处理,并过滤掉其中包含的特殊符号,获得自然语言序列并发送给自然语言特征提取模块; 自然语言特征提取模块,用于将自然语言预处理模块提取的自然语言序列输入到双向长短时记忆网络Bi-LSTM中提取自然语言序列包含的特征,获得自然语言特征向量,并将该自然语言特征向量发送给相似度计算模块; 相似度计算模块,用于接收注意力嵌入模块输出的代码片段的融合特征向量和自然语言特征提取模块输出的自然语言特征向量,计算所述自然语言特征向量与所有代码片段的融合特征向量之间的余弦相似度,并将余弦相似度最大的若干融合特征向量对应的代码片段作为代码搜索结果,返回给用户;其特征在于,该方法包括如下步骤: 步骤1:采集代码片段和代码片段所对应的自然语言注释; 步骤2:通过分词工具对每一代码片段的自然语言注释进行分词处理并过滤掉分词结果中包含的特殊符号获得每一代码片段的自然语言注释序列D; 步骤3:提取每一代码片段的方法名序列M、Token序列T和程序依赖图GPDG; 步骤4:将每一代码片段的程序依赖图GPDG输入到图序列转换器G2SC中,利用G2SC学习程序依赖图的控制依赖关系和数据依赖关系,生成富含代码图结构信息的程序依赖图序列P,其中表示所述程序依赖图序列中所有单词的集合,NP为程序依赖图序列的单词总数; 步骤5:针对每一代码片段,利用方法名特征提取模块提取方法名序列包含的特征获得方法名特征向量VM、利用Token特征提取模块提取Token序列包含的特征获得Token特征向量VT、以及利用图特征提取模块提取程序依赖图序列包含的特征获得程序依赖图特征向量VP,并采用注意力机制将VM、VT和VP进行组合得到融合特征向量VC; 步骤6:通过自然语言特征提取模块提取每一代码片段的自然语言注释序列D的特征,获得自然语言注释特征向量VD; 步骤7:根据每一代码片段的融合特征向量VC和自然语言注释特征向量VD计算相似度损失函数Lθ,并根据相似度损失优化更新方法名特征提取模块中的参数、Token特征提取模块中的参数、图特征提取模块中的参数、注意力嵌入模块中的参数和自然语言特征提取模块中的参数; 步骤8:重复执行步骤5-步骤7,直至相似度损失Lθ收敛,获得每一代码片段最终的融合特征向量,及具有最优参数的方法名特征提取模块、具有最优参数的Token特征提取模块、具有最优参数的图特征提取模块、具有最优参数的注意力嵌入模块和具有最优参数的自然语言特征提取模块; 步骤9:当用户输入查询语句q时,通过分词工具对用户输入的查询语句进行分词处理并过滤掉其中包含的特殊符号获得自然语言序列Q; 步骤10:通过自然语言特征提取模块提取自然语言序列包含的特征,获得自然语言特征向量VQ; 步骤11:计算自然语言特征向量VQ与所有代码片段最终的融合特征向量之间的余弦相似度,将余弦相似度最大的若干融合特征向量对应的代码片段作为代码搜索结果,返回给用户; 所述利用G2SC学习程序依赖图的控制依赖关系和数据依赖关系生成富含代码图结构信息的程序依赖图序列P的方法包括如下步骤: 步骤4-1:对于程序依赖图GPDG,初始化程序依赖图序列P={},将v1作为程序依赖图序列P的第一个元素p1,并设定程序依赖图序列P的最后一个元素所对应的节点为eend; 步骤4-2:按照边选取规则递归地从候选边中选择一条边进行扩展,直到所有边均被遍历; 步骤4-3:如果遍历的边是控制依赖边,则只将边的始点和终点所对应的属性信息添加到程序依赖图序列P中,如果遍历的边是数据依赖边,则依次将数据依赖边的始点、数据依赖边、以及数据依赖边的终点所对应的属性信息添加到程序依赖图序列P中; 步骤4-4、重复步骤4-1至步骤4-3,遍历完所有的有向边,获得程序依赖图序列P。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人东北大学,其通讯地址为:110819 辽宁省沈阳市和平区文化路3号巷11号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

以上内容由龙图腾AI智能生成。

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。