CN116880852A - 基于机器学习的代码数据检查方法、装置及计算机设备 - Google Patents
基于机器学习的代码数据检查方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116880852A CN116880852A CN202310685745.5A CN202310685745A CN116880852A CN 116880852 A CN116880852 A CN 116880852A CN 202310685745 A CN202310685745 A CN 202310685745A CN 116880852 A CN116880852 A CN 116880852A
- Authority
- CN
- China
- Prior art keywords
- code
- neural network
- checking
- network model
- inspection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000010801 machine learning Methods 0.000 title claims abstract description 27
- 238000003062 neural network model Methods 0.000 claims abstract description 117
- 238000012549 training Methods 0.000 claims abstract description 78
- 230000004927 fusion Effects 0.000 claims abstract description 13
- 230000010354 integration Effects 0.000 claims abstract description 12
- 238000007689 inspection Methods 0.000 claims description 112
- 238000004590 computer program Methods 0.000 claims description 40
- 238000013528 artificial neural network Methods 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 238000010219 correlation analysis Methods 0.000 claims description 10
- 238000002790 cross-validation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种基于机器学习的代码数据检查方法、装置及计算机设备。方法包括:获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;将代码检查结果输出到预设的检查报告模板中。采用本方方案能够提高代码检查的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于机器学习的代码数据检查方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
目前各类企业在数字化转型上都在策马加鞭,数字化转型都带来了大量的代码编写以及代码专业化检查。在软件开发的过程中,开发人员会编写用于实现软件功能的代码,但是,编写的代码可能会存在着运行错误,开发人员在开发软件的过程中,会对代码进行检查,以便发现问题进行修改。
现有的代码检查技术通常是针对特定开发语言的语言风格或语法结构编写的特定代码检查脚本,可移植性差且迭代困难,检查脚本中的检查规则难以维护和扩展,导致代码检查效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够高效的基于机器学习的代码数据检查方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于机器学习的代码数据检查方法。所述方法包括:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
将所述代码检查结果输出到预设的检查报告模板中。
在其中一个实施例中,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
获取历史样本数据、并根据预设的代码检查类别,将所述历史样本数据划分为多个维度的样本子集;
根据所述样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;
将每个学习器训练得到的预测结果进行集成处理;
将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
在其中一个实施例中,所述将每个学习器训练得到的预测结果进行集成处理之前,还包括:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
在其中一个实施例中,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果包括:
将所述目标代码进行分割,得到多个子代码;
将每个子代码作为检查对象,生成多个检查节点;
根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
在其中一个实施例中,所述根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果包括:
按照检查节点在所述目标代码的运行顺序,生成检查链表;
根据所述检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
在其中一个实施例中,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
对所述目标代码进行相关性分析,剔除所述目标代码中的重复代码。
第二方面,本申请还提供了一种基于机器学习的代码数据检查装置。所述装置包括:
代码获取模块,用于获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
检查结果获取模块,用于根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
结果输出模块,用于将所述代码检查结果输出到预设的检查报告模板中。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
将所述代码检查结果输出到预设的检查报告模板中。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
将所述代码检查结果输出到预设的检查报告模板中。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
将所述代码检查结果输出到预设的检查报告模板中。
上述基于机器学习的代码数据检查方法、装置、计算机设备、存储介质和计算机程序产品,获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;将代码检查结果输出到预设的检查报告模板中。本方案中,通过预设的神经网络模型,能同时进行多个维度的检查,得到多个维度的代码检查结果,提高代码检查的效率。
附图说明
图1为一个实施例中基于机器学习的代码数据检查方法的应用环境图;
图2为一个实施例中基于机器学习的代码数据检查方法的流程示意图;
图3为另一个实施例中基于机器学习的代码数据检查方法的流程示意图;
图4为基于机器学习的代码数据检查方法的具体流程示意图;
图5为一个实施例中基于机器学习的代码数据检查装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于机器学习的代码数据检查方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,用户在终端102侧进行操作,终端102生成代码检查请求,并将代码检查请求发送至服务器104,服务器104接收代码检查请求、并提取代码检查请求中携带的待检查的目标代码,根据目标代码,通过预设的神经网络模型,得到代码检查结果,将代码检查结果输出到预设的检查报告模板中。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于机器学习的代码数据检查方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
S200,获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码。
其中,代码检查请求是根据用户输入的代码检查命令生成的请求,可以根据代码检查请求,发起对目标代码进行检查。
具体地,用户在代码检查系统中,输入待检查的目标代码,发送代码检查命令给服务器,生成代码检查请求,其中,待检查的目标代码可以为检查代码文件中的全部代码,也可以是待检查代码文件中的部分代码,服务器中加载的代码检查系统获取代码检查请求,提取该请求中携带的待检查的目标代码;将待检查的目标代码解析为对应的语法树,其中,语法树可以为待检查代码文件的完整语法树,也可以为待检查代码的局部语法树。
S400,根据目标代码,通过预设的神经网络模型,得到代码检查结果。
其中,目标代码是指需要进行检查的代码;代码检查结果包括各个维度的检查结果,例如,代码结构是否合理、代码风格是否一致、代码的逻辑表达式是否正确等。
具体地,通过历史样本数据,对原始的神经网络模型进行训练,调整原始神经网络模型的参数,以得到最优参数,其中,参数可以是学习器中网络的层数和权重,再将目标代码输入到训练好的神经网络模型中,由神经网络模型输出各个维度的代码检查结果。
S600,将代码检查结果输出到预设的检查报告模板中。
具体地,将神经网络模型输出的各个维度的代码检查结果进行汇总,输出到预设的检查报告模板中,得到检查报告,其中,检查报告可以以表格、图片的形式对检查结果进行展示。
上述基于机器学习的代码数据检查方法,通过获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,将代码检查结果输出到预设的检查报告模板中,能通过预设的神经网络模型,同时进行多个维度的检查,提高代码检查的效率。
在一个实施例中,根据目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集;根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;将每个学习器训练得到的预测结果进行集成处理;将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
其中,学习器可以是神经网络模型,用来预测各维度的代码检查结果,各学习器可以是相同的神经网络模型也可以是不同的神经网络模型。
具体地,根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集,其中,代码检查类别包括代码风格检查、SQL(Structured Query Language,结构化查询语言)注入检查、代码结构检查等;通过多个维度的样本子集,对初始神经网络模型中第一层神经网络的各学习器进行训练,得到各学习器的输出结果,例如代码风格检查、SQL注入检查、代码结构检查维度对应的特征及标签分别为(X1,Y1)、(X2,Y2)、(X3,Y3),分别通过对对应学习器进行训练,得到预测值,分别为Y1,、Y2,、Y3,,然后,将Y1,、Y2,、Y3,按照列进行合并得到数据集(Y1,,Y2,,Y3,),将此数据集作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
本实施例中,通过获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集,根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练,将每个学习器训练得到的预测结果进行集成处理,将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型,能根据预设的神经网络模型,得到代码检查结果。
在一个实施例中,将每个学习器训练得到的预测结果进行集成处理之前,还包括:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
具体地,将第一层神经网络的各学习器对应的样本子集,进行K折交叉验证,将样本子集按照等比例的方式划分成K份,以其中的1份作为学习器的验证数据,其他的K-1份数据作为学习器的训练数据,然后进行K次训练,将每个学习器交叉验证得到的预测数据进行集成处理,再将集成的预测数据作为初始神经网络模型中第二层神经网络的输入,再进行K折交叉验证,得到预设的神经网络模型。
本实施例中,通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证,能根据交叉验证结果,得到各学习器得到的预测结果。
在一个实施例中,如图3所示,S400包括:
S420,将目标代码进行分割,得到多个子代码。
S440,将每个子代码作为检查对象,生成多个检查节点。
S460,根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
具体地,将目标代码进行分割,得到多个子代码,其中,可以将目标代码进行等分分割或者根据标识符进行分割,标识符可以是逻辑运算类标识符、跳转标识符等,然后,将每个子代码作为封装代码的对象执行封装,得到检查节点,将每个检查节点的代码依次输入到预设的神经网络模型中,得到每个检查节点的代码检查结果。
本实施例中,通过将目标代码进行分割,得到多个子代码,将每个子代码作为检查对象,生成多个检查节点,根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果,能避免因为代码过多,影响加载时间。
在一个实施例中,根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果包括:
按照检查节点在目标代码的运行顺序,生成检查链表;根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
具体的,按照检查节点对应的子代码在目标代码代码的运行顺序,对所有的检查节点首尾相连,得到目标代码的检测链表,将检查链表的节点代码输入到预设的神经网络模型中,得到每个检查节点的代码检查结果。
本实施例中,通过按照检查节点在目标代码的运行顺序,生成检查链表,根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果,能便于根据代码检查结果,找到检查链表中对应的节点,进行代码的更改。
在一个实施例中,根据目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
对目标代码进行相关性分析,剔除目标代码中的重复代码。
具体地,对目标代码进行相关性分析,其中,可以通过协方差、相关系数等进行相关性分析,剔除目标代码中的重复代码。
本实施例中,通过对目标代码进行相关性分析,剔除目标代码中的重复代码,能避免对重复代码进行检查,提高代码检查的效率。
为详细说明本申请基于机器学习的代码数据检查方法的技术方案及其效果,下面将采用具体应用实例展开描述。在实际应用中,如图4所示,整个基于机器学习的代码数据检查方法包括以下步骤:
步骤一:获取代码检查请求。该步骤获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码。
步骤二:分割代码。具体包括以下步骤:
(1)将目标代码进行分割,得到多个子代码。
(2)将每个子代码作为检查对象,生成多个检查节点。
(3)按照检查节点在目标代码的运行顺序,生成检查链表。
(4)根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
步骤三:模型训练。该步骤获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集。根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练。通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。将每个学习器训练得到的预测结果进行集成处理。将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。具体包括:
根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集,其中,代码检查类别包括代码风格检查、SQL(Structured Query Language,结构化查询语言)注入检查、代码结构检查等;通过多个维度的样本子集,对初始神经网络模型中第一层神经网络的各学习器进行训练,得到各学习器的输出结果,例如代码风格检查、SQL注入检查、代码结构检查维度对应的特征及标签分别为(X1,Y1)、(X2,Y2)、(X3,Y3),分别通过对对应学习器进行训练,得到预测值,分别为Y1,、Y2,、Y3,,然后,将Y1,、Y2,、Y3,按照列进行合并得到数据集(Y1,,Y2,,Y3,),将此数据集作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
其中,交叉验证具体包括:将第一层神经网络的各学习器对应的样本子集,进行K折交叉验证,将样本子集按照等比例的方式划分成K份,以其中的1份作为学习器的验证数据,其他的K-1份数据作为学习器的训练数据,然后进行K次训练,将每个学习器交叉验证得到的预测数据进行集成处理,再将集成的预测数据作为初始神经网络模型中第二层神经网络的输入,再进行K折交叉验证,得到预设的神经网络模型。
步骤四:输出报告。该步骤根据目标代码,通过预设的神经网络模型,得到代码检查结果,然后将代码检查结果输出到预设的检查报告模板中。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于机器学习的代码数据检查方法的代码数据检查装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个代码数据检查装置实施例中的具体限定可以参见上文中对于基于机器学习的代码数据检查方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种基于机器学习的代码数据检查装置,包括:代码获取模块200、检查结果获取模块400和结果输出模块600,其中:
代码获取模块200,用于获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
检查结果获取模块400,用于根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
结果输出模块600,用于将代码检查结果输出到预设的检查报告模板中。
在一个实施例中,基于机器学习的代码数据检查装置还包括训练模块,用于获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集;根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;将每个学习器训练得到的预测结果进行集成处理;将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
在一个实施例中,训练模块还用于通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
在一个实施例中,检查结果获取模块400还用于将目标代码进行分割,得到多个子代码;将每个子代码作为检查对象,生成多个检查节点;根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,检查结果获取模块400还用于按照检查节点在目标代码的运行顺序,生成检查链表;根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,基于机器学习的代码数据检查装置还包括分析模块,用于对目标代码进行相关性分析,剔除目标代码中的重复代码。
上述基于机器学习的代码数据检查装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码检查数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于机器学习的代码数据检查方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;将代码检查结果输出到预设的检查报告模板中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集;根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;将每个学习器训练得到的预测结果进行集成处理;将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将目标代码进行分割,得到多个子代码;将每个子代码作为检查对象,生成多个检查节点;根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
按照检查节点在目标代码的运行顺序,生成检查链表;根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对目标代码进行相关性分析,剔除目标代码中的重复代码。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;将代码检查结果输出到预设的检查报告模板中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集;根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;将每个学习器训练得到的预测结果进行集成处理;将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将目标代码进行分割,得到多个子代码;将每个子代码作为检查对象,生成多个检查节点;根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
按照检查节点在目标代码的运行顺序,生成检查链表;根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对目标代码进行相关性分析,剔除目标代码中的重复代码。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;根据目标代码,通过预设的神经网络模型,得到代码检查结果,其中,预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;将代码检查结果输出到预设的检查报告模板中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取历史样本数据、并根据预设的代码检查类别,将历史样本数据划分为多个维度的样本子集;根据样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;将每个学习器训练得到的预测结果进行集成处理;将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将目标代码进行分割,得到多个子代码;将每个子代码作为检查对象,生成多个检查节点;根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
按照检查节点在目标代码的运行顺序,生成检查链表;根据检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对目标代码进行相关性分析,剔除目标代码中的重复代码。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于机器学习的代码数据检查方法,其特征在于,所述方法包括:
获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
将所述代码检查结果输出到预设的检查报告模板中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
获取历史样本数据、并根据预设的代码检查类别,将所述历史样本数据划分为多个维度的样本子集;
根据所述样本子集,对初始神经网络模型进行训练,其中,初始神经网络模型中第一层神经网络包括多个学习器,每个学习器对应不同维度的样本子集,对各学习器进行训练;
将每个学习器训练得到的预测结果进行集成处理;
将集成的预测结果作为初始神经网络模型中第二层神经网络的输入进行训练,得到预设的神经网络模型。
3.根据权利要求2所述的方法,其特征在于,所述将每个学习器训练得到的预测结果进行集成处理之前,还包括:
通过交叉验证,将每个学习器对应的样本子集划分为训练集和验证集,对各学习器进行训练与验证。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果包括:
将所述目标代码进行分割,得到多个子代码;
将每个子代码作为检查对象,生成多个检查节点;
根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果。
5.根据权利要求4所述的方法,其特征在于,所述根据每个检查节点及预设的神经网络模型,得到每个检查节点的代码检查结果包括:
按照检查节点在所述目标代码的运行顺序,生成检查链表;
根据所述检查链表及预设的神经网络模型,得到每个检查节点的代码检查结果。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码,通过预设的神经网络模型,得到代码检查结果之前,还包括:
对所述目标代码进行相关性分析,剔除所述目标代码中的重复代码。
7.一种基于机器学习的代码数据检查装置,其特征在于,所述装置包括:
代码获取模块,用于获取代码检查请求、并提取代码检查请求中携带的待检查的目标代码;
检查结果获取模块,用于根据所述目标代码,通过预设的神经网络模型,得到代码检查结果,其中,所述预设的神经网络模型是通过历史多维度样本数据特征融合训练集成得到的;
结果输出模块,用于将所述代码检查结果输出到预设的检查报告模板中。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310685745.5A CN116880852A (zh) | 2023-06-09 | 2023-06-09 | 基于机器学习的代码数据检查方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310685745.5A CN116880852A (zh) | 2023-06-09 | 2023-06-09 | 基于机器学习的代码数据检查方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116880852A true CN116880852A (zh) | 2023-10-13 |
Family
ID=88255776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310685745.5A Pending CN116880852A (zh) | 2023-06-09 | 2023-06-09 | 基于机器学习的代码数据检查方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880852A (zh) |
-
2023
- 2023-06-09 CN CN202310685745.5A patent/CN116880852A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522435B (zh) | 一种图像检索方法及装置 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN116880852A (zh) | 基于机器学习的代码数据检查方法、装置及计算机设备 | |
US20220027722A1 (en) | Deep Relational Factorization Machine Techniques for Content Usage Prediction via Multiple Interaction Types | |
Strassenburg et al. | Efficiently Managing Deep Learning Models in a Distributed Environment. | |
CN117112452B (zh) | 寄存器模拟配置方法、装置、计算机设备和存储介质 | |
CN118092929A (zh) | 寄存器描述文件转换方法、装置、计算机设备和存储介质 | |
CN115118616B (zh) | 展示结果测试方法、装置、计算机设备和存储介质 | |
Forrest | Stream: A framework for data stream modeling in R | |
US20230269104A1 (en) | Method of managing data history and device performing the same | |
US20220277230A1 (en) | System and method for heterogeneous model composition | |
CN116401323A (zh) | 指标数据处理方法、装置及计算机设备 | |
CN117033242A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN115438605A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN117370160A (zh) | 代码审核方法、装置、计算机设备、存储介质和程序产品 | |
CN117971675A (zh) | 代码大模型的测评方法、装置、计算机设备和存储介质 | |
CN117273112A (zh) | 深度学习框架调整方法、装置、设备、介质和程序产品 | |
CN118036599A (zh) | 端到端联测场景确定方法、装置、计算机设备和存储介质 | |
CN117453561A (zh) | 测试脚本调用方法、装置、计算机设备和存储介质 | |
CN117033554A (zh) | 数据分析方法、装置、计算机设备以及存储介质 | |
CN116882008A (zh) | 基于数据驱动的变电站建筑信息模型生成方法和装置 | |
CN117951010A (zh) | 函数测试方法、装置、计算机设备和存储介质 | |
CN117435185A (zh) | 代码生成方法、装置、计算机设备和存储介质 | |
CN118132911A (zh) | 图计算中稀疏矩阵向量乘的自适应方法与装置 | |
CN113468280A (zh) | 一种数据认知方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |