CN109101235B - 一种软件程序的智能解析方法 - Google Patents
一种软件程序的智能解析方法 Download PDFInfo
- Publication number
- CN109101235B CN109101235B CN201810568286.1A CN201810568286A CN109101235B CN 109101235 B CN109101235 B CN 109101235B CN 201810568286 A CN201810568286 A CN 201810568286A CN 109101235 B CN109101235 B CN 109101235B
- Authority
- CN
- China
- Prior art keywords
- vector
- state
- ast
- nodes
- node
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 9
- 239000013598 vector Substances 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000013528 artificial neural network Methods 0.000 claims abstract description 13
- 238000011176 pooling Methods 0.000 claims abstract description 12
- 238000005070 sampling Methods 0.000 claims abstract description 5
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 17
- 150000001875 compounds Chemical class 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/42—Syntactic analysis
- G06F8/427—Parsing
-
- 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/44—Encoding
-
- 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/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种软件程序的智能解析方法,所述智能解析方法为基于AST的序列化神经网络,所述基于AST的序列化神经网络是一种层次化的向量表示方法,其实现步骤为,步骤1‑1:在最底层,将原始程序转化成AST之后进一步分割得到对应的代码块序列,所述代码块之间是有次序之分的,且与原始的语句顺序相吻合;步骤1‑2:每个代码块由一种递归式的编码器来将这种子树编码成向量e1,e2,...,et;步骤1‑3:将得到的向量序列经过双向循环层以提取代码块之间的依赖特征;步骤1‑4:所有的时间步的多维特征经过池化层采样得到最终的单个向量表示形式。
Description
技术领域
本发明涉及一种解析方法,尤其涉及一种软件程序的智能解析方法。
背景技术
程序理解(Program Comprehension)在许多软件工程的应用中起到至关重 要的作用。一方面能够帮助开发者提高开发效率和代码质量,另一方面也有助 于软件维护。典型的应用包括代码分类,代码克隆检测,缺陷预测以及代码摘 要生成等。其中,实现程序理解很重要同时也是较为困难的一部分是如何建立 有效的程序表示方法以尽可能地捕捉程序本身蕴含的语义,比如某程序的功能。
虽然我们可以以人工的方式去设计或提取程序的特征来实现诸多相关的应 用,这种方法的缺点在于需要耗费大量的劳动力且得出的特征往往局限于特定 的任务。因此现有技术往往直接采用传统的信息检索中的一些方法来提取程序 中的特征。比如,将程序看作词的集合或者序列来实现代码的克隆检测。此外, 主题模型如潜在语义分析(LatentSemantic Indexing,LSI)或隐含狄利克雷 分布(Latent Dirichlet Allocation,LDA)也被广泛应用于程序分析与处理。 然而这些应用的共同问题是把代码当做自然语言进而套用自然语言处理 (Natural Language Processing,NLP)中的方法。实际上,代码中包含丰富 的结构信息,而上述的方法并不能捕捉到这种信息。
最新的技术使用解析工具将程序代码转换成抽象语法树(Abstract SyntaxTree,AST)来结构化地表示程序。在此基础上,结合神经网路的方法来自动的 获取程序的向量表示,用于不同的任务和场景。比如,在得到某个程序的AST 之后,可以直接利用递归神经网络(Recursive Neural Network)对整个语法 树进行自底向上的递归式的编码,进而得到最终的语义向量。类似地,现有的 研究也结合了基于树的卷积神经网络(Convolutional Neural Network,CNN) 或者长短时记忆网络(Long Short Term Memory,LSTM)来增强结构信息的表 示能力。但是这些方法仍然存在三个主要问题:
1.仅依赖于树结构的神经网络容易导致梯度消失的问题;
2.自底向上或使用滑动窗口遍历整个AST的方法容易丢失原始的程序 中所包含的代码块之间的依赖信息;
3.现有的基于树的方法大多将原始的AST转换成二叉树的形式,这破坏 了原始的结构信息,并且会导致树的深度大大增加而进一步带来捕捉依赖的困 难。
发明内容
针对现有技术存在的问题,本发明提出了一种软件程序的智能解析方法。 所述智能解析方法为基于AST的序列化神经网络。首先,对于获取到的AST, 将其分割成一系列的代码块也就是子树并保持原始的语句顺序,而不是对整个 树结构进行编码计算。每个代码块为池化层为根的子树。其次,在得到这种代 码块序列之后,利用循环神经网络(Recurrent Neural Network,RNN)来捕捉 这种上下文依赖关系。最后,对于子树的计算使用批量计算算法来避免破坏原 始的结构信息。经过端到端的训练,学习到的向量可以更好地解决不同的软件 分析任务。
附图说明
图1为本发明基于AST的序列化神经网络的整体架构图。
图2为本发明中节点迭代更新示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实 施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示为本发明基于AST的序列化神经网络的整体架构,本发明的神 经网络结构是一种层次化的向量表示方法。该方法的步骤如下:
步骤1:在最底层,将原始程序转化成AST之后进一步分割得到对应的 代码块序列。这些代码块之间是有次序之分的,且与原始的语句顺序相吻合;
步骤2:每个代码块由一种递归式的编码器来将这种子树编码成向量 e1,e2,...,et,t为正整数;
步骤3:上述得到的向量序列经过双向循环层以提取代码块之间的依赖 特征;
步骤4:所有的时间步的多维特征经过池化层采样得到最终的单个向量 表示形式,来表达该程序的语义信息。
在将程序转化成AST之后,我们首先以前序遍历的方式得到此树的标识符 序列,并利用现有的词嵌入技术(如Word2Vec)将每个标识符转化成向量的形 式,以便于上层的编码。接下来将原始的AST分割成代码块序列。该方法包括 两个部分:遍历器(Traverser)与构造器(Constructor)。
在该方法中,遍历器用于深度优先地遍历原始的AST,而构造器则遵循规 则构造代码块的子树。具体步骤为,输入某个程序的AST的根节点,当遍历器 访问到的某个元素为复合语句的头部如函数定义或者控制语句等,调用构造器 将此头部语句的不包含嵌套的复合语句元素的子树形式构造出来。如果当前访 问的元素是复合语句,则对于其中的所有的单个语句递归地调用遍历器或者构 造子树。最终,所有的构造出来的子树被存入到了一个全局的有序集合中,也 就是所说的代码块序列。
上述得到的每个代码块是一种多叉树的形式,树的每个节点是一个标识符。 对于给定的代码块t,n表示其中的非终结点,C表示其子节点的集合,则具体 的编码步骤为:
步骤1:根据公式vn=Wexn得到该节点的词向量,其中We是经过词向量训 练方法Word2vec得到的预训练的权重,xn是该节点的one-hot向量表示形式。
步骤2:对节点n的向量表示与其子节点的向量表示组合计算,
其中,Wn是权重矩阵,bn是偏置项,hi是子节点的向量表示,σ是激活函 数,如tanh函数或者恒等函数。
步骤3:经过递归计算,每个节点都有了其向量表示。对于代码块中的N 个节点,利用池化对其进行特征采样,以得到该代码块的向量表示et。其计算 方式为:
et=[max(hi1),...,max(hik)],i∈[1,N],这里k表示向量的k个元素,i为 N个节点的索引。
一般来说,由于每个代码块是多叉树的形式,其结构是多变的,因此难以 进行批量计算。为了提高计算效率,本发明设计了一种动态的批量计算方法。 该方法的具体实现如下所描述。在此方法中,批量计算L个代码块,并且以深 度优先的方式从每个代码块的根节点开始计算。首先,对于当前的所有节点, 利用矩阵相乘的方式根据步骤1批量计算其所有的词向量,然后检查每个节点 是否有子节点并且按照节点所属的索引进行迭代更新。更新的方式图2所示, 当前批处理的节点为灰色节点,在检查其子节点之后,将子节点分成新的多批 节点并记录其索引,以此进行迭代批量计算。这样递归地批量计算其子节点的 向量后,按照步骤2中的公式进行向量的隐藏状态更新。所有的以向量表示的 节点被置入一个全局的张量中。最后对该张量进行池化,得到每个代码块的最 终向量表示。
在循环层中,使用双向门控循环单元(Gated Recurrent Unit,GRU)来表征 代码块之间的依赖信息。假设一个序列中有T个代码块,其表达形式为 [e1,...,et],t∈[1,T]。在t时刻,其隐藏状态的向量计算方式为:
rt=σ(Wret+Urht-1+br)
zt=σ(Wzet+Uzht-1+bz)
其中,rt表示重置门,用于控制前一个状态对当前状态的影响;zt表示更新门, 用于将历史状态与当前状态结合;是候选状态,用于与历史状态以及当前更 新的状态进行线性组合计算,以决定最终的当前状态ht。这里所有的W和U 是权重矩阵,b是对应的偏置项。σ是sigmoid激活函数。在进行迭代计算之后,
前向的依赖信息便自动获取到。除此之外,使用了反向的GRU,其计算公式与 前向的GRU一致。不同点在于,计算顺序与之相反,也就是其起始位置为最 后一个代码块的向量,结束位置为第一个代码块的向量。并且将这两个方向计 算得到的隐藏状态连接到一起组成某时刻的状态。此过程用公式表述如下:
最终,再用最大池化或平均池化来对每一时刻的隐藏状态进行采样,得到 整个程序的向量表示r。
本方案中提出的软件程序向量表示方法可用于不同任务的训练与预测,如 代码分类任务以及代码克隆检测。
这里Θ表示模型中所有的待优化的权重参数,y表示真实的类别,i表示样 本的索引编号,j表示类别编号。
训练上述模型即优化其损失函数,使之最小化。我们利用现有的优化器如AdaMax。
同样地,对于代码克隆检测,p是在[0,1]范围内的实数。根据阈值便可以 判断结果,即若p大于δ,则认为是克隆,否则认为不是克隆。一般地,δ取值 为0.5。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限 制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员 应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中 部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本 质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种软件程序的智能解析方法,所述智能解析方法为基于AST的序列化神经网络,所述基于AST的序列化神经网络是一种层次化的向量表示方法,其实现步骤为,步骤1-1:在最底层,将原始程序转化成AST之后进一步分割得到对应的代码块序列,所述代码块之间是有次序之分的,且与原始的语句顺序相吻合;步骤1-2:每个代码块由一种递归式的编码器来将子树编码成向量,所述t是向量长度为正整数;步骤1-3:将得到的向量序列经过双向循环层以提取代码块之间的依赖特征;步骤1-4:所有的时间步的多维特征经过池化层采样得到最终的单个向量表示形式;
其中,表示重置门,用于控制前一个状态对当前状态的影响;表示更新门,用于将历史状态与当前状态结合;是候选状态,用于与历史状态以及当前更新的状态进行线性组合计算,以决定最终的当前状态,所述、、、、是权重矩阵,所述、、是偏置项,是sigmoid激活函数,是t-1时刻的状态,是最终的当前状态,为当前更新的状态;在进行迭代计算之后,前向的依赖信息便自动获取到,除此之外,使用了反向的GRU,并且将这两个方向计算得到的隐藏状态连接到一起组成t时刻的状态,所述用于与历史状态以及当前更新的状态进行线性组合计算,以决定t时刻状态的过程用公式表述如下:
最终,再用最大池化或平均池化来对每一时刻的隐藏状态进行采样,得到整个程序的向量表示r。
2.如权利要求1所述的方法,其特征在于,在将程序转化成AST之后,首先以前序遍历的方式得到树的标识符序列,并利用现有的词嵌入技术将每个标识符转化成向量的形式,然后将原始的AST分割成代码块序列;所述 AST分割成代码块序列的方法为,输入某个程序的AST的根节点,当遍历器访问到的某个元素为复合语句的头部,所述头部包括函数定义,控制语句;调用构造器将此头部语句的不包含嵌套的复合语句元素的子树形式构造出来;如果当前访问的元素是复合语句,则对于其中的所有的单个语句递归地调用遍历器或者构造子树;最终,所有的构造出来的子树被存入到了一个全局的有序集合中,即为所述的代码块序列。
3.如权利要求2所述的方法,其特征在于,所述代码块的编码方法为, 对于给定的代码块t,n表示其中的非终节点,C表示其子节点的集合,具体的编码步骤为:
步骤3-2:对节点n的向量表示与其子节点的向量表示组合计算,
4.如权利要求2所述的方法,其特征在于,包括一种对代码块的批量计算方法批量计算多个代码块,以深度优先的方式从每个代码块的根节点开始计算,首先,对于所有节点,利用矩阵相乘的方式根据步骤3-1批量计算所有节点的所有的词向量,然后检查每个节点是否有子节点并且按照节点所属的索引进行迭代更新,递归地批量计算其子节点的向量后,按照步骤3-2中的公式进行向量的隐藏状态更新,将所有的以向量表示的节点置入一个全局的张量中,最后对该张量进行池化,得到每个代码块的最终向量表示。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810568286.1A CN109101235B (zh) | 2018-06-05 | 2018-06-05 | 一种软件程序的智能解析方法 |
PCT/CN2019/072463 WO2019233112A1 (zh) | 2018-06-05 | 2019-01-21 | 一种软件源代码的向量化表征方法 |
US17/059,320 US11256487B2 (en) | 2018-06-05 | 2019-01-21 | Vectorized representation method of software source code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810568286.1A CN109101235B (zh) | 2018-06-05 | 2018-06-05 | 一种软件程序的智能解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101235A CN109101235A (zh) | 2018-12-28 |
CN109101235B true CN109101235B (zh) | 2021-03-19 |
Family
ID=64796678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810568286.1A Active CN109101235B (zh) | 2018-06-05 | 2018-06-05 | 一种软件程序的智能解析方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11256487B2 (zh) |
CN (1) | CN109101235B (zh) |
WO (1) | WO2019233112A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101235B (zh) | 2018-06-05 | 2021-03-19 | 北京航空航天大学 | 一种软件程序的智能解析方法 |
SG11202107620QA (en) * | 2019-01-17 | 2021-08-30 | Visa Int Service Ass | A deep learning model for learning program embeddings |
CN109977205B (zh) * | 2019-03-08 | 2021-06-22 | 中南大学 | 一种计算机自主学习源代码的方法 |
CN110737466B (zh) * | 2019-10-16 | 2021-04-02 | 南京航空航天大学 | 基于静态程序分析的源代码编码序列表示方法 |
CN110851176B (zh) * | 2019-10-22 | 2023-07-04 | 天津大学 | 一种自动构造并利用伪克隆语料的克隆代码检测方法 |
US11514171B2 (en) * | 2019-10-29 | 2022-11-29 | Dell Products L.P. | Code vulnerability detection and remediation |
CN111625276B (zh) * | 2020-05-09 | 2023-04-21 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
WO2021227059A1 (zh) * | 2020-05-15 | 2021-11-18 | 深圳市世强元件网络有限公司 | 一种基于多叉树的搜索词推荐方法及系统 |
US11301218B2 (en) * | 2020-07-29 | 2022-04-12 | Bank Of America Corporation | Graph-based vectorization for software code optimization references |
CN112162775A (zh) * | 2020-10-21 | 2021-01-01 | 南通大学 | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 |
CN112100387B (zh) * | 2020-11-13 | 2021-02-19 | 支付宝(杭州)信息技术有限公司 | 用于文本分类的神经网络系统的训练方法及装置 |
CN112433756B (zh) * | 2020-11-24 | 2021-09-07 | 北京京航计算通讯研究所 | 基于加权递归自编码器的快速代码克隆检测方法及装置 |
CN112698831B (zh) * | 2020-12-25 | 2022-08-09 | 昆明理工大学 | 一种代码自动生成质量评估方法 |
US11928009B2 (en) * | 2021-08-06 | 2024-03-12 | International Business Machines Corporation | Predicting a root cause of an alert using a recurrent neural network |
CN113656066B (zh) * | 2021-08-16 | 2022-08-05 | 南京航空航天大学 | 一种基于特征对齐的克隆代码检测方法 |
CN113553041B (zh) * | 2021-09-22 | 2021-12-10 | 武汉江民网安科技有限公司 | 二进制程序中函数代码形式化结构生成方法、设备及介质 |
KR20230147908A (ko) * | 2022-04-15 | 2023-10-24 | 삼성전자주식회사 | 오픈 소스 라이선스를 검증하는 전자 장치 및 방법 |
CN115268994B (zh) * | 2022-07-26 | 2023-06-09 | 中国海洋大学 | 一种基于tbcnn和多头自注意力机制的代码特征提取方法 |
CN115983719B (zh) * | 2023-03-16 | 2023-07-21 | 中国船舶集团有限公司第七一九研究所 | 一种软件综合质量评价模型的训练方法及系统 |
CN116661805B (zh) * | 2023-07-31 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 代码表示的生成方法和装置、存储介质及电子设备 |
CN117573096B (zh) * | 2024-01-17 | 2024-04-09 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种融合抽象语法树结构信息的智能代码补全方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220180A (zh) * | 2017-06-08 | 2017-09-29 | 电子科技大学 | 一种基于神经网络语言模型的代码分类方法 |
CN107516041A (zh) * | 2017-08-17 | 2017-12-26 | 北京安普诺信息技术有限公司 | 基于深度神经网络的WebShell检测方法及其系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007139840A2 (en) * | 2006-05-24 | 2007-12-06 | Syver, Llc | Method and tool for automatic verification of software protocols |
TWI390443B (zh) * | 2009-08-04 | 2013-03-21 | Univ Nat Taiwan Science Tech | 使用在可擴展性標示語言之串流路徑查詢機制系統與方法 |
US9146957B2 (en) * | 2012-12-20 | 2015-09-29 | Business Objects Software Ltd. | Method and system for generating optimal membership-check queries |
US8984485B2 (en) | 2013-05-01 | 2015-03-17 | International Business Machines Corporation | Analysis of source code changes |
EP3314541A1 (en) * | 2015-06-26 | 2018-05-02 | Sentiance NV | Deriving movement behaviour from sensor data |
US20170212829A1 (en) * | 2016-01-21 | 2017-07-27 | American Software Safety Reliability Company | Deep Learning Source Code Analyzer and Repairer |
WO2017134665A1 (en) * | 2016-02-03 | 2017-08-10 | Cocycles | System for organizing, functionality indexing and constructing of a source code search engine and method thereof |
US10922604B2 (en) * | 2016-09-09 | 2021-02-16 | Cylance Inc. | Training a machine learning model for analysis of instruction sequences |
WO2018184102A1 (en) * | 2017-04-03 | 2018-10-11 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN107169358B (zh) | 2017-05-24 | 2019-10-08 | 中国人民解放军信息工程大学 | 基于代码指纹的代码同源性检测方法及其装置 |
US10581888B1 (en) * | 2017-07-31 | 2020-03-03 | EMC IP Holding Company LLC | Classifying software scripts utilizing deep learning networks |
CN109101235B (zh) | 2018-06-05 | 2021-03-19 | 北京航空航天大学 | 一种软件程序的智能解析方法 |
-
2018
- 2018-06-05 CN CN201810568286.1A patent/CN109101235B/zh active Active
-
2019
- 2019-01-21 US US17/059,320 patent/US11256487B2/en active Active
- 2019-01-21 WO PCT/CN2019/072463 patent/WO2019233112A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220180A (zh) * | 2017-06-08 | 2017-09-29 | 电子科技大学 | 一种基于神经网络语言模型的代码分类方法 |
CN107516041A (zh) * | 2017-08-17 | 2017-12-26 | 北京安普诺信息技术有限公司 | 基于深度神经网络的WebShell检测方法及其系统 |
Non-Patent Citations (2)
Title |
---|
Language-Independent Information Flow Tracking Engine for Program Comprehension Tools;Mohammad Reza Azadmanesh等;《2017 IEEE 25th International Conference on Program Comprehension》;20171231;全文 * |
基于静态分析的高精度程序日志解析技术;范惊 等;《计算机工程》;20131031;第39卷(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20210232376A1 (en) | 2021-07-29 |
WO2019233112A1 (zh) | 2019-12-12 |
CN109101235A (zh) | 2018-12-28 |
US11256487B2 (en) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101235B (zh) | 一种软件程序的智能解析方法 | |
Yang et al. | Learn to explain efficiently via neural logic inductive learning | |
CN114398491A (zh) | 一种基于知识图谱的语义分割图像实体关系推理方法 | |
Zhou | A review of text classification based on deep learning | |
CN113342318B (zh) | 基于多视图代码特征的细粒度代码自动生成方法及系统 | |
CN109447261B (zh) | 一种基于多阶邻近相似度的网络表示学习的方法 | |
CN109840322A (zh) | 一种基于强化学习的完形填空型阅读理解分析模型及方法 | |
CN112000770B (zh) | 面向智能问答的基于语义特征图的句子对语义匹配方法 | |
CN107220180A (zh) | 一种基于神经网络语言模型的代码分类方法 | |
CN113761893B (zh) | 一种基于模式预训练的关系抽取方法 | |
CN106844327B (zh) | 文本编码方法及系统 | |
CN112306494A (zh) | 一种基于卷积和循环神经网络的代码分类及聚类方法 | |
CN106776729B (zh) | 一种大规模知识图谱路径查询预测器构造方法 | |
CN114218389A (zh) | 一种基于图神经网络的化工制备领域长文本分类方法 | |
CN116661805B (zh) | 代码表示的生成方法和装置、存储介质及电子设备 | |
CN112749191A (zh) | 一种应用于数据库的智能代价估计方法、系统及电子设备 | |
CN112860904A (zh) | 一种融入外部知识的生物医疗关系抽取方法 | |
CN114327483A (zh) | 图张量神经网络模型建立方法及源代码语义识别方法 | |
CN117349311A (zh) | 一种基于改进RetNet的数据库自然语言查询方法 | |
CN114510576A (zh) | 一种基于BERT和BiGRU融合注意力机制的实体关系抽取方法 | |
CN117171354A (zh) | 用于回答医疗知识图谱复杂查询的递归路径查询编码方法 | |
CN114997360B (zh) | 神经架构搜索算法的演化参数优化方法、系统及存储介质 | |
CN115618929A (zh) | Ast处理方法、神经网络模型训练方法、装置和存储介质 | |
CN112905599A (zh) | 基于端到端的分布式深度哈希检索方法 | |
CN111666772A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |