【技术实现步骤摘要】
一种基于相似代码识别的编程信息推荐方法及装置
本专利技术涉及软件检测与修复
,尤其是涉及一种基于相似代码识别的编程信息推荐方法及装置。
技术介绍
程序员在编程过程中经常遇到难以独立解决的技术问题,通常依靠互联网搜索相应的问题进行解决。传统的代码缺陷检索主要依赖程序员对缺陷的描述、程序的报错信息等进行文本匹配的搜索,以寻找解决代码缺陷的信息,例如网络博客,问答社区等。然而,程序员并不是每次都能准确的用语言描述自己遇到的问题,也存在程序的报错信息难以定位问题的情况,这无疑给程序员用传统方式解决代码问题带来了很大的挑战。现有的代码问题检索主要有两种方式,一种是基于程序员对缺陷的描述、程序的报错信息等进行文本匹配的搜索,另一种是基于相似代码的缺陷检测。首先,现有的基于文本匹配的搜索技术,通常需要程序员对遇到的问题进行自主的归纳总结,提炼出当前场景的关键字,然后将关键字输入互联网的搜索引擎进行搜索。如果遇到程序员对问题成因概括能力不足的情况,或者相似关键词指向其他问题的情况,仅仅依靠场景关键字的搜索技术就不能很好 ...
【技术保护点】
1.一种基于相似代码识别的编程信息推荐方法,其特征在于,包括:/n对存疑代码进行抽取得到多个第一代码片段和多个第一注释;其中,与每个所述第一代码片段与每个所述第一注释是对应的;/n对网络上的编程信息进行抽取得到多个第二代码片段和多个第一场景关键字;其中,每个所述第二代码片段与每个第一场景关键字对应的;/n将所述多个第一代码片段和所述多个第二代码片段输入克隆检测工具并进行克隆检测,得到多个克隆对;其中,每个克隆对由第一代码片段和第二代码片段组成;/n将第一注释与第一场景关键字作为句子对,根据训练好的Word2Vec模型计算句子对相似度;其中,所述句子对与所述克隆对是对应的;/ ...
【技术特征摘要】
1.一种基于相似代码识别的编程信息推荐方法,其特征在于,包括:
对存疑代码进行抽取得到多个第一代码片段和多个第一注释;其中,与每个所述第一代码片段与每个所述第一注释是对应的;
对网络上的编程信息进行抽取得到多个第二代码片段和多个第一场景关键字;其中,每个所述第二代码片段与每个第一场景关键字对应的;
将所述多个第一代码片段和所述多个第二代码片段输入克隆检测工具并进行克隆检测,得到多个克隆对;其中,每个克隆对由第一代码片段和第二代码片段组成;
将第一注释与第一场景关键字作为句子对,根据训练好的Word2Vec模型计算句子对相似度;其中,所述句子对与所述克隆对是对应的;
根据句子对相似度对相应的克隆对进行降序排列,将排名较高的克隆对作为可参考的编程信息进行推荐。
2.根据权利要求1所述的基于相似代码识别的编程信息推荐方法,其特征在于,将第一注释与第一场景关键字作为句子对之前还包括:对存疑代码所在的项目代码进行抽取,得到多个第二注释和多个第二场景关键字,将所述多个第二注释和多个第二场景关键字输入Word2Vec模型的语料库并对所述Word2Vec模型进行训练。
3.根据权利要求2所述的基于相似代码识别的编程信息推荐方法,其特征在于,对存疑代码进行抽取得到多个第一代码片段具体包括:选取存疑代码的前中后三段代码,根据代码结构进行分割得到多个第一代码片段;其中,所述第一代码片段的字符长度大于30。
4.根据权利要求3所述的基于相似代码识别的编程信息推荐方法,其特征在于,所述网络上的编程信息具体包括:程序员交流网站的答复、编程教学经验、编程教科书及程序员博客。
5.根据权利要求4所述的基于相似代码识别的编程信息推荐方法,其特征在于,对网络上的编程信息进行抽取得到多个第二代码片段具体包括:根据所述存疑代码的语言,抽取编程信息中包含对应语言标签的部分,获取字符长度大于30的第二代码片段。
6.一种基于相似代码识别...
【专利技术属性】
技术研发人员:王彤,黄袁,陈湘萍,周晓聪,郑子彬,
申请(专利权)人:中山大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。