CN115599392A - 一种代码处理的方法、装置、介质及电子设备 - Google Patents
一种代码处理的方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN115599392A CN115599392A CN202211379534.0A CN202211379534A CN115599392A CN 115599392 A CN115599392 A CN 115599392A CN 202211379534 A CN202211379534 A CN 202211379534A CN 115599392 A CN115599392 A CN 115599392A
- Authority
- CN
- China
- Prior art keywords
- model
- representation
- code
- result
- sample data
- 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
- 238000003672 processing method Methods 0.000 title abstract description 3
- 238000000034 method Methods 0.000 claims abstract description 84
- 238000000605 extraction Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000000007 visual effect Effects 0.000 claims abstract description 10
- 238000012512 characterization method Methods 0.000 claims description 146
- 238000012549 training Methods 0.000 claims description 84
- 230000001537 neural effect Effects 0.000 claims description 57
- 238000002372 labelling Methods 0.000 claims description 43
- 238000003062 neural network model Methods 0.000 claims description 43
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 30
- 239000013598 vector Substances 0.000 claims description 21
- 238000011176 pooling Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000003058 natural language processing Methods 0.000 claims description 4
- 238000013459 approach Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 230000036961 partial effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000000547 structure data Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000011423 initialization method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000010224 classification analysis Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Machine Translation (AREA)
Abstract
本申请实施例提供一种代码处理的方法、装置、介质及电子设备,所述方法包括:获取待处理的源代码数据;根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括代码文本视角和代码拓扑图视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。本申请的一些实施例相较于其它现有方法,学习到的表示更加全面。同时,通过对比代码样本的不同视角,本申请的一些实施例构建了使用无监督学习处理无标注代码数据的解决方案,提高了数据利用率。
Description
技术领域
本申请涉及代码处理领域,具体而言本申请实施例涉及一种代码处理的方法、装置、介质及电子设备。
背景技术
代码表示学习的目的是构建代码数据的更为简单,同时包含必要信息的特征表示。对于代码分析来说,代码的表示学习是至关重要的。
随着人工神经网络技术的发展,已经有多种类的神经网络技术方法被应用到了代码表示学习之上,包括用于处理序列化数据的LSTM网络,transformer网络,以及用于处理图结构数据的图神经网络。目前的基于神经网络的代码表示学习方法,主要是使用神经网络模型对于代码数据(例如,代码数据包括代码语句、代码构建得到的抽象语法树和代码注释等)进行处理,得到代码的特征向量形式的表示,这些代码的表示在下游任务(例如,该下游任务示例性包括漏洞匹配与查找、代码分类、代码总结或者代码生成等)中有着广泛的应用。
本申请的发明人在研究中发现,目前的基于神经网络的代码表示学习方法往往使用代码的单一视角进行学习。例如,基于图结构数据视角的代码表示学习方法,只对于代码的抽象语法树进行学习。基于序列化数据视角的LSTM网络,transformer网络等,往往只对于代码的文本语句,注释等信息进行处理。然而在源代码中,即包含有丰富的文本信息,语义信息,包括各个语句的含义,注释的内容等,同时也包含有图结构的信息,包括调用关系,运行逻辑等。现有手段无法充分融合利用这些信息来进行完备的代码表示学习。
发明内容
本申请实施例的目的在于提供一种代码处理的方法、装置、介质及电子设备,本申请的一些实施例通过结合两种不同代码视角,包括图结构视角以及序列结构视角,使用对应的神经网络进行处理,然后进行无监督与有监督的学习,实现了代码的结构与语义的信息的表示获取,相较于其它现有方法,学习到的表示更加全面。同时,通过对比代码样本的不同视角,本申请的一些实施例构建了使用无监督学习处理无标注代码数据的解决方案,提高了数据利用率。
第一方面,本申请实施例提供一种代码处理的方法,所述方法包括:获取待处理的源代码数据;根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括代码文本视角和代码拓扑图视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
本申请的一些实施例使用基于代码数据的多个视角进行代码数据的特征提取及表征,进而得到更好的代码表示。
在一些实施例中,在所述根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果之后,所述方法还包括:根据所述代码表征结果完成对所述源代码数据的分析。
本申请的一些实施例基于代码表征结果进行代码的进一步分析(例如,分类分析等)获取更好的处理结果。
在一些实施例中,在所述根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果之前,所述方法还包括:通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型,其中,所述代码特征表征模型包括代码第一视角特征提取表征模型以及代码第二视角特征提取表征模型。
本申请的一些实施例通过引入无监督对比学习,来通过对比不同视角下的代码数据来准确可靠的促进表示学习,并对采用无标注数据进行无监督学习得到的模型进行基于标注数据的监督训练可以进一步提升训练得到的模型的性能。
在一些实施例中,所述代码第一视角特征提取表征模型为图神经网络模型,所述图神经网络模型包括:第一图神经子网络模型和第二图神经子网络模型,所述第一图神经子网络模型对应所述图神经网络模型包括的前n层神经网络层,所述第二图神经子网络模型对应所述图神经网络模型包括的后m层神经网络层,所述代码第二视角特征提取表征模型为序列语义表征模型,所述序列语义表征模型包括第一序列语义表征子模型以及第二序列语义表征子模型,所述第一序列语义表征子模型对应所述序列语义表征模型的前k层神经网络层,所述第二序列语义表征子模型对应所述序列语义表征模型的后p层神经网络层;其中,所述通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型,包括:至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型。
本申请的一些实施例采用无标注数据训练图神经网络模型的部分层以及序列语义表征模型的部分层,在提高无标注数据利用率的基础上提升训练得到的模型的性能。
在一些实施例中,所述至少根据无标注源代码数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型,包括:将与无标注样本对应的抽象语法树输入所述第一图神经子网络模型,得到源代码第一特征表示,其中,所述源代码第一特征表示用于表征所述无标注数据的结构特征;将所述无标注样本数据输入所述第一序列语义表征子模型以得到源代码第二特征表示,其中,所述源代码第二特征表示用于表征所述无标注数据的语义特征;至少根据所述源代码第一特征表示和所述源代码第二特征表示进行联合对比获取对比结果,并根据所述对比结果调整训练中的模型参数。
本申请的一些实施例引入了无监督对比学习,来通过对比不同视角下的代码数据来准确可靠的促进表示学习。
在一些实施例中,所述源代码第二特征表示是将所述第一序列语义表征子模型输出的结果进行池化操作后得到的。
在一些实施例中,通过如下损失函数计算公式得到所述对比结果:
其中,表示根据所述源代码第一特征表示和所述源代码第二特征表示得到的同一样本的不同视角间的相似度,sj为不同样本不同视角间的相似度,ci为单个样本的barlowtwins损失,所有w均为权重参数,λ为可调整超参数,M表征同一样本的不同视角可组成的最大样本对的数量,N表征不同样本不同视角可组成的最大样本对的数量,K表征样本的数量。
本申请的一些实施例为了拉近同一样本不同视角下的特征表示,并且推远不同样本不同视角下的特征表示,使用了带权重的对比损失函数,提升对当前训练中的模型的性能评估。
在一些实施例中,在所述至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型之后,所述方法还包括:根据标注样本数据,对由所述目标第一图神经子网络模型和所述第二图神经子网络模型组成的第一图神经网络模型,以及由所述目标第一序列语义表征子模型和所述第二序列语义表征子模型组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型。
本申请的一些实施例利用无标注数据训练得到的部分图神经网络模型和部分序列语义表征模型,以及标注数据对图神经网络模型和序列语义表征模型进行有监督训练,提升训练得到的模型的效果。
在一些实施例中,所述根据标注样本数据,对由所述目标第一图神经子网络模型和所述第二图神经子网络模型组成的第一图神经网络模型,以及由所述目标第一序列语义表征子模型和所述第二序列语义表征子模型组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型,包括:将所述标注样本数据输入所述目标第一图神经子网络模型得到第一标注样本数据结构表征结果,再将所述第一标注样本数据结构表征结果输入所述第二序列语义表征子模型得到第二标注样本数据结构表征结果;将所述标注样本数据输入所述目标第一序列语义表征子模型,得到第一标注样本数据语义表征结果,再将所述第一标注样本数据语义表征结果输入所述第二序列语义表征子模型得到第二标注样本数据语义表征结果;根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果;将所述联合表征结果输入分类器,得到预测分类结果;根据所述标注样本数据携带的标签获取与所述预测分类结果对应的损失函数值,并根据所述损失函数值完成反向传播计算,修正网络参数值。
本申请的一些实施例示例结合无标注数据训练得到的代码数据表征结果,以及根据完整的图神经网络模型和序列语义表征模型输出的特征表征结果计算分类损失,进而完成针对图神经网络模型和序列语义表征模型的训练。
在一些实施例中,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果,包括:对所述第一标注样本数据语义表征结果进行池化操作,得到池化第一标注样本数据语义表征结果;对所述第二标注样本数据语义表征结果进行池化操作,得到池化第二标注样本数据语义表征结果;根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果。
本申请的一些实施例还需要采用池化操作将特征表征结果修正为整图的特征表示。
在一些实施例中,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果,包括:将所述第一标注样本数据结构表征结果映射为目标长度的向量,得到目标第一标注样本数据结构表征结果;将所述第二标注样本数据结构表征结果映射为所述目标长度的向量,得到目标第二标注样本数据结构表征结果;将所述池化第一标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第一标注样本数据语义表征结果;将所述池化第二标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第二标注样本数据语义表征结果;将所述目标第一标注样本数据结构表征结果、所述目标第二标注样本数据结构表征结果、所述目标第一标注样本数据语义表征结果以及所述目标第二标注样本数据语义表征结果以样本为单元进行拼接,得到所述联合表征结果。
本申请的一些实施例以样本为单位拼接训练中的模型输出的特征表示结果,进而提升有监督训练得到的模型的效果。
在一些实施例中,所述样本为函数。
在一些实施例中,所述序列语义表征模型为Transformer神经网络模型或者自然语言处理神经网络模型。
第二方面,本申请的一些实施例提供一种代码处理装置,所述装置包括:源代码数据获取模块,被配置为获取待处理的源代码数据;代码表征结果获取模块,被配置为根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括结构视角和语义视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述第一方面任意实施例所述的方法。
第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的对代码数据进行分析的系统组成示意图;
图2为本申请实施例提供的代码处理的方法的流程图之一;
图3为本申请实施例提供的代码处理装置的组成示意图之一;
图4为本申请实施例提供的代码处理装置的组成示意图之二;
图5为本申请实施例提供的用于展示采用无标注数据进行预训练过程的示意图;
图6为本申请实施例提供的用于展示采用标注数据进行监督训练过程的示意图;
图7为本申请实施例提供的训练过程结束时的架构图;
图8为本申请实施例提供的以transformer网络作为序列语义表征模型的预训练过程示意图;
图9为本申请实施例提供的以transformer网络作为序列语义表征模型的训练过程示意图;
图10为本申请实施例提供的代码处理的装置的组成框图;
图11为本申请实施例提供的电子设备组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的一些实施例使用基于代码数据的多个视角(例如,该多个视角包括代码文本视角(即源代码视角)以及代码拓扑图视角(即抽象语法树表示视角)等)的基础上进行无监督对比学习,来使得模型充分适应不同视角下的代码数据,进而得到更好的代码表示。
本申请的发明人在研究中发现,在目前的基于神经网络的代码分析技术中,虽然已经引入了无监督学习的思想,但是,当前的实现,包括无监督的标签提取、无监督聚类和弱监督等,并没有彻底的从源代码数据出发进行表示学习的促进。举例来讲,无监督的标签提取实际上使用NLP模型从代码中提取标签再进行训练,这种方法实际上并不够准确,因为它不是完全基于源代码数据,标签提取可能出现问题。而无监督聚类的相关方法则无法促进表示学习。弱监督实际上需要引入一定量的标签数据。为了解决上述问题,本申请的一些实施例引入了无监督对比学习,通过对比不同视角下的代码数据来准确可靠的促进对源代码的表示学习。
需要说明的是,本申请实施例所进行的代码分析以函数为单位(对于Python语言则为方法),一个函数为一个样本。
例如,本申请的一些实施例使用图神经网络进行代码抽象语法树的图结构数据的表示获取,同时使用语义提取神经网络对于代码文本和注释文本进行表示获取,然后分别进行无监督预训练以及有监督训练。
请参看图1,图1为本申请一些实施例提供的对代码数据进行分析的系统,该系统包括神经网络模型100以及代码分析模型200,其中,神经网络模型100用于对代码数据(例如,代码数据包括代码语句、代码构建得到的抽象语法树和代码注释等)进行处理得到代码的特征向量形式的表征结果,即得到图1的代码的特征向量112,之后再将代码的特征向量112输入代码分析模型200得到代码分析结果113。
需要说明的是,在本申请的一些实施例中图1的神经网络模型100不同于现有的网络模型,通过图1的神经网络模型100可以对输入的代码数据111进行多视角的特征向量表征。
下面以图1的神经网络模型100为代码多视角特征提取及表征模型为例示例性阐述本申请一些实施例提供的代码处理的方法。
如图2所示,本申请实施例提供一种代码处理的方法,该方法包括:
S101,获取待处理的源代码数据。
例如,从存储器读取待处理的源代码数据,或者通过通信单元接收来自于其他设备发送的待处理的源代码数据。
S102,根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括结构视角和语义视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
如图3所示,在本申请的一些实施例中,将待分析的源代码数据输入代码多视角特征提取及表征模型100包括的代码第一视角特征提取表征模型110以及代码第二视角特征提取表征模型120,得到由这两个模型分别输出的源代码的表征结果,之后再通过图3的联合特征表示处理模块130得到联合表征结果(即得到S102的代码特征表征结果)。
如图4所示,在本申请的一些实施例中,代码第一视角特征提取表征模型110包括提取器111以及目标图结果表征模型112,且代码第二视角特征提取表征模型120示例性包括目标语义表征模型121。
也就是说,本申请的一些实施例使用基于代码数据的多个视角进行代码数据的特征提取及表征,进而得到更好的代码表示。
需要说明的是,在本申请的一些实施例中在S102之后,所述方法还包括:S103,根据所述代码表征结果完成对所述源代码数据的分析。本申请的一些实施例基于代码表征结果进行代码的进一步分析获取更好的处理结果。在本申请的一些实施例中,在S102之前,所述方法还包括:通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型,其中,所述代码特征表征模型包括代码第一视角特征提取表征模型以及代码第二视角特征提取表征模型。例如,若代码多视角特征提取及表征模型包括图结构表征模型和语义表征模型时,得到该代码多视角特征提取及表征模型即得到图4所示的目标图结构表征模型112以及图4的目标语义表征模型121。也就是说,本申请的一些实施例通过引入无监督对比学习,来通过对比不同视角下的代码数据来准确可靠的促进表示学习,并对采用无标注数据进行无监督学习得到的模型进行基于标注数据的监督训练可以进一步提升训练得到的模型的性能。
下面示例性阐述通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型的过程。
首先阐述无监督预训练过程。
在本申请的一些实施例中,所述代码第一视角特征提取表征模型为图神经网络模型,所述图神经网络模型包括:如图5示出的第一图神经子网络模型115和如图6示出的第二图神经子网络模型117,所述第一图神经子网络模型对应所述图神经网络模型包括的前n层神经网络层,所述第二图神经子网络模型对应所述图神经网络模型包括的后m层神经网络层,所述代码第二视角特征提取表征模型为序列语义表征模型,所述序列语义表征模型包括如图5示出的第一序列语义表征子模型123以及如图6示出的第二序列语义表征子模型125,所述第一序列语义表征子模型对应所述序列语义表征模型的前k层神经网络层,所述第二序列语义表征子模型对应所述序列语义表征模型的后p层神经网络层;其中,所述通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型的过程示例性包括:至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型。也就是说,本申请的一些实施例采用无标注数据训练图神经网络模型的部分层以及序列语义表征模型的部分层,在提高无标注数据利用率的基础上提升训练得到的模型的性能。
例如,在本申请的一些实施例中,所述至少根据无标注源代码数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型的过程示例性包括:将与无标注样本对应的抽象语法树输入所述第一图神经子网络模型,得到源代码第一特征表示,其中,所述源代码第一特征表示用于表征所述无标注数据的结构特征;将所述无标注样本数据输入所述第一序列语义表征子模型以得到源代码第二特征表示,其中,所述源代码第二特征表示用于表征所述无标注数据的语义特征;至少根据所述源代码第一特征表示和所述源代码第二特征表示进行联合对比获取对比结果,并根据所述对比结果调整训练中的模型参数。本申请的一些实施例引入了无监督对比学习,来通过对比不同视角下的代码数据来准确可靠的促进表示学习。
如图5所示,将训练源代码数据输入提取器111得到抽象语法树,再将抽象语法树输入第一图神经子网络模型115得到源代码第一特征表示,同时将训练源代码数据输入第一序列语义表征子模型123得到源代码第二特征表示,根据源代码第一特征表示和源代码第二特征表示以及联合对比损失函数值获取模块150提供的损失函数得到损失函数值,之后再根据对比结果的损失值调整第一图神经子网络模型115以及第一序列语义表征子模型123的参数,重复上述过程直至完成训练得到与第一图神经子网络模型对应的最终的权重系数并得到与第一序列语义表征子模型123对应的权重系数,进而得到如图6示出的目标第一图神经子网络模型116(即采用第一图神经子网络模型115的架构并加载了训练结束后得到的该模型的权重系数)以及目标第一序列语义表征子模型124(即采用第一序列语义表征子模型123的架构并加载了训练结束后得到的该模型的权重系数)。
下面示例性阐述图5的联合对比损失函数值获取模块150所采用的损失函数的表达式。
例如,在本申请的一些实施例中,通过如下损失函数计算公式得到所述对比结果:
其中,表示根据所述源代码第一特征表示和所述源代码第二特征表示得到的同一样本的不同视角间的相似度,为不同样本不同视角间的相似度,ci为单个样本的barlow twins损失,所有w均为权重参数,λ为可调整超参数,M表征同一样本的不同视角可组成的最大样本对的数量,N表征不同样本不同视角可组成的最大样本对的数量,K表征样本的数量。本申请的一些实施例为了拉近同一样本不同视角下的特征表示,并且推远不同样本不同视角下的特征表示,使用了带权重的对比损失函数,提升对当前训练中的模型的性能评估。
其次示例性阐述对模型进行有监督训练的过程。
在本申请的一些实施例中,在所述至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型之后,所述方法还包括:根据标注样本数据,对由如图6示出的目标第一图神经子网络模型116和第二图神经子网络模型117组成的第一图神经网络模型,以及由目标第一序列语义表征子模型124和第二序列语义表征子模型125组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型。本申请的一些实施例利用无标注数据训练得到的部分图神经网络模型和部分序列语义表征模型,以及标注数据对图神经网络模型和序列语义表征模型进行有监督训练,提升训练得到的模型的效果。
例如,在本申请的一些实施例中,所述根据标注样本数据,对由所述目标第一图神经子网络模型和所述第二图神经子网络模型组成的第一图神经网络模型,以及由所述目标第一序列语义表征子模型和所述第二序列语义表征子模型组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型,包括:将所述标注样本数据输入所述目标第一图神经子网络模型得到第一标注样本数据结构表征结果,再将所述第一标注样本数据结构表征结果输入所述第二序列语义表征子网络模型得到第二标注样本数据结构表征结果;将所述标注样本数据输入所述目标第一序列语义表征子模型,得到第一标注样本数据语义表征结果,再将所述第一标注样本数据语义表征结果输入所述第二序列语义表征子模型得到第二标注样本数据语义表征结果;根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果,即由图6的联合特征表示模块160输出的联合表征结果,该模块以四类模型的特征表示结果作为输入;将所述联合表征结果输入如图6示出的分类器180,得到预测分类结果;根据所述标注样本数据携带的标签获取与所述预测分类结果对应的损失函数值(例如,采用图6的分类损失值计算模块190计算标签与预测分类结果之间的差异得到分类损失值),并根据所述损失函数值完成反向传播计算,修正网络参数值(需要说明的该阶段仅仅修正B段和分类器的参数)。也就是说,本申请的一些实施例示例结合无标注数据训练得到的代码数据表征结果,以及根据完整的图神经网络模型和序列语义表征模型输出的特征表征结果计算分类损失,进而完成针对图神经网络模型和序列语义表征模型的训练。
例如,在本申请的一些实施例中,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果,包括:对所述第一标注样本数据语义表征结果进行池化操作(例如,利用图6的池化模型进行池化操作),得到池化第一标注样本数据语义表征结果;对所述第二标注样本数据语义表征结果进行池化操作(例如,利用图6的池化模型进行池化操作),得到池化第二标注样本数据语义表征结果;根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果(例如,由图6的联合特征表示模块160对输入的这四类数据进行拼接操作得到联合表征结果)。本申请的一些实施例还需要采用池化操作将特征表征结果修正为整图的特征表示。
例如,在本申请的一些实施例中,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果,包括:将所述第一标注样本数据结构表征结果映射为目标长度的向量,得到目标第一标注样本数据结构表征结果;将所述第二标注样本数据结构表征结果映射为所述目标长度的向量,得到目标第二标注样本数据结构表征结果;将所述池化第一标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第一标注样本数据语义表征结果;将所述池化第二标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第二标注样本数据语义表征结果;将所述目标第一标注样本数据结构表征结果、所述目标第二标注样本数据结构表征结果、所述目标第一标注样本数据语义表征结果以及所述目标第二标注样本数据语义表征结果以样本为单元进行拼接,得到所述联合表征结果。本申请的一些实施例以样本为单位拼接训练中的模型输出的特征表示结果,进而提升有监督训练得到的模型的效果。
不难理解的是,本申请的一些实施例根据分类损失值来进行反向传播完成对图6的各神经网络模型的参数调整,直至达到训练结束时结束训练过程,得到如图7示出的修正目标第一图神经子网络模型118、目标第二图神经子网络模型117、修正目标第一序列语义表征子模块126以及目标第二序列语义表征子模块127。需要说明的是,图7与图6的差异在于图7的模型是在图6对应模型的基础上加载了经过训练后得到的权重系数的模型。为避免重复对于图7与图6相同的模块等不进行进一步阐述。图7的分类损失值满足阈值要求。
可以理解的是,后续有需要待分析的源代码数据时可以输入如图7示出的架构中,获取联合特别表征结果并基于该结果得到预测分类结果,在这些实施例中并不需要图7示出的标签,因为已经完成了整体模型的预训练和训练过程了。
需要说明的是,在本申请的一些实施例中,所述样本为函数。在本申请的一些实施例中,所述序列语义表征模型为Transformer神经网络模型或者自然语言处理神经网络模型。
下面以序列语义表征模型为Transformer神经网络模型示例性阐述上述预训练和训练过程。
如图8所示,首先对于无监督预训练过程进行介绍。无监督预训练的目的是充分利用未经标注的代码数据对于模型进行训练,通过这种方式来让模型对于代码数据有较好的表示,同时使模型可以有能力利用未经标注的代码数据。
步骤①:使用提取器从源代码中提取抽象语法树(AST)并转换为图结构数据。获取AST可使用目前任何一种常用的AST提取方法实现。之后,使用一层嵌入层将AST节点中的描述转化为特征向量,并将AST的边按其端点序号的方式进行存储。
步骤②:将处理后的AST输入图神经网络A段(作为第一图神经子网络模型的一个示例)。在本申请的一些实施例中,将一整个图神经网络进行了分段,分为A,B两段,A段含有n层神经网络层,B段含有m层神经网络层(作为第二图神经子网络模型的一个示例),n,m均为可配置参数。在无监督预训练中,只有A段参与训练。由于输出为AST节点的特征表示,因而通过池化的方式转化为整图的特征表示。
步骤③:将整段代码作为文本序列使用Transformer网络(作为第二视角神经网络模型的一个具体示例)进行学习,在本申请的一些实施例中,只使用Transformer的编码器部分,以输出特征表示。Transformer网络(仅编码器部分)同样进行了A段(作为第一序列语义表征子模型的一个示例),B段(作为第二序列语义表征子模型的一个示例)分隔。同时,本申请的一些实施例将代码语句间加入分隔符号,以保持一定的代码结构信息。
步骤④:在得到了通过Transformer网络以及图神经网络获得的表示后,拉近同一样本不同视角下的特征表示,并且推远不同样本不同视角下的特征表示。为了实现这个目标,本申请的一些实施例使用了带权重的对比损失函数:
式中,表示同一样本的不同视角间的相似度,相似度使用余弦相似度计算,为不同样本不同视角间的相似度。ci为单个样本的barlow twins损失。所有w均为权重参数,该参数为对应的s或c距离其变量本身的最优值的距离的绝对值。λ为可调整超参数。完成损失函数计算后,基于损失进行反向传播计算。计算方法与其它类型的神经网络一致。
完成无监督预训练后,再在有标注的数据集上进行有监督的学习。有监督训练方法示意图如下:
如图9所示,具体步骤如下:
步骤①,②和③:与无监督流程中一致。
步骤④:将上文中叙述的分段后的图神经网络B段加入模型,B段网络的初始参数使用随机初始化的方法获得。由于输出为AST节点的特征表示,因而通过池化的方式转化为整图的特征表示。同时,如图所示,也同样将A段输出单独保留。
步骤⑤:将上文中叙述的分段后的Transformer网络B段加入模型,网络的初始参数使用随机初始化的方法获得。
步骤⑥:基于Transformer和图神经网络输出的特征值获取代码的联合特征表示。输入的特征包括两种神经网络A段,B段的特征输出,共四种特征。在拼接之前,我们使用可变参数来控制各个特征向量映射为指定长度。各个特征向量长度为可控参数。之后,将这四种特征以样本为单元进行拼接,即输出的每个样本的特征都包含上述四种特征沿特征向量维度进行的拼接。
步骤⑦:输出的特征输入分类器,并输出分类。
步骤⑧:根据模型输出分类以及标签数据计算损失。完成损失函数计算后,基于损失进行反向传播计算。计算方法与其它类型的神经网络一致。
也就是说,本申请的一些实施例通过结合两种不同代码视角,包括图结构视角以及序列结构视角,使用对应的神经网络进行处理,然后进行无监督与有监督的学习,实现了代码的结构与语义的信息的表示获取,相较于其它现有方法,学习到的表示更加全面。同时,通过对比代码样本的不同视角,本申请的一些实施例构建了使用无监督学习处理无标注代码数据的解决方案,提高了数据利用率。
如图10所示,图5示出了本申请实施例提供的代码处理装置,应理解,该装置与上述图1方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该代码处理装置包括:源代码数据获取模块101以及代码表征结果获取模块102。
源代码数据获取模块,被配置为获取待处理的源代码数据。
代码表征结果获取模块,被配置为根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括结构视角和语义视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
对于上述模块的具体实现过程可参考前文方法中的实现过程,为避免重复在此不做过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述任意实施例所述的方法。
如图11所示,本申请的一些实施例提供一种电子设备500,包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器520通过总线530从存储器510读取程序并执行所述程序时可实现如上述任意实施例所述的方法。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图2中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (16)
1.一种代码处理的方法,其特征在于,所述方法包括:
获取待处理的源代码数据;
根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括代码文本视角和代码拓扑图视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
2.如权利要求1所述的方法,其特征在于,在所述根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果之后,所述方法还包括:根据所述代码表征结果完成对所述源代码数据的分析。
3.如权利要求1所述的方法,其特征在于,在所述根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果之前,所述方法还包括:
通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型,其中,所述代码特征表征模型包括代码第一视角特征提取表征模型以及代码第二视角特征提取表征模型。
4.如权利要求3所述的方法,其特征在于,所述代码第一视角特征提取表征模型为图神经网络模型,所述图神经网络模型包括:第一图神经子网络模型和第二图神经子网络模型,所述第一图神经子网络模型对应所述图神经网络模型包括的前n层神经网络层,所述第二图神经子网络模型对应所述图神经网络模型包括的后m层神经网络层,所述代码第二视角特征提取表征模型为序列语义表征模型,所述序列语义表征模型包括第一序列语义表征子模型以及第二序列语义表征子模型,所述第一序列语义表征子模型对应所述序列语义表征模型的前k层神经网络层,所述第二序列语义表征子模型对应所述序列语义表征模型的后p层神经网络层;
其中,
所述通过无监督预训练以及有监督训练得到所述代码多视角特征提取及表征模型,包括:
至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型。
5.如权利要求4所述的方法,其特征在语,所述至少根据无标注源代码数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型,包括:
将与无标注样本对应的抽象语法树输入所述第一图神经子网络模型,得到源代码第一特征表示,其中,所述源代码第一特征表示用于表征所述无标注数据的结构特征;
将所述无标注样本数据输入所述第一序列语义表征子模型以得到源代码第二特征表示,其中,所述源代码第二特征表示用于表征所述无标注数据的语义特征;
至少根据所述源代码第一特征表示和所述源代码第二特征表示进行联合对比获取对比结果,并根据所述对比结果调整训练中的模型参数。
6.如权利要求5所述的方法,其特征在于,所述源代码第二特征表示是将所述第一序列语义表征子模型输出的结果进行池化操作后得到的。
8.如权利要求7所述的方法,其特征在于,在所述至少根据无标注样本数据对所述第一图神经子网络模型和所述第一序列语义表征子模型进行训练,得到目标第一图神经子网络模型和目标第一序列语义表征子模型之后,所述方法还包括:
根据标注样本数据,对由所述目标第一图神经子网络模型和所述第二图神经子网络模型组成的第一图神经网络模型,以及由所述目标第一序列语义表征子模型和所述第二序列语义表征子模型组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型。
9.如权利要求8所述的方法,其特征在于,所述根据标注样本数据,对由所述目标第一图神经子网络模型和所述第二图神经子网络模型组成的第一图神经网络模型,以及由所述目标第一序列语义表征子模型和所述第二序列语义表征子模型组成的第一序列语义表征模型,进行有监督训练得到所述代码多视角特征提取及表征模型,包括:
将所述标注样本数据输入所述目标第一图神经子网络模型得到第一标注样本数据结构表征结果,再将所述第一标注样本数据结构表征结果输入所述第二序列语义表征子模型得到第二标注样本数据结构表征结果;
将所述标注样本数据输入所述目标第一序列语义表征子模型,得到第一标注样本数据语义表征结果,再将所述第一标注样本数据语义表征结果输入所述第二序列语义表征子模型得到第二标注样本数据语义表征结果;
根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果;
将所述联合表征结果输入分类器,得到预测分类结果;
根据所述标注样本数据携带的标签获取与所述预测分类结果对应的损失函数值,并根据所述损失函数值完成反向传播计算,修正网络参数值。
10.如权利要求9所述的方法,其特征在于,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述第一标注样本数据语义表征结果以及所述第二标注样本数据语义表征结果得到联合表征结果,包括:
对所述第一标注样本数据语义表征结果进行池化操作,得到池化第一标注样本数据语义表征结果;
对所述第二标注样本数据语义表征结果进行池化操作,得到池化第二标注样本数据语义表征结果;
根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果。
11.如权利要求10所述的方法,其特征在于,所述根据所述第一标注样本数据结构表征结果、所述第二标注样本数据结构表征结果、所述池化第一标注样本数据语义表征结果以及所述池化第二标注样本数据语义表征结果进行拼接操作,得到所述联合表征结果,包括:
将所述第一标注样本数据结构表征结果映射为目标长度的向量,得到目标第一标注样本数据结构表征结果;
将所述第二标注样本数据结构表征结果映射为所述目标长度的向量,得到目标第二标注样本数据结构表征结果;
将所述池化第一标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第一标注样本数据语义表征结果;
将所述池化第二标注样本数据语义表征结果映射为所述目标长度的向量,得到目标第二标注样本数据语义表征结果;
将所述目标第一标注样本数据结构表征结果、所述目标第二标注样本数据结构表征结果、所述目标第一标注样本数据语义表征结果以及所述目标第二标注样本数据语义表征结果以样本为单元进行拼接,得到所述联合表征结果。
12.如权利要求11所述的方法,其特征在于,所述样本为函数。
13.如权利要求3-11任一项所述的方法,其特征在于,所述序列语义表征模型为Transformer神经网络模型或者自然语言处理神经网络模型。
14.一种代码处理装置,其特征在于,所述装置包括:
源代码数据获取模块,被配置为获取待处理的源代码数据;
代码表征结果获取模块,被配置为根据所述源代码数据和代码多视角特征提取及表征模型获取针对所述源代码数据的代码特征表征结果,其中,所述代码多视角特征提取及表征模型可从多个视角提取所述源代码数据的特征并对提取的各种特征进行表征,所述多个视角至少包括结构视角和语义视角,所述代码特征表征结果至少用于表征所述源代码数据的结构与语义。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-13中任意一项权利要求所述的方法。
16.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-13中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211379534.0A CN115599392A (zh) | 2022-11-04 | 2022-11-04 | 一种代码处理的方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211379534.0A CN115599392A (zh) | 2022-11-04 | 2022-11-04 | 一种代码处理的方法、装置、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599392A true CN115599392A (zh) | 2023-01-13 |
Family
ID=84851899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211379534.0A Pending CN115599392A (zh) | 2022-11-04 | 2022-11-04 | 一种代码处理的方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599392A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661805A (zh) * | 2023-07-31 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 代码表示的生成方法和装置、存储介质及电子设备 |
-
2022
- 2022-11-04 CN CN202211379534.0A patent/CN115599392A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661805A (zh) * | 2023-07-31 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 代码表示的生成方法和装置、存储介质及电子设备 |
CN116661805B (zh) * | 2023-07-31 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 代码表示的生成方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298035B (zh) | 基于人工智能的字向量定义方法、装置、设备及存储介质 | |
CN112800776B (zh) | 双向gru关系抽取数据处理方法、系统、终端、介质 | |
CN112164391A (zh) | 语句处理方法、装置、电子设备及存储介质 | |
CN110598191B (zh) | 一种基于神经网络的复杂pdf结构解析方法及装置 | |
CN108664512B (zh) | 文本对象分类方法及装置 | |
CN113849648B (zh) | 分类模型训练方法、装置、计算机设备和存储介质 | |
CN109214407B (zh) | 事件检测模型、方法、装置、计算设备及存储介质 | |
CN111143569A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN109829478B (zh) | 一种基于变分自编码器的问题分类方法和装置 | |
CN114090780A (zh) | 一种基于提示学习的快速图片分类方法 | |
Ren et al. | Prompt pre-training with twenty-thousand classes for open-vocabulary visual recognition | |
CN106570162A (zh) | 基于人工智能的谣言识别方法及装置 | |
WO2019160096A1 (ja) | 関係性推定モデル学習装置、方法、及びプログラム | |
CN111611395A (zh) | 一种实体关系的识别方法及装置 | |
CN116127060A (zh) | 一种基于提示词的文本分类方法及系统 | |
CN114896434A (zh) | 一种基于中心相似度学习的哈希码生成方法及装置 | |
CN115994204A (zh) | 适用于少样本场景的国防科技文本结构化语义分析方法 | |
CN115599392A (zh) | 一种代码处理的方法、装置、介质及电子设备 | |
CN111611796A (zh) | 下位词的上位词确定方法、装置、电子设备及存储介质 | |
CN117828024A (zh) | 一种插件检索方法、装置、存储介质及设备 | |
CN116680407A (zh) | 一种知识图谱的构建方法及装置 | |
CN110929013A (zh) | 一种基于bottom-up attention和定位信息融合的图片问答实现方法 | |
CN113434721B (zh) | 表情包分类方法、装置、计算机设备和存储介质 | |
CN113342974B (zh) | 一种网络安全实体重叠关系的识别方法、装置及设备 | |
CN113378826B (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 |