一种抽象语法树中节点的向量化表示方法及装置制造方法及图纸

技术编号:26596523 阅读:17 留言:0更新日期:2020-12-04 21:18
本申请实施例提供一种抽象语法树中节点的向量化表示方法及装置,涉及计算机技术领域,该抽象语法树中节点的向量化表示方法包括:先获取待处理的抽象语法树;然后再对抽象语法树进行广度优先遍历,得到第一序列,并再次对该抽象语法树进行深度优先遍历,得到第二序列;进一步地,根据第一序列和第二序列生成待处理编码序列;最后再通过预先构建的向量化处理模型对待处理编码序列进行处理,得到抽象语法树中节点的向量化表示结果。可见,该方法能够全面覆盖抽象语法树中所有节点,进而准确地对抽象语法树中节点进行向量化表示。

【技术实现步骤摘要】
一种抽象语法树中节点的向量化表示方法及装置
本申请涉及计算机
,具体而言,涉及一种抽象语法树中节点的向量化表示方法及装置。
技术介绍
抽象语法树(AST)或语法树是用编程语言编写的源代码数据的抽象语法结构的树表示,树的每个节点表示在源代码数据中出现的构造。现有的抽象语法树中节点的向量化表示方法,通常直接对抽象语法树中节点的子节点进行编码,得到抽象语法树中节点的向量化表示。在实践中发现,现有的向量化表示方法仅使用其子节点而丢弃了兄弟节点和孙节点,从而导致节点信息丢失。可见,现有的抽象语法树中节点的向量化表示方法,无法准确地对抽象语法树中节点进行向量化表示。
技术实现思路
本申请实施例的目的在于提供一种抽象语法树中节点的向量化表示方法及装置,能够全面覆盖抽象语法树中所有节点,进而准确地对抽象语法树中节点进行向量化表示。本申请实施例第一方面提供了一种抽象语法树中节点的向量化表示方法,包括:获取待处理的抽象语法树;对所述抽象语法树进行广度优先遍历,得到第一序列,以及对所述抽象语法树进行深度优先遍历,得到第二序列;根据所述第一序列和所述第二序列,生成待处理编码序列;通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果。在上述实现过程中,先获取待处理的抽象语法树;然后再对抽象语法树进行广度优先遍历,得到第一序列,并再次对该抽象语法树进行深度优先遍历,得到第二序列;进一步地,根据第一序列和第二序列生成待处理编码序列;最后再通过预先构建的向量化处理模型对待处理编码序列进行处理,得到抽象语法树中节点的向量化表示结果。可见,该方法能够全面覆盖抽象语法树中所有节点,进而准确地对抽象语法树中节点进行向量化表示。进一步地,所述获取待处理的抽象语法树,包括:获取待处理的源代码数据;对所述源代码数据进行解析处理,得到所待处理的抽象语法树。在上述实现过程中,可以通过对源代码数据进行解析得到抽象语法树,在进行抽象语法树的向量化表示时,只需要获取源代码数据文件,就能够生成对应的向量化表示,方法简单,适用范围广。进一步地,所述根据所述第一序列和所述第二序列,生成待处理编码序列,包括:对所述第一序列和所述第二序列进行连接处理,得到连接序列;对所述连接序列进行编码处理,得到待处理编码序列。在上述实现过程中,通过连接第一序列和第二序列,得到的连接序列能够覆盖抽象语法树中兄弟节点和父子节点之间的相关性,捕获抽象语法树中节点之间存在的一些结构规律,有利于准确地对抽象语法树中节点进行向量化表示。进一步地,在所述通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果之前,所述方法发还包括:构建原始处理模型;获取用于训练所述原始处理模型的训练数据和预设模型参数;通过所述预设模型参数对所述原始处理模型进行调整,得到初始模型;通过所述训练数据对所述初始模型进行训练,得到向量化处理模型。在上述实现过程中,在通过预先构建的向量化处理模型对待处理编码序列进行处理之前,还需要构建原始处理模型,然后再通过预设模型参数和训练数据对原始处理模型进行参数设定和训练,进而得到向量化处理模型。进一步地,所述预设模型参数至少包括所述待处理编码序列的编码维度值和预设代价函数;通过所述预设模型参数对所述原始处理模型进行调整,得到初始模型,包括:将所述原始处理模型中每个模型单元输出层神经元个数设置为所述编码维度值,得到初调整模型;将所述初调整模型的代价函数设置为所述预设代价函数,得到初始模型。在上述实现过程中,通过预设模型参数对所述原始处理模型进行调整,有利于提升模型的精确度,进而有利于提升抽象语法树进行向量化表示的准确度。本申请实施例第二方面提供了一种抽象语法树中节点的向量化表示装置,所述抽象语法树中节点的向量化表示装置包括:获取模块,用于获取待处理的抽象语法树;遍历模块,用于对所述抽象语法树进行广度优先遍历,得到第一序列,以及对所述抽象语法树进行深度优先遍历,得到第二序列;编码模块,用于根据所述第一序列和所述第二序列,生成待处理编码序列;模型处理模块,用于通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果。在上述实现过程中,获取模块先获取待处理的抽象语法树;然后遍历模块再对抽象语法树进行广度优先遍历,得到第一序列,并再次对该抽象语法树进行深度优先遍历,得到第二序列;进一步地,编码模块根据第一序列和第二序列生成待处理编码序列;最后模型处理模块再通过预先构建的向量化处理模型对待处理编码序列进行处理,得到抽象语法树中节点的向量化表示结果。可见,该方法能够全面覆盖抽象语法树中所有节点,进而准确地对抽象语法树中节点进行向量化表示。进一步地,所述获取模块包括:获取子模块,用于获取待处理的源代码数据;解析子模块,用于对所述源代码数据进行解析处理,得到所待处理的抽象语法树。在上述实现过程中,解析子模块可以通过对源代码数据进行解析得到抽象语法树,在进行抽象语法树的向量化表示时,只需要通过获取子模块获取源代码数据文件,就能够生成对应的向量化表示,方法简单,适用范围广。进一步地,所述编码模块包括:连接子模块,用于对所述第一序列和所述第二序列进行连接处理,得到连接序列;编码子模块,用于对所述连接序列进行编码处理,得到待处理编码序列。在上述实现过程中,连接子模块通过连接第一序列和第二序列,得到的连接序列能够覆盖抽象语法树中兄弟节点和父子节点之间的相关性,捕获抽象语法树中节点之间存在的一些结构规律,有利于准确地对抽象语法树中节点进行向量化表示。本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的抽象语法树中节点的向量化表示方法。本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的抽象语法树中节点的向量化表示方法。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例一提供的一种抽象语法树中节点的向量化表示方法的流程示意图;图2为本申请实施例二提供的一种抽象语法树中节点的向量化表示方法的流程示意图;图3为本申请实施例三提供的一种抽象语法树中节点的向量化表示装置的结构示意图;...

【技术保护点】
1.一种抽象语法树中节点的向量化表示方法,其特征在于,包括:/n获取待处理的抽象语法树;/n对所述抽象语法树进行广度优先遍历,得到第一序列,以及对所述抽象语法树进行深度优先遍历,得到第二序列;/n根据所述第一序列和所述第二序列,生成待处理编码序列;/n通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果。/n

【技术特征摘要】
1.一种抽象语法树中节点的向量化表示方法,其特征在于,包括:
获取待处理的抽象语法树;
对所述抽象语法树进行广度优先遍历,得到第一序列,以及对所述抽象语法树进行深度优先遍历,得到第二序列;
根据所述第一序列和所述第二序列,生成待处理编码序列;
通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果。


2.根据权利要求1所述的抽象语法树中节点的向量化表示方法,其特征在于,所述获取待处理的抽象语法树,包括:
获取待处理的源代码数据;
对所述源代码数据进行解析处理,得到所待处理的抽象语法树。


3.根据权利要求1所述的抽象语法树中节点的向量化表示方法,其特征在于,所述根据所述第一序列和所述第二序列,生成待处理编码序列,包括:
对所述第一序列和所述第二序列进行连接处理,得到连接序列;
对所述连接序列进行编码处理,得到待处理编码序列。


4.根据权利要求1所述的抽象语法树中节点的向量化表示方法,其特征在于,在所述通过预先构建的向量化处理模型对所述待处理编码序列进行处理,得到所述抽象语法树中节点的向量化表示结果之前,所述方法发还包括:
构建原始处理模型;
获取用于训练所述原始处理模型的训练数据和预设模型参数;
通过所述预设模型参数对所述原始处理模型进行调整,得到初始模型;
通过所述训练数据对所述初始模型进行训练,得到向量化处理模型。


5.根据权利要求4所述的抽象语法树中节点的向量化表示方法,其特征在于,所述预设模型参数至少包括所述待处理编码序列的编码维度值和预设代价函数;
通过所述预设模型参数对所述原始处理模型进行调整,得到初始模型,包括:
将所述原始...

【专利技术属性】
技术研发人员:董叶豪刘盈
申请(专利权)人:北京天融信网络安全技术有限公司北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1