CN117573096B - 一种融合抽象语法树结构信息的智能代码补全方法 - Google Patents
一种融合抽象语法树结构信息的智能代码补全方法 Download PDFInfo
- Publication number
- CN117573096B CN117573096B CN202410065078.5A CN202410065078A CN117573096B CN 117573096 B CN117573096 B CN 117573096B CN 202410065078 A CN202410065078 A CN 202410065078A CN 117573096 B CN117573096 B CN 117573096B
- Authority
- CN
- China
- Prior art keywords
- node
- code
- abstract syntax
- subtree
- tree
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000013598 vector Substances 0.000 claims abstract description 40
- 230000000295 complement effect Effects 0.000 claims abstract description 28
- 238000013528 artificial neural network Methods 0.000 claims abstract description 16
- 238000012549 training Methods 0.000 claims abstract description 15
- 102100033814 Alanine aminotransferase 2 Human genes 0.000 claims abstract description 12
- 101710096000 Alanine aminotransferase 2 Proteins 0.000 claims abstract description 12
- 238000003062 neural network model Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 239000002131 composite material Substances 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 230000000873 masking effect Effects 0.000 claims description 2
- 238000009954 braiding Methods 0.000 claims 1
- 238000013135 deep learning Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000000306 recurrent 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/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- 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
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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
- G06N3/045—Combinations of networks
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及代码大数据技术领域,公开了一种融合抽象语法树结构信息的智能代码补全方法,将上文代码输入到完成训练的代码补全模型,预测得到当前位置的代码以及代码的类型,代码补全模型的训练过程包括:使用抽象语法树拆分算法,在基于通用数据集生成的抽象语法树的特定位置,对所述抽象语法树进行拆分,得到子树;将子树输入到基于树的深度神经网络模型中,捕获子树的结构信息,输出子树每个节点的隐藏状态向量;将子树每个节点的隐藏状态向量输入到GPT‑2深度神经网络中,实现对GPT‑2深度神经网络的训练。相比仅使用源代码的代码补全方法,本发明提高了代码补全代码预测的准确率和代码类型预测的准确率。
Description
技术领域
本发明涉及代码大数据技术领域,具体涉及一种融合抽象语法树结构信息的智能代码补全方法。
背景技术
智能代码补全(Intelligent Code Completion)是一种自动化编程辅助技术,它利用已有的代码片段来智能预测下一个可能的代码符号或语句。它是一项在计算机编程领域具有重要价值的工具,旨在提高程序员的工作效率和代码质量,减少错误和拼写问题。近年来,这类技术备受关注。出色的代码补全工具可以确保在推荐列表中迅速找到用户所需的代码,如果用户检查推荐列表花费较长时间,则会影响他们对代码补全建议的信任度以及编写代码的速度。因此,在推荐列表尽可能保持简洁的情况下,找到用户所需的补全建议至关重要。
目前,关于智能代码补全方法主要有以下方法:
1)基于传统算法的代码补全方法:
传统的代码补全方法主要通过人工定义启发式规则进行预测和补全,该方法通常利用代码的类型信息和语法规则,很少考虑上下文语义信息,并且推荐结果经常以字母顺序为依据进行推荐排序,导致在许多应用场景无法根据开发人员的需求高效推荐正确代码。传统方法的限制促使研究学者们利用机器学习进行代码预测。例如基于n-gram模型的分析和计数需要分析和计数大量的代码存储库的语料库,以获得n-gram的概率分布。
2)基于深度学习的代码补全方法:
基于深度学习的代码补全方法根据代码的不同特征,将深度学习应用于代码补全。常见的神经网络模型有循环神经网络,循环神经网络是一种能够处理序列数据的神经网络。它们利用隐藏状态向量来存储和更新历史信息,捕捉长程依赖关系。随着计算机算力的逐渐增加,大型预训练模型在代码补全任务中也取得了很好的效果,常用的预训练模型有Bert、GPT-2等,模型利用具有掩盖机制的多头自注意力机制,掩盖当前预测位置以后的信息,更加符合代码补全任务场景。
尽管近年来提出了许多工作,但目前大多数工作都是采用源代码作直接进行分析工作,即使利用抽象语法树,也会破坏结构信息形成序列化,对于代码预测的类型准确率也并不高。然而,抽象语法树已经在代码摘要任务中证明了其有效性,但鲜有能够充分利用抽象语法树结构信息的方法。因此,提出一种能够充分利用抽象语法树结构信息方法是十分重要的。
发明内容
为解决上述技术问题,本发明提供一种融合抽象语法树结构信息的智能代码补全方法,利用了GPT-2作为底层架构,并提出了一种算法,用于分割抽象语法树,同时保留其结构特征;使用Tree-LSTM深度神经网络模型来提取抽象语法树的结构信息。相比仅使用源代码的代码补全方法,本发明提高了代码补全代码预测的准确率和代码类型预测的准确率。
为解决上述技术问题,本发明采用如下技术方案:
一种融合抽象语法树结构信息的智能代码补全方法,将上文代码输入到完成训练的代码补全模型,预测得到当前位置的代码以及代码的类型,预测代码时仅对抽象语法树的叶子节点的代码信息进行预测,预测代码的类型时仅对抽象语法树的非叶子节点的类型信息进行预测;代码补全模型的训练过程,包括:
使用抽象语法树拆分算法,在基于通用数据集生成的抽象语法树的特定位置,对所述抽象语法树进行拆分,得到子树;所述抽象语法树的叶子节点存在代码信息,非叶子节点存在类型信息;
将子树输入到基于树的深度神经网络模型中,捕获子树的结构信息,输出子树每个节点的隐藏状态向量;
将子树每个节点的隐藏状态向量输入到GPT-2深度神经网络中,使用增加了掩盖机制的多头自注意力机制进行代码补全,实现对GPT-2深度神经网络的训练。
进一步地,所述将子树输入到基于树的深度神经网络模型中,捕获子树的结构信息,输出子树每个节点的隐藏状态向量,具体包括:
所述基于树的深度神经网络模型为Tree-LSTM模型;对于Tree-LSTM模型的节点,表示节点/>的子节点的集合,/>,其中/>表示节点/>的第/>个子节点,/>表示节点/>的子节点总数;
将子树输入到适配子树大小的Tree-LSTM模型,编码得到子树的每个节点的隐藏状态向量,包括:
初始化输入:子树的节点数与Tree-LSTM模型的节点数相同,且子树的节点与Tree-LSTM模型的节点一一对应;对于Tree-LSTM模型的每个节点,将节点i对应的子树的节点通过词嵌入方式,映射为输入特征/>,再将输入特征/>转化成节点/>的初始的隐藏状态向量/>和细胞状态/>;
计算子节点的汇总信息:对于每个节点,将节点/>的子节点/>的细胞状态/>进行非线性变换,得到子节点/>的隐藏状态向量/>:/>;将节点/>的子节点/>的隐藏状态向量/>汇总起来,得到节点/>的子节点汇总向量/>:/>;
更新节点的细胞状态:使用节点的子节点汇总向量/>和节点/>的细胞状态/>,得到新的细胞状态/>:
;
其中,表示sigmoid激活函数;/>表示逐元素乘法;/>和/>均为可学习的参数;
更新节点的隐藏状态向量:使用新的细胞状态和节点/>的输入特征/>来更新隐藏状态向量,得到节点/>新的隐藏状态向量/>:/>;/>和/>均为可学习的参数;
将节点新的隐藏状态向量/>作为与节点i对应的子树的节点的隐藏状态向量。
进一步地,所述Tree-LSTM模型具体采用Child-Sum Tree-LSTMs模型。
进一步地,计算子节点的汇总信息时,加入节点的子节点的位置编码信息,用于融入代码的位置信息;使用绝对位置编码或者正余弦位置编码得到所述的子节点的位置编码信息。
进一步地,所述特定位置为含有复合结构关键字的抽象语法树的节点。
进一步地,所述复合结构包括while结构、if结构。
与现有技术相比,本发明的有益技术效果是:
本发明采用独特的抽象语法树分割算法对数据集的抽象语法树进行分割处理,并且使用基于树的深度神经网络模型,捕获了代码更多的结构信息,从而提高了代码补全的准确度。本发明全面考虑了抽象语法树在智能代码补全方法中的融合,可以提高智能代码补全结果和类型预测的准确性。
附图说明
图1为本发明实施例中的代码补全方法的流程图;
图2为抽象语法树的示意图。
具体实施方式
下面结合附图对本发明的一种优选实施方式作详细的说明。
如图1所示,为了在有上文的情况下预测当前位置的可能代码,本发明中的一种融合抽象语法树结构信息的智能代码补全方法,包括以下步骤:
步骤一、抽象语法树的拆分:
根据给出的源代码,使用库函数或转换工具,将源代码转换成抽象语法树,经过抽象语法树切割算法,得到抽象语法树的子树。
具体地,库函数为数据集语言自带或编写的开源库方法函数,例如Python语言内置的ast模块,可将Python源代码直接转为抽象语法树。
具体地,转换工具为一些独立的转换工具,例如AST快捷分析工具codesensor,可以在不需要库支撑的情况下将源代码转换成抽象语法树。
抽象语法树切割算法能够将每个抽象语法树切割成可以重新组成原抽象语法树的子树,以保持树的结构信息。
具体地,抽象语法树切割算法首先初始化给定的树结构。然后遍历树中的每个节点,并为每个节点分配一个子树标识符。需要分割的节点根据特定条件进行标记。最后,算法保存需要分割的标记节点,并在这些标记节点上执行分割操作。分割完成后,更新父节点和子节点的标识符,以便进一步处理。
具体地,需要分割的标记节点通常为含有复合结构的关键字,如while结构的关键字(while)、if结构的关键字(if)等。
步骤二、子树的结构信息提取:
利用基于树的深度神经网络,将子树的每个节点转化为隐藏状态向量。
本发明采用的基于树的深度神经网络为基于树的长短记忆神经网络(Tree-LSTM)。
给定一个Tree-LSTM模型,对于节点,/>表示其子节点的集合,,其中/>表示节点/>的第/>个子节点。子树的节点数与Tree-LSTM模型的节点数相同,且子树的节点与Tree-LSTM模型的节点一一对应。
Tree-LSTM模型的前向传播过程包括初始化输入、计算子节点的汇总信息、更新节点的细胞状态、更新节点的隐藏状态向量。
初始化输入:对于每个节点,将输入特征/>转化成初始的隐藏状态向量/>和细胞状态/>。其中,将节点i对应的子树的节点通过词嵌入方式,例如,预训练的Word2Vec模型,映射为输入特征/>。
计算子节点的汇总信息:对于每个节点,将节点/>的子节点/>的细胞状态/>进行非线性变换,得到子节点/>的隐藏状态向量/>:/>;将节点/>的子节点/>的隐藏状态向量/>汇总起来,得到节点/>的子节点汇总向量/>,可以用以下公式表示:
。
更新节点的细胞状态:使用子节点汇总向量和节点/>的细胞状态/>,得到新的细胞状态/>来对细胞状态/>进行更新,这个更新过程由以下公式完成:
。
表示sigmoid激活函数;/>表示逐元素乘法;/>和/>是可学习的参数。
更新节点的隐藏状态向量:使用新的细胞状态和节点/>的输入特征/>,来更新隐藏状态向量/>,得到新的隐藏状态向量/>。这个更新过程由以下公式完成:
。
表示sigmoid激活函数;/>表示逐元素乘法;/>和/>是可学习的参数。
将节点新的隐藏状态向量/>作为与节点i对应的子树的节点的隐藏状态向量。
可选地,Tree-LSTM模型具体采用Child-Sum Tree-LSTMs模型。
可选地,计算子节点的汇总信息时,子节点的隐藏状态向量可加上子节点的位置编码后进行计算,位置编码的方式包括绝对位置编码、正余弦位置编码等。具体地,以绝对位置编码为例,子节点组成的序列中的每个位置分配一个唯一的整数值,通常从1开始,直到序列的长度为止。对每个位置,将其整数编码转换为一个固定长度的二进制编码,与隐藏状态向量相加,用于后续的计算。
步骤三、将得到的每个节点隐藏状态向量输入到GPT-2深度神经网络中,对GPT-2深度神经网络进行训练。完成对GPT-2深度神经网络的训练,即完成了对代码补全模型的训练。
如图2所示,代码解析成抽象语法树后,叶子节点包含代码信息,而叶子的父节点(即非叶子节点)包含类型信息,本发明会将叶子节点及非叶子节点进行屏蔽(如图2中的“7”节点和“Num”节点),让代码补全模型进行预测,以此来训练代码补全模型,最终让代码补全模型获得预测代码和该代码类型的能力。
GPT-2深度神经网络是以自注意力机制为核心,只使用了Transformer解码器部分,由多个相同的层组成,每个层都由多头自注意力机制和前馈神经网络组成。这些层堆叠在一起,形成了深层的模型。
步骤四,代码补全模型训练完成后,将上文代码输入至代码补全模型中,预测得到当前位置的代码以及代码的类型。
具体地,预测的代码的类型包括变量、数字、函数名字和属性等。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (5)
1.一种融合抽象语法树结构信息的智能代码补全方法,将上文代码输入到完成训练的代码补全模型,预测得到当前位置的代码以及代码的类型,预测代码时仅对抽象语法树的叶子节点的代码信息进行预测,预测代码的类型时仅对抽象语法树的非叶子节点的类型信息进行预测;代码补全模型的训练过程,包括:
使用抽象语法树拆分算法,在基于通用数据集生成的抽象语法树的特定位置,对所述抽象语法树进行拆分,得到子树;所述抽象语法树的叶子节点存在代码信息,非叶子节点存在类型信息;
将子树输入到基于树的深度神经网络模型中,捕获子树的结构信息,输出子树每个节点的隐藏状态向量;具体包括:
所述基于树的深度神经网络模型为Tree-LSTM模型;对于Tree-LSTM模型的节点,/>表示节点/>的子节点的集合,/>,其中/>表示节点/>的第/>个子节点,/>表示节点/>的子节点总数;
将子树输入到适配子树大小的Tree-LSTM模型,编码得到子树的每个节点的隐藏状态向量,包括:
初始化输入:子树的节点数与Tree-LSTM模型的节点数相同,且子树的节点与Tree-LSTM模型的节点一一对应;对于Tree-LSTM模型的每个节点,将节点i对应的子树的节点通过词嵌入方式,映射为输入特征/>,再将输入特征/>转化成节点/>的初始的隐藏状态向量/>和细胞状态/>;
计算子节点的汇总信息:对于每个节点,将节点/>的子节点/>的细胞状态/>进行非线性变换,得到子节点/>的隐藏状态向量/>:/>;将节点/>的子节点/>的隐藏状态向量/>汇总起来,得到节点/>的子节点汇总向量/>:/>;
更新节点的细胞状态:使用节点的子节点汇总向量/>和节点/>的细胞状态/>,得到新的细胞状态/>:
;
其中,表示sigmoid激活函数;/>表示逐元素乘法;/>和/>均为可学习的参数;
更新节点的隐藏状态向量:使用新的细胞状态和节点/>的输入特征/>来更新隐藏状态向量,得到节点/>新的隐藏状态向量/>:/>;/>和/>均为可学习的参数;
将节点新的隐藏状态向量/>作为与节点i对应的子树的节点的隐藏状态向量;
将子树每个节点的隐藏状态向量输入到GPT-2深度神经网络中,使用增加了掩盖机制的多头自注意力机制进行代码补全,实现对GPT-2深度神经网络的训练。
2.根据权利要求1所述的融合抽象语法树结构信息的智能代码补全方法,其特征在于,所述Tree-LSTM模型具体采用Child-Sum Tree-LSTMs模型。
3.根据权利要求1所述的融合抽象语法树结构信息的智能代码补全方法,其特征在于,计算子节点的汇总信息时,加入节点的子节点的位置编码信息,用于融入代码的位置信息;使用绝对位置编码或者正余弦位置编码得到所述的子节点的位置编码信息。
4.根据权利要求1所述的融合抽象语法树结构信息的智能代码补全方法,其特征在于:所述特定位置为含有复合结构关键字的抽象语法树的节点。
5.根据权利要求4所述的融合抽象语法树结构信息的智能代码补全方法,其特征在于:所述复合结构包括while结构、if结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065078.5A CN117573096B (zh) | 2024-01-17 | 2024-01-17 | 一种融合抽象语法树结构信息的智能代码补全方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065078.5A CN117573096B (zh) | 2024-01-17 | 2024-01-17 | 一种融合抽象语法树结构信息的智能代码补全方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573096A CN117573096A (zh) | 2024-02-20 |
CN117573096B true CN117573096B (zh) | 2024-04-09 |
Family
ID=89895964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410065078.5A Active CN117573096B (zh) | 2024-01-17 | 2024-01-17 | 一种融合抽象语法树结构信息的智能代码补全方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573096B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101235A (zh) * | 2018-06-05 | 2018-12-28 | 北京航空航天大学 | 一种软件程序的智能解析方法 |
CN109614103A (zh) * | 2018-10-19 | 2019-04-12 | 北京硅心科技有限公司 | 一种基于字符的代码补全方法及系统 |
WO2022126909A1 (zh) * | 2020-12-18 | 2022-06-23 | 平安科技(深圳)有限公司 | 一种代码补全方法、装置以及相关设备 |
CN116151132A (zh) * | 2023-04-19 | 2023-05-23 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种编程学习场景的智能代码补全方法、系统及储存介质 |
CN116225525A (zh) * | 2023-03-13 | 2023-06-06 | 南京航空航天大学 | 一种结合用户反馈和深度学习的代码补全方法 |
CN116643759A (zh) * | 2023-06-12 | 2023-08-25 | 浙江大学 | 一种基于程序依赖图预测的代码预训练模型训练方法 |
CN116700780A (zh) * | 2023-06-29 | 2023-09-05 | 南通大学 | 一种基于抽象语法树代码表征的代码补全方法 |
CN117195220A (zh) * | 2023-07-21 | 2023-12-08 | 河海大学 | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11455152B2 (en) * | 2020-09-01 | 2022-09-27 | X Development Llc | Matching graphs generated from source code |
US11782703B2 (en) * | 2021-05-17 | 2023-10-10 | Nec Corporation | Computer code refactoring |
-
2024
- 2024-01-17 CN CN202410065078.5A patent/CN117573096B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101235A (zh) * | 2018-06-05 | 2018-12-28 | 北京航空航天大学 | 一种软件程序的智能解析方法 |
CN109614103A (zh) * | 2018-10-19 | 2019-04-12 | 北京硅心科技有限公司 | 一种基于字符的代码补全方法及系统 |
WO2022126909A1 (zh) * | 2020-12-18 | 2022-06-23 | 平安科技(深圳)有限公司 | 一种代码补全方法、装置以及相关设备 |
CN116225525A (zh) * | 2023-03-13 | 2023-06-06 | 南京航空航天大学 | 一种结合用户反馈和深度学习的代码补全方法 |
CN116151132A (zh) * | 2023-04-19 | 2023-05-23 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种编程学习场景的智能代码补全方法、系统及储存介质 |
CN116643759A (zh) * | 2023-06-12 | 2023-08-25 | 浙江大学 | 一种基于程序依赖图预测的代码预训练模型训练方法 |
CN116700780A (zh) * | 2023-06-29 | 2023-09-05 | 南通大学 | 一种基于抽象语法树代码表征的代码补全方法 |
CN117195220A (zh) * | 2023-07-21 | 2023-12-08 | 河海大学 | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
Ya Xiao,et al. Specializing Neural Networks for Cryptographic Code Completion Applications.《 IEEE Transactions on Software Engineering》.2023,第3524-3535页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117573096A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202010B (zh) | 基于深度神经网络构建法律文本语法树的方法和装置 | |
CN113642330B (zh) | 基于目录主题分类的轨道交通规范实体识别方法 | |
CN107330032B (zh) | 一种基于递归神经网络的隐式篇章关系分析方法 | |
CN111090461B (zh) | 一种基于机器翻译模型的代码注释生成方法 | |
US20220164626A1 (en) | Automated merge conflict resolution with transformers | |
CN113064586B (zh) | 一种基于抽象语法树增广图模型的代码补全方法 | |
CN116151132B (zh) | 一种编程学习场景的智能代码补全方法、系统及储存介质 | |
CN112306494A (zh) | 一种基于卷积和循环神经网络的代码分类及聚类方法 | |
CN115033896B (zh) | 以太坊智能合约漏洞检测方法、装置、系统与介质 | |
WO2022146546A1 (en) | Multi-lingual code generation with zero-shot inference | |
CN114218389A (zh) | 一种基于图神经网络的化工制备领域长文本分类方法 | |
CN113190219A (zh) | 一种基于递归神经网络模型的代码注释生成方法 | |
CN112148879B (zh) | 一种自动给代码打数据结构标签的计算机可读存储介质 | |
CN116661852B (zh) | 一种基于程序依赖图的代码搜索方法 | |
CN117033423A (zh) | 一种注入最优模式项和历史交互信息的sql生成方法 | |
CN115268994B (zh) | 一种基于tbcnn和多头自注意力机制的代码特征提取方法 | |
CN115408506B (zh) | 联合语义解析和语义成分匹配的nl2sql的方法 | |
CN117573096B (zh) | 一种融合抽象语法树结构信息的智能代码补全方法 | |
CN115203236B (zh) | 基于模板检索的文本到sql生成方法 | |
CN116361511A (zh) | 一种复合语义的视频检索方法、装置、设备及存储介质 | |
Anisha et al. | Text to sql query conversion using deep learning: A comparative analysis | |
CN114595341A (zh) | 一种基于知识图谱的复杂问题语义理解方法 | |
Li et al. | ACAGNN: Source Code Representation Based on Fine-Grained Multi-view Program Features | |
US11914635B2 (en) | Performing image search based on user input using neural networks | |
CN113239703B (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 |