国内刊号:51-1307/TP
国际刊号:1001-9081
发布日期:
作者:宋其洪, 刘建勋, 扈海泽, 张祥平
单位:1.服务计算与软件服务新技术湖南省重点实验室(湖南科技大学), 湖南 湘潭 411201;2.湖南科技大学 计算机科学与工程学院, 湖南 湘潭 411201
关键词:软件开发,代码搜索,协同融合,BERT,残差网络
基金:国家自然科学基金资助项目(61872139)
搜索并重用相关代码可以有效提高软件开发效率。基于深度学习的代码搜索模型通常将代码片段和查询语句嵌入同一向量空间,通过计算余弦相似度匹配并输出相应代码片段;然而大多数模型忽略了代码片段与查询语句间的协同信息。为了更全面地表征语义信息,提出一种基于协同融合的代码搜索模型BofeCS。首先,采用BERT(Bidirectional Encoder Representations from Transformers)模型提取输入序列的语义信息并将它表征为向量;其次,构建协同融合网络提取代码片段和查询语句间分词级的协同信息;最后,构建残差网络缓解表征过程中的语义信息丢失。为验证BofeCS的有效性,在多语言数据集CodeSearchNet上进行实验。实验结果表明,相较于基线模型UNIF(embedding UNIFication)、TabCS(Two-stage attention-based model for Code Search)和MRCS(Multimodal Representation for neural Code Search),BofeCS的平均倒数排名(MRR)、归一化折损累计增益(NDCG)和前k位成功命中率(SR@k)均有显著提高,其中MRR值分别提升了95.94%、52.32%和16.95%。
来源:2023年第12期
《计算机应用》期刊编辑部