本申请涉及机器学习领域,特别涉及一种代码校验方法、装置、设备及可读存储介质。
背景技术:
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任一项所述的代码校验方法的步骤。