首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于乘积量化的高效代码搜索方法 

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

申请/专利权人:东北大学

摘要:本发明提供一种基于乘积量化的高效代码搜索方法,涉及代码搜索技术领域。该方法首先获取代码片段和代码片段对应的自然语言描述;并对获取的代码片段和对应的自然语言描述,进行预处理,提取代码片段的多种特征信息;然后构建代码片段特征向量;并将代码片段特征向量量化成低维向量;再针对用户输入的自然语言查询进行预处理,得到自然语言序列;进而构建自然语言查询向量;并对自然语言查询向量进行维度分段;进而为每个自然语言查询子向量构建查询表;最后在代码数据库中查找到与自然语言查询向量最为相似的代码片段;并使用重排对查询结果进行二次筛选。该方法可以在不牺牲基线代码搜索模型过多准确率的情况下,大幅度提升代码搜索速度。

主权项:1.一种基于乘积量化的高效代码搜索方法,其特征在于:包括以下步骤:步骤1:获取代码片段和代码片段对应的自然语言描述;通过采集原始代码片段数据集和代码片段对应的自然语言描述,构建代码片段集合和自然语言描述集合;步骤2:对获取的代码片段和对应的自然语言描述,进行预处理,并提取代码片段的多种特征信息;步骤3:构建代码片段特征向量;获取步骤2中生成的多项代码特征信息和自然语言描述信息,并将多项代码特征信息转换为对应的代码特征序列,使用深度学习模型学习不同特征序列中的语义特征信息和结构特征信息,将代码特征序列映射为特征向量,将多个特征向量融合得到代码片段的特征向量vC,进而得到代码片段特征向量集合VC;步骤4:将步骤3中获得的代码片段特征向量集合VC中每个代码片段的高维特征向量vC量化成低维向量qC表示;步骤5:针对用户输入的自然语言查询进行预处理,得到自然语言序列Q;步骤6:自然语言查询向量构建;使用自然语言特征提取方法,将步骤5中得到的自然语言序列Q使用向量嵌入的方式转换为自然语言查询向量DQ;步骤7:自然语言查询向量进行维度分段;使用对代码片段高维特征向量维度分段的方式对步骤6中得到的自然语言查询向量进行维度分段,即将自然语言查询向量DQ进行向量维度分段,分为M段子向量,表示为[DQ1,DQ2,…,DQM];步骤8:在代码数据库中查找到与从步骤7中获得的自然语言查询向量最为相似的代码片段,并将结果返回;步骤9:执行搜索结果重排阶段,对查询阶段返回的搜索结果进行二次筛选;获取在步骤8中的自然语言查询阶段返回的排名前K个代码片段的特征向量,并计算自然语言查询向量与K个代码片段特征向量的余弦相似度,将代码片段特征向量按照余弦相似度结果进行从高到低排序,返回排名前n个代码片段作为代码搜索的结果。

全文数据:

权利要求:

百度查询: 东北大学 一种基于乘积量化的高效代码搜索方法

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