一种代码校验方法、装置、设备及可读存储介质与流程

文档序号:35125927发布日期:2023-08-14 19:44阅读:28来源:国知局
一种代码校验方法、装置、设备及可读存储介质与流程

本申请涉及机器学习领域,特别涉及一种代码校验方法、装置、设备及可读存储介质。


背景技术:

1、随着计算机软硬件技术的不断发展和应用场景的不断扩大,编写的程序变得越来越复杂,同时也难免会出现各种错误和问题。这些错误和问题可能来自于代码逻辑的不严密、数据输入输出的异常、环境变化等原因,给程序的正确性和可靠性带来了挑战。

2、为了提高程序的质量和效率,代码纠错成为了计算机编程过程中不可或缺的环节。在现代软件开发中,代码校验已经成为一项非常重要的工作,它不仅关乎程序的正确性和可靠性,还直接影响到项目的进度和效率。但传统的代码纠错技术通常依赖于规则或模式匹配的方法,需要手动定义大量的规则和特征,难以处理复杂的语法结构;并且传统的代码纠错技术通常只能适应特定编程语言、特定的编码风格和特定类型的代码问题进行纠错,不具有广泛性。


技术实现思路

1、有鉴于此,本申请的目的在于提供代码校验方法、装置、设备及可读存储介质,解决了现有技术中代码纠错的低效性和应用受限的问题。

2、为解决上述技术问题,本申请提供了一种代码校验方法,包括:

3、获取待校验源代码;

4、将所述待校验源代码转换为词向量;

5、将所述词向量输入到训练好的语言模型中,得到输出结果;

6、当所述待校验源代码存在问题时,则所述输出结果为所述待校验源代码对应的修复方案。

7、可选的,所述将所述词向量输入到训练好的语言模型中,包括:

8、训练基于注意力机制的语言模型,得到transformer语言模型;

9、将所述词向量输入到所述transformer语言模型中。

10、可选的,所述训练基于注意力机制的语言模型,得到transformer语言模型,包括:

11、获取用于预训练的数据集,所述数据集包括错误代码和正确代码;

12、对所述数据集中的数据进行清洗处理,得到处理后的代码;

13、将所述处理后的代码进行转换,得到转换后数据;

14、将所述转换后数据进行数据划分,得到训练集数据、验证集数据和测试集数据;

15、基于注意力机制,并利用所述训练集数据训练模型,采用所述验证集数据对模型进行调优,采用所述测试集数据对模型进行性能评估,经评估得到的最优模型设定为所述transformer语言模型。

16、可选的,所述对所述数据集中的数据进行清洗处理,得到处理后的代码,包括:

17、利用正则表达式和beautifulsoup对所述数据集中的数据进行清洗处理,去除重复的代码数据和错误的代码标签,得到所述预处理后的代码。

18、可选的,所述将所述处理后的代码进行转换,得到转换后数据,包括:

19、利用antlr将所述处理后的代码转换为token序列,得到序列数据;

20、将所述序列数据转换为词向量形式,得到所述转换后数据。

21、可选的,还包括:

22、获取新的预训练数据集;

23、利用所述新的预训练数据集优化所述transformer语言模型,得到优化的transformer语言模型;

24、相应的,所述将所述词向量输入到所述transformer语言模型中,包括:

25、将所述词向量输入到所述优化的transformer语言模型中。

26、可选的,所述当所述待校验源代码存在问题时,则所述输出结果为所述待校验源代码对应的修复方案,包括:

27、当所述语言模型对所述源代码进行语法检查、语义检查、错误检测、可读性检查和自动纠错,确定所述待检验源代码是否存在问题;

28、若所述源代码存在问题,则输出的修复方案包括检验结果和修复后代码。

29、本申请还提供了一种代码校验装置,包括:

30、获取模块,用于获取待校验源代码;

31、转换模块,用于将所述待校验源代码转换为词向量;

32、输入模块,用于将所述词向量输入到训练好的语言模型中,得到输出结果;

33、修复输出模块,用于当所述待校验源代码存在问题时,则所述输出结果为所述待校验源代码对应的修复方案。

34、本申请还提供了一种代码校验设备,包括:

35、存储器,用于存储计算机程序;

36、处理器,用于执行所述计算机程序时实现上述的代码校验方法的步骤。

37、本申请还提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述的代码校验方法的步骤。

38、可见,本申请通过获取待校验源代码;将待校验源代码转换为词向量;将词向量输入到训练好的语言模型中,得到输出结果;当待校验源代码存在问题时,则输出结果为待校验源代码对应的修复方案。本申请基于语言模型(自然语言处理技术)的方法可以学习到更加复杂的语法结构,如不同编程语言的语法和惯用表达方式,能够适应于不同的编程语言,从而能够更好地处理代码纠错问题,提高纠错准确性。

39、此外,本申请还提供了一种代码校验装置、设备及可读存储介质,同样具有上述有益效果。



技术特征:

1.一种代码校验方法,其特征在于,包括:

2.根据权利要求1所述的代码校验方法,其特征在于,所述将所述词向量输入到训练好的语言模型中,包括:

3.根据权利要求2所述的代码校验方法,其特征在于,所述训练基于注意力机制的语言模型,得到transformer语言模型,包括:

4.根据权利要求3所述的代码校验方法,其特征在于,所述对所述数据集中的数据进行清洗处理,得到处理后的代码,包括:

5.根据权利要求3所述的代码校验方法,其特征在于,所述将所述处理后的代码进行转换,得到转换后数据,包括:

6.根据权利要求2所述的代码校验方法,其特征在于,还包括:

7.根据权利要求1至6任一项所述的代码校验方法,其特征在于,所述当所述待校验源代码存在问题时,则所述输出结果为所述待校验源代码对应的修复方案,包括:

8.一种代码校验装置,其特征在于,包括:

9.一种代码校验设备,其特征在于,包括:

10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的代码校验方法的步骤。


技术总结
本申请公开了一种代码校验方法、装置、设备及可读存储介质,应用于机器学习领域,该方法包括:获取待校验源代码;将待校验源代码转换为词向量;将词向量输入到训练好的语言模型中,得到输出结果;当待校验源代码存在问题时,则输出结果为待校验源代码对应的修复方案。本申请基于语言模型/自然语言处理技术的方法可以学习到更加复杂的语法结构,如不同编程语言的语法和惯用表达方式,能够适应于不同的编程语言,从而能够更好地处理代码纠错问题,提高纠错准确性。

技术研发人员:王蒴,刘丽红,曲鸣,胡涛,侯华伟
受保护的技术使用者:山东中创软件商用中间件股份有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1