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

【发明授权】一种基于重排序的代码搜索去偏差方法及系统_厦门大学_202410176550.2 

申请/专利权人:厦门大学

申请日:2024-02-08

公开(公告)日:2024-06-04

公开(公告)号:CN117725087B

主分类号:G06F16/242

分类号:G06F16/242;G06F16/248;G06F16/28

优先权:

专利状态码:有效-授权

法律状态:2024.06.04#授权;2024.04.05#实质审查的生效;2024.03.19#公开

摘要:本发明提供了代码搜索技术领域的一种基于重排序的代码搜索去偏差方法及系统,方法包括:步骤S1、基于历史搜索语句、历史搜索结果组成的搜索数据构建数据集;步骤S2、计算各搜索数据的MRR分数,基于偏差项对搜索数据分组;步骤S3、通过历史搜索结果计算各历史搜索语句的重排序分数项;步骤S4、计算当前搜索语句在候选代码库搜索候选代码的MRR分数;步骤S5、计算与当前搜索语句最相似的n条搜索数据;步骤S6、基于MRR分数对搜索数据进行聚类得到低MRR分数代码区间;步骤S7、通过低MRR分数代码区间中代码的先验偏差项特征,为候选代码库具有相同偏差项的候选代码的MRR分数加上重排序分数项以进行去偏。本发明的优点在于:极大的提升了代码搜索的准确性。

主权项:1.一种基于重排序的代码搜索去偏差方法,其特征在于:包括如下步骤:步骤S1、定义代码搜索的偏差项,获取历史搜索语句以及所述历史搜索语句在代码搜索模型上的历史搜索结果,基于各所述历史搜索语句以及历史搜索结果组成的搜索数据构建数据集,将所述数据集结构化存储至数据库中;所述偏差项包括长度偏差、抽象语法树节点数据量偏差、AST深度偏差、保留字偏差、词汇重要性偏差以及重叠单词偏差;所述长度偏差用于表征代码搜索模型偏好长度较长的代码片段或者搜索语句;所述抽象语法树节点数据量偏差用于表征代码搜索模型偏好候选代码中AST节点更多的代码;所述AST深度偏差用于表征代码搜索模型偏好候选代码中AST更深的代码;所述保留字偏差用于表征代码搜索模型偏好候选代码中包含更多当前编程语言保留字的代码;所述词汇重要性偏差用于表征代码搜索模型偏好候选代码中包含更多重要性词汇的代码;所述重叠单词偏差用于表征代码搜索模型偏好候选代码中与当前搜索语句重叠单词更多的代码;步骤S2、从所述数据库中读取各所述搜索数据,计算各所述搜索数据的MRR分数,基于所述偏差项对数据集中的搜索数据进行分组;步骤S3、通过所述历史搜索结果计算各历史搜索语句的重排序分数项;所述重排序分数项的计算公式为: ;其中,R表示重排序分数项;表示历史搜索语句c的原始分数;所述原始分数为预设代码搜索模型对于给定查询语句,每条候选代码的置信度分数;表示代码搜索模型在训练搜索数据上的MRR分数;表示代码搜索模型在数据集上整体的MRR分数;表示在所有的搜索数据中,代码搜索模型显示低于整体的MRR分数的搜索数据的百分比;步骤S4、通过搜索界面获取当前搜索语句,实时计算所述当前搜索语句在候选代码库搜索候选代码的MRR分数;所述候选代码库为一系列代码片段的结合,用于检索并返回对查询语句的代码;步骤S5、实时计算所述当前搜索语句与数据集中,最相似的n条所述搜索数据,n为正整数;步骤S6、基于MRR分数对最相似的各所述搜索数据进行聚类,得到高MRR代码区间以及低MRR分数代码区间;步骤S7、基于选择的偏差项,通过所述低MRR分数代码区间中代码的先验偏差项特征,为所述候选代码库上具有相同偏差项的候选代码的MRR分数加上重排序分数项以进行去偏,不断重复直至所有的所述偏差项都完成去偏,基于去偏的各所述候选代码生成代码搜索结果,通过所述搜索界面显示代码搜索结果,基于所述代码搜索结果以及当前搜索语句生成搜索日志,对所述搜索日志进行备份;所述先验偏差项特征为对候选代码库中每条代码计算各个偏差项得到的数值。

全文数据:

权利要求:

百度查询: 厦门大学 一种基于重排序的代码搜索去偏差方法及系统

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