CN113190219A - 一种基于递归神经网络模型的代码注释生成方法 - Google Patents
一种基于递归神经网络模型的代码注释生成方法 Download PDFInfo
- Publication number
- CN113190219A CN113190219A CN202110497846.0A CN202110497846A CN113190219A CN 113190219 A CN113190219 A CN 113190219A CN 202110497846 A CN202110497846 A CN 202110497846A CN 113190219 A CN113190219 A CN 113190219A
- Authority
- CN
- China
- Prior art keywords
- code
- java
- data set
- sequence
- annotation
- 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
Images
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
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于递归神经网络模型的代码注释生成方法,主要用于解决开发人员节省编写注释所需的时间。包括如下步骤:使用scrapy从开源社区上爬取评分高的代码项目,获得java数据集;对获得的java数据集进行一些筛选和处理,优化数据集;将处理过的数据集输入Seq2Seq+Attention&Copy模型中,进行信息的编码;将输出的信息编码输入Attention机制层和Copy机制层得到上下文向量;将结构信息的编码输出和上下文向量输入解码层,由源代码注释和序列概率分布生成输出序列;基于已训练好的Seq2Seq+Attention&Copy代码注释模型,对代码进行自动注释。本发明中,自动代码注释生成不仅可以帮助开发人员理解源代码,还可以节省编写注释所需的时间。
Description
技术领域
本发明属于机器学习技术领域,具体涉及一种基于递归神经网络模型的代码注释生成方法。
背景技术
随着软件项目规模的增加,开发人员越来越难以理解代码,代码注释对程序理解很有帮助。不幸的是,由于紧迫的开发进度或许多项目中的其他原因,代码注释可能经常会丢失,不匹配或过时,自动代码注释生成不仅可以帮助开发人员理解源代码,还可以节省编写注释所需的时间。
代码注释生成的过程类似于机器翻译过程,但是,与机器翻译相比,代码注释生成更具挑战性,因为存在两个主要挑战:(1)源代码是结构化的:用编程语言编写的源代码是结构化且明确的;(2)词汇:自然语言语料库的词汇量通常限制为30,000个单词,但是在Java代码语料库中,获得794,711个唯一标记,如果将常用的30,000个令牌用作词汇表,则大约95%的标识符将被视为未知令牌,即“UNK”,因此不适合目前的任务。
发明内容
本发明要解决的技术问题是提供一种基于递归神经网络模型的代码注释生成方法,不仅可以帮助开发人员理解源代码,还可以节省编写注释所需的时间。
为解决上述技术问题,本发明的实施例提供一种基于递归神经网络模型的代码注释生成方法,包括如下步骤:
S1、使用scrapy从开源社区上爬取评分高的代码项目,获得java数据集;
S2、对步骤S1获得的java数据集进行筛选和处理,对于一些简单的注释和方法进行剔除,优化java数据集;
S3、将步骤S2处理过的java数据集输入Seq2Seq+Attention&Copy模型中,进行信息编码;
S4、将步骤S3输出的信息编码输入Attention机制层和Copy机制层得到上下文向量;
S5、将信息编码和上下文向量输入解码层,生成输出代码注释。
其中,步骤S1的具体步骤为:
S1.1、根据GitHub上的编程语言流行指标,选择排名靠前的java语言作为代码注释的目标;
S1.2、从GitHub上爬取评分较高的java项目,获得java数据集。选取高评分的java项目可以避免一些错误和简单的java项目,提高数据集的质量,可以保证训练模型时的数据的准确性。
其中,步骤S2的具体步骤为:
S2.1、对获得的java数据集进行筛选和处理:在每个存储库中选择具有相应Javadoc的Java方法,并将Javadoc中的第一句话用作Java方法的目标注释;
S2.2、优化java数据集:省略Java数据集中基本测试方法的注释和方法,;手动检查处理后的样本,并省略覆盖方法以减少重复,分别得到方法序列和注释序列;
其中,步骤S3的具体步骤为:
S3.1、在对数据集进行预处理之后,得到的方法序列生成抽象语法树AST:第一步进行词法分析,读取代码从Java方法中提取tokens,标记化方法体,使用camel case分类每个token并且删除重复的token,最后将代码分割成一个tokens列表;第二步进行语法分析,将词法分析所得到的tokens列表转化成树形的表达形式;
S3.2、使用一种平衡二叉搜索树AVL来遍历抽象语法树AST,具体采用前序遍历的方法对抽象语法树(AST)进行遍历。查找token节点类型中代码词典,生成代码序列;
对于每一个结点调用insert()函数,在执行完insert()操作后,AVL的性质不满足,再调用maintain()函数来修复AVL;
S3.3、调用serialize()函数对AST进行序列化操作,将得到的AST序列输入到Seq2seq模型之中;
S3.4、Seq2seq模型的主流是编码器-解码器架构,并且融入Attention机制和Copy机制,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,对于给定的输入x=(x1,x2,…,xt),在t时刻的状态信息xt和上一状态隐含状态st-1经过长短记忆神经网络LSTM模型,生成当前隐含状态序列st和状态信息xt的编码输出ht。
进一步,步骤S3.4的具体步骤为:
S3.4.1、假设eij为当前隐藏状态序列si-1和上一状态信息的编码输出hj的匹配程度的记号,计算公式如下:
eij=a(si-1,hj) 式(Ⅰ),
其中,si-1为第i-1位置的隐藏状态序列,hj为第j位置状态信息的编码输出;
S3.4.2、定义α为归一化概率权重,表示输入的第j个信息和当前输出的关系概率:
其中,eij为si-1和hj之间匹配程度的记号;
S3.4.3、权重α和编码输出hj之间的匹配程度得到上下文向量c,c的计算公式如下:
其中,αij为归一化概率权重,hj为第j时刻的编码输出。
S3.4.4、为了解决得到的上下文向量c中出现的未知词汇(OOV),融入Copy机制。采用Generate-Mode&Copy-Mode两个模式,对未知词汇(OOV)采用直接Copy-Mode的方式从源代码词汇中直接复制词汇,来缓解未知词汇的问题,提高上下文向量c中的有效词汇,对于已有的词汇采用Generate-Mode模式直接从词汇中生成。最后,将Generate-Mode&Copy-Mode输出的概率进行加和,作为最终词的概率分布;
其中,步骤S5中将信息编码和上下文向量输入解码层,由源代码注释和序列概率分布生成输出序列,概率分布计算公式如下:
p(yt|y1,y2,…,yt-1,c)=g(yt-1,hi,c) 式(Ⅳ),
其中,yt为t时刻预测的结果,c为上下文向量,hi为第i个时刻的编码输出,g()为yi时刻的概率。
本发明的上述技术方案的有益效果如下:本发明提出了一种全新的代码注释方法,以同时分析抽象语法树(AST)和源代码,分别从AST和源代码中学习语法和词汇信息,AST转换为序列,然后再输入到模型中;新的基于结构的遍历(AVL)方法来遍历AST,为了解决词汇挑战,,分析了标识符的组成并发现标识符通常由多个单词组成,例如toInt→{to,int},用于表示变量或方法的功能。本发明中,自动代码注释生成不仅可以帮助开发人员理解源代码,还可以节省编写注释所需的时间。
附图说明
图1为本发明的流程图;
图2为本发明中一个具体方法的源代码图;
图3为本发明中AST抽象语法树提取方法实例示意图;
图4为本发明中AVL前序遍历算法图;
图5为本发明中Seq2seq模型示例图;
图6为本发明中模型效果图;
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供了一种基于递归神经网络模型的代码注释生成方法(如图1所示),主要用于解决开发人员节省编写注释所需的时间。
一、Java数据集获取
java代码语料库的获取,使用scrapy从开源社区上爬取评分高的代码项目,获得java代码语料库,具体步骤如下:
S1.1、根据GitHub上的编程语言流行指标,选择排名靠前的java语言作为代码注释目标;
S1.2、从GitHub上爬取评分较高的java项目,获得java数据集,选取高评分的java项目可以避免一些错误和简单的java项目,提高数据集的质量,可以保证训练模型时的数据的准确性。
二、java数据集进行筛选和处理
对获得的java数据集进行筛选和处理,对于一些简单的注释和方法进行剔除,优化java数据集;具体步骤如下:
S2.1、对获得的java数据集进行筛选和处理:在每个存储库中选择具有相应Javadoc的Java方法,并将Javadoc中的第一句话用作Java方法的目标注释,因为注释中的第一句话通常表明该方法的含义。
S2.2、优化java数据集:省略Java数据集中基本测试方法的注释和方法,;手动检查处理后的样本,并省略覆盖方法以减少重复。然后手动检查处理后的样本,并省略覆盖方法以减少重复;在对数据集进行预处理之后,得到487,168个注释向量和代码向量组。
三、java数据集输入Seq2Seq+Attention&Copy模型
将处理过的java数据集输入Seq2Seq+Attention&Copy模型中,进行信息的编码;具体步骤如下:
S3.1、在对数据集进行预处理之后,得到的方法序列生成抽象语法树AST,如图2,3是其中一个方法的源代码和AST抽象语法树提取的实例:第一步进行词法分析,读取代码从Java方法中提取tokens,标记化方法体,使用camel case分类每个token并且删除重复的token,最后将代码分割成一个tokens列表;第二步进行语法分析,将词法分析所得到的tokens列表转化成树形的表达形式;
S3.2、使用一种平衡二叉搜索树AVL来遍历抽象语法树AST,具体采用前序遍历的方法对抽象语法树(AST)进行遍历,如图4是前序遍历方法的具体代码。查找token节点类型中代码词典,生成代码序列;
对于每一个结点调用insert()函数,在执行完insert()操作后,AVL的性质不满足,再调用maintain()函数来修复AVL;
S3.3、调用serialize()函数对AST进行序列化操作,将得到的AST序列输入到Seq2seq模型之中;
S3.4、Seq2seq模型的主流是编码器-解码器架构(如图5是Seq2seq模型实现自动预测的一个实例),并且融入Attention机制和Copy机制,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,对于给定的输入x=(x1,x2,…,xt),在t时刻的状态信息xt和上一状态隐含状态st-1经过长短记忆神经网络LSTM模型,生成当前隐含状态序列st和状态信息xt的编码输出ht。
四、输入Attention&Copy层
输入Attention机制层,将隐含状态序列st和状态信息xt的编码输出ht输入Attention机制层;具体步骤为:
S3.4.1、假设eij为当前隐藏状态序列si-1和上一状态信息的编码输出hj的匹配程度的记号,计算公式如下:
eij=a(si-1,hj) 式(Ⅰ),
其中,si-1为第i-1位置的隐藏状态序列,hj为第j位置状态信息的编码输出;
S3.4.2、定义α为归一化概率权重,表示输入的第j个信息和当前输出的关系概率:
其中,eij为si-1和hj之间匹配程度的记号;
S3.4.3、权重α和编码输出hj之间的匹配程度得到上下文向量c,c的计算公式如下:
其中,αij为归一化概率权重,hj为第j时刻的编码输出。
S3.4.4、为了解决得到的上下文向量c中出现的未知词汇(OOV),融入Copy机制。采用Generate-Mode&Copy-Mode两个模式,对未知词汇(OOV)采用直接Copy-Mode的方式从源代码词汇中直接复制词汇,来缓解未知词汇的问题,提高上下文向量c中的有效词汇,对于已有的词汇采用Generate-Mode模式直接从词汇中生成。最后,将Generate-Mode&Copy-Mode输出的概率进行加和,作为最终词的概率分布。
五、生成代码注释
将信息编码和上下文向量输入解码层,生成输出代码注释,由源代码注释和序列概率分布生成输出序列,概率分布计算公式如下:
p(yt|y1,y2,...,yt-1,c)=g(yt-1,hi,c) 式(Ⅳ),
其中,yt为t时刻预测的结果,c为上下文向量,hi为第i个时刻的编码输出,g()为yi时刻的概率。
六、Seq2Seq+Attention&Copy模型训练效果
在代码语料库中我们共获得487,168个方法与注释向量组,抽象语法树的序列维度限制在300维度,最优梯度下降算法的梯度为90,所得到的结果能处理大量的UNK未知词汇,代码注释的准确性也与传统方法比较起来得到提升。如图6根据本发明的方法对代码进行注释,图中注释能够准确的描述代码功能。
本发明中的基于递归神经网络模型的代码注释生成方法具有较高代码注释的准确率,能有效节约软件开发人员和维护人员注释代码的时间。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于递归神经网络模型的代码注释生成方法,其特征在于,包括如下步骤:
S1、使用scrapy从开源社区上爬取评分高的代码项目,获得java数据集;
S2、对步骤S1获得的java数据集进行筛选和处理,剔除简单的注释和方法,优化java数据集;
S3、将步骤S2处理过的java数据集输入Seq2seq模型中,进行信息编码;
S4、将步骤S3输出的信息编码输入Attention机制层和Copy机制层得到上下文向量;
S5、将信息编码和上下文向量输入解码层,生成代码注释。
2.根据权利要求1所述的基于递归神经网络模型的代码注释生成方法,其特征在于,步骤S1的具体步骤为:
S1.1、根据GitHub上的编程语言流行指标,选择排名靠前的java语言作为代码注释的目标;
S1.2、从GitHub上爬取评分较高的java项目,获得java数据集。
3.根据权利要求1所述的基于递归神经网络模型的代码注释生成方法,其特征在于,步骤S2的具体步骤为:
S2.1、对获得的java数据集进行筛选和处理:在每个存储库中选择具有相应Javadoc的Java方法,并将Javadoc中的第一句话用作Java方法的目标注释,并且采用Serializable接口技术,对面目标注释进行向量化处理,使得注释可以很好的保存上下文的信息,获得目标注释序列;
S2.2、优化java数据集:省略Java数据集中基本测试方法的注释和方法,手动检查处理后的样本,并省略覆盖方法以减少重复。
4.根据权利要求1所述的基于递归神经网络模型的代码注释生成方法,其特征在于,步骤S3的具体步骤为:
S3.1、在对数据集进行预处理之后,得到的方法序列生成抽象语法树AST:第一步进行词法分析,读取代码从Java方法中提取tokens,标记化方法体,使用camel case分类每个token并且删除重复的token,最后将代码分割成一个tokens列表;第二步进行语法分析,将词法分析所得到的tokens列表转化成树形的表达形式;
S3.2、使用一种平衡二叉搜索树AVL来遍历抽象语法树AST,查找token节点类型中代码词典,生成代码序列;
对于每一个结点调用insert()函数,在执行完insert()操作后,AVL的性质不满足,再调用maintain()函数来修复AVL;
S3.3、调用serialize()函数对AST进行序列化操作,将得到的AST序列输入到Seq2seq模型之中;
S3.4、Seq2seq模型的主流是编码器-解码器架构,并且融入Attention机制和Copy机制,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,对于给定的输入x=(x1,x2,…,xt),在t时刻的状态信息xt和上一状态隐含状态st-1经过长短记忆神经网络LSTM模型,生成当前隐含状态序列st和状态信息xt的编码输出ht。
5.根据权利要求4所述的基于递归神经网络模型的代码注释生成方法,其特征在于,步骤S3.4的具体步骤为:
S3.4.1、假设eij为当前隐藏状态序列si-1和上一状态信息的编码输出hj的匹配程度的记号,计算公式如下:
eij=a(si-1,hj) 式(Ⅰ),
其中,si-1为第i-1位置的隐藏状态序列,hj为第j位置状态信息的编码输出;
S3.4.2、定义α为归一化概率权重,表示输入的第j个信息和当前输出的关系概率:
其中,eij为si-1和hj之间匹配程度的记号;
S3.4.3、权重α和编码输出hj之间的匹配程度得到上下文向量c,c的计算公式如下:
其中,αij为归一化概率权重,hj为第j时刻的编码输出;
S3.4.4、为了解决得到的上下文向量c中出现的未知词汇,融入Copy机制,采用Generate-Mode&Copy-Mode两个模式,对未知词汇采用直接Copy-Mode的方式从源代码词汇中直接复制词汇,来缓解未知词汇的问题,提高上下文向量c中的有效词汇,对于已有的词汇采用Generate-Mode模式直接从词汇中生成;最后,将Generate-Mode&Copy-Mode输出的概率进行加和,作为最终词的概率分布。
6.根据权利要求1所述的基于递归神经网络模型的代码注释生成方法,其特征在于,步骤S5中将信息编码和上下文向量输入解码层,由源代码注释和序列概率分布生成输出序列,概率分布计算公式如下:
p(yt|y1,y2,…,yt-1,c)=g(yt-1,hi,c) 式(Ⅳ),
其中,yt为t时刻预测的结果,c为上下文向量,hi为第i个时刻的编码输出,g()为yi时刻的概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110497846.0A CN113190219A (zh) | 2021-05-08 | 2021-05-08 | 一种基于递归神经网络模型的代码注释生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110497846.0A CN113190219A (zh) | 2021-05-08 | 2021-05-08 | 一种基于递归神经网络模型的代码注释生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113190219A true CN113190219A (zh) | 2021-07-30 |
Family
ID=76984203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110497846.0A Pending CN113190219A (zh) | 2021-05-08 | 2021-05-08 | 一种基于递归神经网络模型的代码注释生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190219A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543437A (zh) * | 2022-10-14 | 2022-12-30 | 广东工业大学 | 一种代码注释生成方法和系统 |
CN116400901A (zh) * | 2023-04-12 | 2023-07-07 | 上海计算机软件技术开发中心 | 一种Python代码自动生成方法及系统 |
CN116841609A (zh) * | 2023-08-28 | 2023-10-03 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
CN117170673A (zh) * | 2023-08-03 | 2023-12-05 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
CN117850870A (zh) * | 2024-03-08 | 2024-04-09 | 四川大学 | 一种代码注释生成方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018820A (zh) * | 2019-04-08 | 2019-07-16 | 浙江大学滨海产业技术研究院 | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 |
CN111090461A (zh) * | 2019-11-18 | 2020-05-01 | 中山大学 | 一种基于机器翻译模型的代码注释生成方法 |
WO2021021322A2 (en) * | 2019-08-01 | 2021-02-04 | Microsoft Technology Licensing, Llc | Multi-lingual line-of-code completion system |
-
2021
- 2021-05-08 CN CN202110497846.0A patent/CN113190219A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018820A (zh) * | 2019-04-08 | 2019-07-16 | 浙江大学滨海产业技术研究院 | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 |
WO2021021322A2 (en) * | 2019-08-01 | 2021-02-04 | Microsoft Technology Licensing, Llc | Multi-lingual line-of-code completion system |
CN111090461A (zh) * | 2019-11-18 | 2020-05-01 | 中山大学 | 一种基于机器翻译模型的代码注释生成方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543437A (zh) * | 2022-10-14 | 2022-12-30 | 广东工业大学 | 一种代码注释生成方法和系统 |
CN115543437B (zh) * | 2022-10-14 | 2023-08-15 | 广东工业大学 | 一种代码注释生成方法和系统 |
CN116400901A (zh) * | 2023-04-12 | 2023-07-07 | 上海计算机软件技术开发中心 | 一种Python代码自动生成方法及系统 |
CN116400901B (zh) * | 2023-04-12 | 2024-06-11 | 上海计算机软件技术开发中心 | 一种Python代码自动生成方法及系统 |
CN117170673A (zh) * | 2023-08-03 | 2023-12-05 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
CN117170673B (zh) * | 2023-08-03 | 2024-05-17 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
CN116841609A (zh) * | 2023-08-28 | 2023-10-03 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
CN116841609B (zh) * | 2023-08-28 | 2023-11-24 | 中国兵器装备集团兵器装备研究所 | 代码注释信息的补全方法、系统、电子设备和存储介质 |
CN117850870A (zh) * | 2024-03-08 | 2024-04-09 | 四川大学 | 一种代码注释生成方法、装置、电子设备及存储介质 |
CN117850870B (zh) * | 2024-03-08 | 2024-05-07 | 四川大学 | 一种代码注释生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Deep code comment generation with hybrid lexical and syntactical information | |
CN113190219A (zh) | 一种基于递归神经网络模型的代码注释生成方法 | |
CN117076653B (zh) | 基于思维链及可视化提升上下文学习知识库问答方法 | |
CN111090461B (zh) | 一种基于机器翻译模型的代码注释生成方法 | |
Wang et al. | Fret: Functional reinforced transformer with bert for code summarization | |
CN113076133B (zh) | 基于深度学习的Java程序内部注释的生成方法及系统 | |
CA3135717A1 (en) | System and method for transferable natural language interface | |
CN113127339B (zh) | 一种Github开源平台数据的获取方法及源代码缺陷修复系统 | |
CN113138920B (zh) | 基于知识图谱与语义角色标注的软件缺陷报告分派方法及装置 | |
CN113657123A (zh) | 基于目标模板指导和关系头编码的蒙语方面级情感分析方法 | |
CN116400901B (zh) | 一种Python代码自动生成方法及系统 | |
CN115066674A (zh) | 使用源代码元素的数值数组表示来评估源代码的方法 | |
CN112162775A (zh) | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 | |
CN116681061A (zh) | 一种基于多任务学习和注意力机制的英文语法纠正技术 | |
CN116627487A (zh) | 基于词级别检索的源代码注释自动化生成方法和系统 | |
CN115510230A (zh) | 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法 | |
Ghaemi et al. | Transformers in source code generation: A comprehensive survey | |
Hu et al. | Deep-autocoder: Learning to complete code precisely with induced code tokens | |
CN114385491A (zh) | 一种基于深度学习的js转译器缺陷检测方法 | |
CN117573084B (zh) | 一种基于逐层融合抽象语法树的代码补全方法 | |
CN117573096A (zh) | 一种融合抽象语法树结构信息的智能代码补全方法 | |
CN115826988A (zh) | 一种基于数据流分析和注意力机制的Java方法注释即时自动更新方法 | |
CN115495085A (zh) | 一种基于深度学习细粒度代码模板的生成方法及装置 | |
CN114398076A (zh) | 一种基于深度学习的面向对象程序方法命名异味检测方法 | |
CN114661616A (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 |