CN110399162A - 一种源代码注释自动生成方法 - Google Patents
一种源代码注释自动生成方法 Download PDFInfo
- Publication number
- CN110399162A CN110399162A CN201910613270.2A CN201910613270A CN110399162A CN 110399162 A CN110399162 A CN 110399162A CN 201910613270 A CN201910613270 A CN 201910613270A CN 110399162 A CN110399162 A CN 110399162A
- Authority
- CN
- China
- Prior art keywords
- code
- test
- annotation
- sequence
- input
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明提出一种源代码注释自动生成方法,包括离线阶段和测试阶段,在离线阶段,首先收集训练语料训练注意力机制的编码器‑解码器模型,然后利用训练语料的代码构造代码检索库,所述训练语料包含源代码片段以及其对应的注释;所述线测试阶段,对于输入的代码片段,首先在所述代码检索库搜索出语法级别和语义级别相似的两个已有代码片段,然后将相似的两个已有代码片段与输入的代码片段作为基于检索的神经注释生成模块的输入,生成所述输入代码片段对应的注释。
Description
技术领域
本发明涉及一种自动生成方法,尤其涉及一种源代码注释自动生成方法。
背景技术
源代码摘要(代码注释生成)目的在于对给定的代码生成简短的摘要信息,通常以注释的形式呈现。这种摘要对于理解与维护源代码是非常重要的。在缺乏文档的情况下,开发者往往花费很长时间阅读和理解程序代码。同时,在代码被修改时,代码的注释也必须随之更新,这就增加了维护的成本。因此,探索自动生成代码注释的技术能够有效帮助开发者进行软件开发活动。
早期的技术大多基于信息检索的方法。大多数研究通常从代码片段中抽取一些关键词作为对应代码的摘要。比如,采用潜在语义分析(Latent Semantic Indexing)和向量空间模型(Vector Space Model)来从源代码中选择一些好的术语作其摘要。同时,也有一些研究采用代码克隆检测(Code Clone Detection)的方法检索与给定代码最相似的现有代码,之后将其注释作为给定代码的摘要。
近年来的技术大多基于神经机器翻译(Neural Machine Translation)。最早的模型是编码器-解码器模型,该模型以词嵌入(Word Embedding)技术对源代码进行编码,并使用长短时记忆网络(Long Short Term Memory)与注意力机制(Attention Mechanism)生成句子级别的摘要。此外,也有研究引入源代码的其他信息,比如API序列或者抽象语法树(Abstract Syntax Tree),并且使用额外的编码器来获取其语义。此外,也有通过深度强化学习(Deep Reinforcement Learning)的方法来解决解码时存在的曝光偏差(ExposureBias)问题。
现有技术中存在以下问题:
1.由于现有的基于信息检索的方法大多抽取部分术语词汇,无法生成可阅读的摘要。此外,仅仅检索已有摘要的方法无法生成新的句子。
2.由于基于神经机器翻译的方法在训练时采用最大似然Maximum Loglikehood的策略,因此更倾向于生成出现频率较高的词语,而忽略在原始注释中出现次数低但同样重要的词语,如互联网基本服务“IIS”。
发明内容
基于现有技术存在的问题,本发明提出一种源代码注释自动生成方法,包括离线阶段和测试阶段,在离线阶段,首先收集训练语料训练注意力机制的编码器-解码器模型,然后利用训练语料的代码构造代码检索库,所述训练语料包含源代码片段以及其对应的注释;所述线测试阶段,对于输入的代码片段,首先在所述代码检索库搜索出语法级别和语义级别相似的两个已有代码片段,然后将相似的两个已有代码片段与输入的代码片段作为基于检索的神经注释生成模块的输入,生成所述输入代码片段对应的注释。
附图说明
图1为本发明的整体框架图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提出一种源代码注释自动生成方法,包括离线阶段和测试阶段,在离线阶段,首先收集训练语料训练注意力机制的编码器-解码器模型,然后利用训练语料的代码构造代码检索库,所述训练语料包含源代码片段以及其对应的注释;所述线测试阶段,对于输入的代码片段,首先在所述代码检索库搜索出语法级别和语义级别相似的两个已有代码片段,然后将相似的两个已有代码片段与输入的代码片段作为基于检索的神经注释生成模块的输入,生成所述输入代码片段对应的注释
在离线阶段,首先收集了大量训练语料,包含源代码片段以及其对应的注释。这些语料用于训练一个注意力机制的编码器-解码器模型。训练完成后,构造代码检索库。一方面,对代码用AST解析器将其解析成抽象语法树的形式,之后遍历该树得到对应的节点序列;另一方面,借助于训练好的编码器,将代码编码成语义向量。这两种表示形式连同代码一起形成多个映射对,存储到代码检索库中,用于之后的搜索。
在测试阶段,对于一个新的代码片段,首先基于Lucene以及向量之间的余弦相似度搜索出在语法级别和语义级别相似的两个已有代码片段,然后将它们与输入的代码片段作为基于检索的神经注释生成模块的输入,最后生成该代码片段对应的注释。
注意力机制的编码器-解码器模型用于编码并解码输入的代码片段,同时也用于检索在语义级别最相似的代码。该模型主要包含两个部分:编码器与解码器。
对于编码器,假定有一个代码片段c,由一个词语(关键字或标识符)序列w1,...,wn组成。本发明首先用一个词嵌入层来将这些词语表示成词向量的形式:
xi=We Twi,i∈[1,n].
这里n是该代码片段的长度,We是词嵌入矩阵。然后使用LSTM对该序列进行编码,得到一系列隐藏状态向量:h1,…,hn.该计算过程可简单表述成下式:
ht=LSTM(xt,ht-1).
为了更好地捕获代码的语义信息,使用了双向的LSTM。
在解码时,使用带注意力机制的LSTM作为解码器。当生成注释的第i个词的时候,首先需要利用注意力机制对上面得到的隐藏状态向量序列进行加权求和,也就是:
其中,aij代表hj的注意力权重,并且由以下公式产生:
eij=a(si-1,hj).
这里si-1表示解码器的上一个时间步的状态,a表示对齐模型,使用了多层感知层(Multi-Layer Perception)。接下来,第i个时间步的状态si便可以由下式更新:
si=LSTM(si-1,yi-1).
其中,yi-1表示上一个时间步生成的词对应的词向量。同时,为了更好地获取先前时间步得到的信息,把yi-1与vi-1连接成一个向量作为LSTM的输入。此时便可以得到第i个词语的概率分布,也就是:
p(yi|y1,…,yi-1,c)=g(yi-1,si,vi),
这里g是经过softmax函数激活的多层感知层。根据此概率分布,通过采用集束搜索算法(Beam Search Algorithm)来选择每一个时间步生成的词语。最后,通过最优化如下的损失函数,以训练该模型:
不同于普通文本,代码有着独特的语法结构,并且对于理解代码语义很重要。为了能捕获这部分信息,同时考虑到检索的时间效率,本发明首先利将代码解析成抽象语法树的形式,然后通过前序遍历得到一个语法序列。基于这些序列,对于一个测试代码,利用Lucene来从训练集中搜索出最相似的代码片段。
语义级代码搜索是利用先前训练好的编码器来完成的,其过程如下。给定一个代码片c,首先用双向LSTM将其编码,得到一个隐藏状态序列:h1,...,hn。然后对其进行池化操作,得到一个单独的向量rc,其维度为1×2k,也就是
rc=[max(hi 1),…,max(hi 2k)],i=1,…,n.
当有一个测试代码ctest时,对于训练集中的任一代码ci,它们的相似度由以下公式产生:
这里M表示训练集的大小。最后,相似度最大的代码被认为是检索出的语义最相似的代码。
对于需要生成注释的测试代码ctest,首先检索出两个在语法和语义方面与之相似的代码csyn和csem。然后利用训练好的编码器对这三个代码进行编码,得到三个不同的隐藏状态序列Htest,Hsyn以及Hsem。接下来,在解码的第t个时间步的时候分别对这三个向量序列利用注意力机制得到语境向量(Context Vector),之后得到对应的概率分布,分别简写成Ptest(yt|y<t),Psyn(yt|y<t)和Psem(yt|y<t)。接下来就是将这个三个概率分布融合成一个最终的概率分布,也就是
Pfinal(yi|y<t)=Ptest(yt|y<t)+
λ·Sim(ctest,csyn)Psyn(yt|y<t)+
λ·Sim(ctest,csem)Psem(yt|y<t)).
其中,Sim表示测试代码Ctest与搜索出的相似代码cret之间的相似度归一化函数,即:
这里d表示两者的文本编辑距离。|c|表示对应的代码长度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种源代码注释自动生成方法,其特征在于,包括离线阶段和测试阶段,在离线阶段,首先收集训练语料训练注意力机制的编码器-解码器模型,然后利用训练语料的代码构造代码检索库,所述训练语料包含源代码片段以及其对应的注释;所述线测试阶段,对于输入的代码片段,首先在所述代码检索库搜索出语法级别和语义级别相似的两个已有代码片段,然后将相似的两个已有代码片段与输入的代码片段作为基于检索的神经注释生成模块的输入,生成所述输入代码片段对应的注释。
2.如权利要求1所述的方法,其特征在于,所述构造代码检索库的方式为,对所述源代码片段,用AST解析器解析成抽象语法树的形式,然后遍历该语法树得到对应的节点序列;使用编码器将所述源代码片段编码成语义向量;所述节点序列和语义两项与代码形成多个映射对,存储到代码检索库中。
3.如权利要求1所述的方法,其特征在于,所述注意力机制的编码器-解码器模型包含编码器与解码器,所述编码器中,对于代码片段c,由词语序列w1,...,wn组成,首先用词嵌入层来将这些词语表示成词向量的形式:
所述n是该代码片段的长度,We是词嵌入矩阵;
然后使用LSTM对该词语序列进行编码,得到一系列隐藏状态向量:h1,...,hn,所述编码过程为:
ht=LSTM(xt,ht-1).,所述t∈(1,n]
所述解码器中,使用带注意力机制的LSTM作为解码器,当生成注释的第i个词时,首先利用注意力机制对得到的所述隐藏状态向量序列进行加权求和:
其中,aij代表hj的注意力权重,其产生方式为:
eij=a(si-1,hj).
所述si-1表示解码器的上一个时间步的状态,a为对齐模型,第i个时间步的状态si更新方式为:
si=LSTM(si-1,yi-1).
其中,yi-1为上一个时间步生成的词对应的词向量,yi-1与vi-1连接成向量作为LSTM的输入,第i个词语的概率分布为:
p(yi|y1,...,yi-1,c)=g(yi-1,si,vi),
所述g是经过softmax函数激活的多层感知层;最后,使用最优化损失函数训练该模型,所述损失函数为:
4.如权利要求3所述的方法,其特征在于,所述测试阶段中的语法级别代码检索方式为,先将所述输入的代码片段解析成抽象语法树的形式,然后通过前序遍历得到一个语法序列,基于所述语法序列从训练集中搜索出最相似的代码片段。
5.如权利要求2所述的方法,其特征在于,所述语义级代码搜索具体方式为,首先用双向LSTM将所述输入的代码片段编码,得到一个隐藏状态序列:h1,...,hn,然后进行池化操作,得到一个单独的向量rc,其维度为1×2k:
rc=[max(hi 1),...,max(hi 2k],i=1,...,n.
所述K为向量的维度,表示特征数,测试代码ctest对于训练集中的任一代码ci的相似度为:
所述n为正整数,M为训练集的大小,相似度最大的代码为检索出的语义最相似的代码。
6.如权利要求5所述的方法,其特征在于,基于检索的神经注释生成模块处理进行处理的方式为,对于需要生成注释的测试代码Ctest,首先检索出两个在语法和语义方面与之相似的代码csyn和csem,然后利用编码器对该三个代码进行编码,得到三个隐藏状态序列Htest,Hsyn以及Hsem;在解码的第t个时间步的时候分别对这三个向量序列利用注意力机制得到语境向量,得到其对应的概率分布Ptest(yt|y<t)、Psyn(yt|y<t)、Psem(yt|y<t);然后将所述三个概率分布进行融合:
Pfinal(yt|y<t)=Ptest(yt|y<t)+
λ·Sim(ctest,csyn)Psyn(yt|y<t)+
λ·Sim(ctest,csem)Psem(yt|y<t))).
其中,Sim表示测试代码ctest与搜索出的相似代码cret之间的相似度归一化函数:
所述d表示两者的文本编辑距离,|ctest|和|cret|表示对应的代码长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613270.2A CN110399162B (zh) | 2019-07-09 | 2019-07-09 | 一种源代码注释自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613270.2A CN110399162B (zh) | 2019-07-09 | 2019-07-09 | 一种源代码注释自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399162A true CN110399162A (zh) | 2019-11-01 |
CN110399162B CN110399162B (zh) | 2021-02-26 |
Family
ID=68322870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910613270.2A Active CN110399162B (zh) | 2019-07-09 | 2019-07-09 | 一种源代码注释自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399162B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090461A (zh) * | 2019-11-18 | 2020-05-01 | 中山大学 | 一种基于机器翻译模型的代码注释生成方法 |
CN111159223A (zh) * | 2019-12-31 | 2020-05-15 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
CN111191002A (zh) * | 2019-12-26 | 2020-05-22 | 武汉大学 | 一种基于分层嵌入的神经代码搜索方法及装置 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111324380A (zh) * | 2020-02-27 | 2020-06-23 | 复旦大学 | 一种高效的多版本跨项目软件代码克隆检测方法 |
CN111428451A (zh) * | 2020-06-09 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | 文本在线编辑方法、装置、电子设备及存储介质 |
CN111522581A (zh) * | 2020-04-22 | 2020-08-11 | 山东师范大学 | 一种增强型代码注释自动生成方法及系统 |
CN111625276A (zh) * | 2020-05-09 | 2020-09-04 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
CN111651198A (zh) * | 2020-04-20 | 2020-09-11 | 北京大学 | 代码摘要自动化生成方法及装置 |
CN112162775A (zh) * | 2020-10-21 | 2021-01-01 | 南通大学 | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 |
CN113065322A (zh) * | 2021-04-06 | 2021-07-02 | 中山大学 | 一种代码段注释生成方法、系统及可读存储介质 |
CN113176878A (zh) * | 2021-06-30 | 2021-07-27 | 深圳市维度数据科技股份有限公司 | 自动查询方法、装置和设备 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN113961237A (zh) * | 2021-10-20 | 2022-01-21 | 南通大学 | 一种基于双重信息检索的Bash代码注释生成方法 |
US11500619B1 (en) | 2021-05-24 | 2022-11-15 | International Business Machines Corporation | Indexing and accessing source code snippets contained in documents |
CN115408056A (zh) * | 2022-10-28 | 2022-11-29 | 北京航空航天大学 | 一种基于信息检索和神经网络的代码摘要自动生成方法 |
CN117170673A (zh) * | 2023-08-03 | 2023-12-05 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372689B2 (en) * | 2014-05-28 | 2016-06-21 | International Business Machines Corporation | Synchronizing comments in source code with text documents |
CN106843840A (zh) * | 2016-12-23 | 2017-06-13 | 中国科学院软件研究所 | 一种基于相似度分析的源代码版本演化注释复用方法 |
CN108345468A (zh) * | 2018-01-29 | 2018-07-31 | 华侨大学 | 基于树和序列相似度的编程语言代码查重方法 |
CN108491208A (zh) * | 2018-01-31 | 2018-09-04 | 中山大学 | 一种基于神经网络模型的代码注释分类方法 |
CN108519890A (zh) * | 2018-04-08 | 2018-09-11 | 武汉大学 | 一种基于自注意力机制的鲁棒性代码摘要生成方法 |
US10180836B1 (en) * | 2015-08-24 | 2019-01-15 | Amazon Technologies, Inc. | Generating source code review comments using code analysis tools |
CN109799990A (zh) * | 2017-11-16 | 2019-05-24 | 中标软件有限公司 | 源代码注释自动生成方法及系统 |
CN109960506A (zh) * | 2018-12-03 | 2019-07-02 | 复旦大学 | 一种基于结构感知的代码注释生成方法 |
-
2019
- 2019-07-09 CN CN201910613270.2A patent/CN110399162B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372689B2 (en) * | 2014-05-28 | 2016-06-21 | International Business Machines Corporation | Synchronizing comments in source code with text documents |
US10180836B1 (en) * | 2015-08-24 | 2019-01-15 | Amazon Technologies, Inc. | Generating source code review comments using code analysis tools |
CN106843840A (zh) * | 2016-12-23 | 2017-06-13 | 中国科学院软件研究所 | 一种基于相似度分析的源代码版本演化注释复用方法 |
CN109799990A (zh) * | 2017-11-16 | 2019-05-24 | 中标软件有限公司 | 源代码注释自动生成方法及系统 |
CN108345468A (zh) * | 2018-01-29 | 2018-07-31 | 华侨大学 | 基于树和序列相似度的编程语言代码查重方法 |
CN108491208A (zh) * | 2018-01-31 | 2018-09-04 | 中山大学 | 一种基于神经网络模型的代码注释分类方法 |
CN108519890A (zh) * | 2018-04-08 | 2018-09-11 | 武汉大学 | 一种基于自注意力机制的鲁棒性代码摘要生成方法 |
CN109960506A (zh) * | 2018-12-03 | 2019-07-02 | 复旦大学 | 一种基于结构感知的代码注释生成方法 |
Non-Patent Citations (2)
Title |
---|
MCMASTER UNIVERSITY, HAMILTON, ONTARIO: "Towards "mouldable code" via nested code graph transformation", 《ELSEVIER》 * |
RAVI SETHI: "Control flow aspects of semantics directed compiling", 《ACM》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090461B (zh) * | 2019-11-18 | 2023-04-28 | 中山大学 | 一种基于机器翻译模型的代码注释生成方法 |
CN111090461A (zh) * | 2019-11-18 | 2020-05-01 | 中山大学 | 一种基于机器翻译模型的代码注释生成方法 |
CN111191002A (zh) * | 2019-12-26 | 2020-05-22 | 武汉大学 | 一种基于分层嵌入的神经代码搜索方法及装置 |
CN111191002B (zh) * | 2019-12-26 | 2023-05-23 | 武汉大学 | 一种基于分层嵌入的神经代码搜索方法及装置 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111190824B (zh) * | 2019-12-28 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111159223B (zh) * | 2019-12-31 | 2021-09-03 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
CN111159223A (zh) * | 2019-12-31 | 2020-05-15 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
CN111324380A (zh) * | 2020-02-27 | 2020-06-23 | 复旦大学 | 一种高效的多版本跨项目软件代码克隆检测方法 |
CN111651198A (zh) * | 2020-04-20 | 2020-09-11 | 北京大学 | 代码摘要自动化生成方法及装置 |
CN111522581A (zh) * | 2020-04-22 | 2020-08-11 | 山东师范大学 | 一种增强型代码注释自动生成方法及系统 |
CN111625276B (zh) * | 2020-05-09 | 2023-04-21 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
CN111625276A (zh) * | 2020-05-09 | 2020-09-04 | 山东师范大学 | 基于语义与语法信息融合的代码摘要生成方法及系统 |
CN111428451B (zh) * | 2020-06-09 | 2020-09-08 | 平安国际智慧城市科技股份有限公司 | 文本在线编辑方法、装置、电子设备及存储介质 |
CN111428451A (zh) * | 2020-06-09 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | 文本在线编辑方法、装置、电子设备及存储介质 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN112162775A (zh) * | 2020-10-21 | 2021-01-01 | 南通大学 | 一种基于Transformer和混合代码表示的Java代码注释自动生成方法 |
CN113065322A (zh) * | 2021-04-06 | 2021-07-02 | 中山大学 | 一种代码段注释生成方法、系统及可读存储介质 |
US11500619B1 (en) | 2021-05-24 | 2022-11-15 | International Business Machines Corporation | Indexing and accessing source code snippets contained in documents |
CN113176878A (zh) * | 2021-06-30 | 2021-07-27 | 深圳市维度数据科技股份有限公司 | 自动查询方法、装置和设备 |
CN113961237A (zh) * | 2021-10-20 | 2022-01-21 | 南通大学 | 一种基于双重信息检索的Bash代码注释生成方法 |
CN115408056A (zh) * | 2022-10-28 | 2022-11-29 | 北京航空航天大学 | 一种基于信息检索和神经网络的代码摘要自动生成方法 |
CN117170673A (zh) * | 2023-08-03 | 2023-12-05 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
CN117170673B (zh) * | 2023-08-03 | 2024-05-17 | 浙江大学 | 面向二进制代码文本注释自动化生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110399162B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399162A (zh) | 一种源代码注释自动生成方法 | |
Gu et al. | Insertion-based decoding with automatically inferred generation order | |
Ye et al. | Bp-transformer: Modelling long-range context via binary partitioning | |
CN111538819B (zh) | 一种基于文档集多跳推理的问答系统的构建方法 | |
CN103189860B (zh) | 组合句法转换模型与词汇转换模型的机器翻译装置和机器翻译方法 | |
CN112507699B (zh) | 一种基于图卷积网络的远程监督关系抽取方法 | |
CN106537370A (zh) | 在存在来源和翻译错误的情况下对命名实体鲁棒标记的方法和系统 | |
CN109189862A (zh) | 一种面向科技情报分析的知识库构建方法 | |
CN112989004B (zh) | 面向知识图谱问答的查询图排序方法及系统 | |
CN110245238B (zh) | 基于规则推理和句法模式的图嵌入方法及系统 | |
CN113761893B (zh) | 一种基于模式预训练的关系抽取方法 | |
CN110502640A (zh) | 一种基于建构的概念词义发展脉络的提取方法 | |
CN117076653A (zh) | 基于思维链及可视化提升上下文学习知识库问答方法 | |
Huang et al. | Recall and learn: A memory-augmented solver for math word problems | |
CN109977220A (zh) | 一种基于关键句和关键字的反向生成摘要的方法 | |
CN116661852B (zh) | 一种基于程序依赖图的代码搜索方法 | |
Li et al. | Neural Chinese address parsing | |
Menezes et al. | Building a massive corpus for named entity recognition using free open data sources | |
CN117312499A (zh) | 一种基于语义的大数据分析系统及方法 | |
CN117648429B (zh) | 基于多模态自适应检索式增强大模型的问答方法及系统 | |
Su et al. | MICO: A multi-alternative contrastive learning framework for commonsense knowledge representation | |
Beltrachini et al. | Semantic parsing for conversational question answering over knowledge graphs | |
CN117093748A (zh) | 基于多层面多模态对齐的弱监督视频定位方法与系统 | |
CN117235261A (zh) | 一种多模态方面级情感分析方法、装置、设备及存储介质 | |
Manzoni et al. | Towards an evolutionary-based approach for natural language processing |
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 |