System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及人工智能,尤其涉及自然语言处理和深度学习等,具体涉及一种代码风险检测方法、深度学习模型的训练方法、代码风险检测装置、深度学习模型的训练装置、电子设备、计算机可读存储介质和计算机程序产品。
技术介绍
1、人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括自然语言处理技术、计算机视觉技术、语音识别技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
2、在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
1、本公开提供了一种代码风险检测方法、深度学习模型的训练方法、代码风险检测装置、深度学习模型的训练装置、电子设备、计算机可读存储介质和计算机程序产品。
2、根据本公开的一方面,提供了一种代码风险检测方法,包括:确定目标代码;提取目标代码中的至少一个目标指针变量;获取与至少一个目标指针变量相关联的代码片段,代码片段包括目标代码中的使用至少一个目标指针变量的代码语句;以及将代码片段输入深度学习模型,以得到深度学习模型输出的代码风险检测结果。
3、根据本公开
4、根据本公开的另一方面,提供了一种代码风险检测装置,包括:第一确定单元,被配置为确定目标代码;第一提取单元,被配置为提取目标代码中的至少一个目标指针变量;第一获取单元,被配置为获取与至少一个目标指针变量相关联的代码片段,代码片段包括目标代码中的使用至少一个目标指针变量的代码语句;以及第一检测单元,被配置为将代码片段输入深度学习模型,以得到深度学习模型输出的代码风险检测结果。
5、根据本公开的另一方面,提供了一种深度学习模型的训练装置,包括:第二确定单元,被配置为确定第一样本代码和第一样本代码对应的真实代码风险信息;第二提取单元,被配置为提取第一样本代码中的至少一个第一样本指针变量;第二获取单元,被配置为获取与至少一个第一样本指针变量相关联的样本代码片段,样本代码片段包括第一样本代码中的使用至少一个第一样本指针变量的代码语句;第二检测单元,被配置为将样本代码片段输入深度学习模型,以得到深度学习模型输出的代码风险检测结果;以及调参单元,被配置为基于真实代码风险信息和代码风险检测结果,调整深度学习模型的参数。
6、根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,这些指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法。
7、根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述方法。
8、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述方法。
9、根据本公开的一个或多个实施例,本公开通过提取目标代码中的至少一个目标指针变量,并获取使用至少一个目标指针变量的代码语句作为相关联的代码片段,进而将代码片段输入深度学习模型,以得到代码风险检测结果,一方面能够利用深度学习模型学习到的知识进行高效、准确的检测,减少对先验的人工经验的使用,另一方面能够剔除掉与指针变量不相关的冗余代码,在提升代码风险检测的准确性的同时,能够减少深度学习模型所处理的数据量,提升模型进行代码风险检测的效率。
10、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种代码风险检测方法,包括:
2.根据权利要求1所述的方法,其中,所述目标代码包括目标函数的代码语句,获取与所述至少一个目标指针变量相关联的代码片段包括:
3.根据权利要求2所述的方法,其中,确定所述至少一个目标指针变量是否与不同于所述目标函数的其他函数具有调用关系包括:
4.根据权利要求2所述的方法,其中,确定所述至少一个目标指针变量是否与不同于所述目标函数的其他函数具有调用关系包括:
5.根据权利要求1-4中任一项所述的方法,其中,确定目标代码包括:
6.根据权利要求1-4中任一项所述的方法,其中,所述深度学习模型为用于处理文本的大规模模型。
7.根据权利要求6所述的方法,其中,将所述代码片段输入深度学习模型,以得到所述深度学习模型输出的代码风险检测结果包括:
8.根据权利要求7所述的方法,其中,所述代码片段包括至少一个自定义变量名,所述多个分词包括所述至少一个自定义变量名各自对应的变量名分词,其中,所述归一化操作还包括:
9.根据权利要求1-4中任一项所述的方法,其中,提取所
10.根据权利要求1-4中任一项所述的方法,其中,所述代码风险检测结果指示所述目标代码中的具有的空指针风险的指针变量。
11.一种深度学习模型的训练方法,包括:
12.根据权利要求11所述的方法,其中,所述第一样本代码包括样本函数的代码语句,获取与所述至少一个第一样本指针变量相关联的样本代码片段包括:
13.根据权利要求12所述的方法,其中,确定所述至少一个第一样本指针变量是否与不同于所述样本函数的其他函数具有调用关系包括:
14.根据权利要求12所述的方法,其中,确定所述至少一个第一样本指针变量是否与不同于所述样本函数的其他函数具有调用关系包括:
15.根据权利要求11-14中任一项所述的方法,其中,所述深度学习模型为预训练的用于处理文本的大规模模型。
16.根据权利要求15所述的方法,其中,将所述代码片段输入深度学习模型,以得到所述深度学习模型输出的代码风险检测结果包括:
17.根据权利要求16所述的方法,其中,所述样本代码片段包括至少一个第一自定义变量名,所述多个第一样本分词包括所述至少一个第一自定义变量名各自对应的变量名分词,其中,所述归一化操作包括:
18.根据权利要求17所述的方法,还包括:
19.根据权利要求11-14中任一项所述的方法,其中,提取所述第一样本代码中的至少一个第一样本指针变量包括:
20.根据权利要求11-14中任一项所述的方法,其中,所述真实代码风险信息指示所述第一样本代码中的具有的空指针风险的指针变量。
21.一种代码风险检测装置,包括:
22.一种深度学习模型的训练装置,包括:
23.一种电子设备,其特征在于,所述电子设备包括:
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-20中任一项所述的方法。
25.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-20中任一项所述的方法。
...【技术特征摘要】
1.一种代码风险检测方法,包括:
2.根据权利要求1所述的方法,其中,所述目标代码包括目标函数的代码语句,获取与所述至少一个目标指针变量相关联的代码片段包括:
3.根据权利要求2所述的方法,其中,确定所述至少一个目标指针变量是否与不同于所述目标函数的其他函数具有调用关系包括:
4.根据权利要求2所述的方法,其中,确定所述至少一个目标指针变量是否与不同于所述目标函数的其他函数具有调用关系包括:
5.根据权利要求1-4中任一项所述的方法,其中,确定目标代码包括:
6.根据权利要求1-4中任一项所述的方法,其中,所述深度学习模型为用于处理文本的大规模模型。
7.根据权利要求6所述的方法,其中,将所述代码片段输入深度学习模型,以得到所述深度学习模型输出的代码风险检测结果包括:
8.根据权利要求7所述的方法,其中,所述代码片段包括至少一个自定义变量名,所述多个分词包括所述至少一个自定义变量名各自对应的变量名分词,其中,所述归一化操作还包括:
9.根据权利要求1-4中任一项所述的方法,其中,提取所述目标代码中的至少一个目标指针变量包括:
10.根据权利要求1-4中任一项所述的方法,其中,所述代码风险检测结果指示所述目标代码中的具有的空指针风险的指针变量。
11.一种深度学习模型的训练方法,包括:
12.根据权利要求11所述的方法,其中,所述第一样本代码包括样本函数的代码语句,获取与所述至少一个第一样本指针变量相关联的样本代码片段包括:
13.根据权利要求12所述的方法,其中,确定所述至...
【专利技术属性】
技术研发人员:黄佳鑫,丁越,伍谦,王冬冬,
申请(专利权)人:百度中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。