代码摘要旨在为源代码生成简要的自然语言描述。由于源代码高度结构化并遵循严格的编程语言语法,它的抽象语法树(AST)通常会利用以通知编码器对结构信息。但是,AST通常比源代码长得多。目前的方法忽略尺寸限制并简单地将整个线性化AST送入编码器。为了解决这个问题,我们提出了AST变压器,以有效地编码树结构的AST。实验表明,AST变压器通过大量余量优于最先进的余量,同时能够减少编码过程中的计算复杂度的90亿美元。
translated by 谷歌翻译
代码摘要可帮助开发人员理解程序并减少在软件维护过程中推断程序功能的时间。最近的努力诉诸深度学习技术,例如序列到序列模型,以生成准确的代码摘要,其中基于变压器的方法已实现了有希望的性能。但是,在此任务域中,有效地将代码结构信息集成到变压器中的情况不足。在本文中,我们提出了一种名为SG-Trans的新方法,将代码结构属性纳入变压器。具体而言,我们将局部符号信息(例如,代码令牌和语句)和全局句法结构(例如,数据流程图)注入变压器的自我发项模块中。为了进一步捕获代码的层次结构特征,局部信息和全局结构旨在分布在下层和变压器高层的注意力头中。广泛的评估表明,SG-trans的表现优于最先进的方法。与表现最佳的基线相比,SG-Trans在流星评分方面仍然可以提高1.4%和2.0%,这是一个广泛用于测量发电质量的度量,分别在两个基准数据集上。
translated by 谷歌翻译
变压器架构已成功用于学习源代码表示。图形表示像抽象语法树(AST)和源代码序列之间的融合使得使用电流接近计算地难以用于大输入序列长度。源代码可以有需要更大序列长度的远程依赖性,以有效地模拟模型。电流方法在序列长度方面具有计算和内存成本的二次生长。在实际情况下使用这些模型很难。在这项工作中,我们通过使用图形邻接矩阵作为稀疏自我关注机制的注意掩模以及使用图形扩散机制来模拟更长范围令牌依赖性的关注掩模来提出源代码片段的调节。我们的型号在Bleu,Meteor和Rouge-L指标中达到最先进的结果,用于代码摘要任务以及可变误用任务的最先进的准确性。与先前作品的二次生长相比,我们模型的内存使用和推理时间具有相对于输入序列长度的线性生长。
translated by 谷歌翻译
最近,人们对使用深度学习自动化软件工程任务的兴趣激增。这项工作解决了代码生成问题的问题,该问题是在其中以不同的语言或自然语言描述生成目标代码的目标代码。代码生成的大多数最先进的深度学习模型都使用主要是为自然语言设计的培训策略。但是,理解和生成代码需要对代码语法和语义的更严格理解。通过这种动机,我们开发了一个编码器变压器模型,其中训练编码器和解码器分别识别源和目标代码中的语法和数据流。我们不仅通过利用源代码的语法树和数据流程图来使编码器结构感知,而且我们还确保我们的解码器通过引入两个辅助任务来保留目标代码的语法和数据流:路径预测和数据流预测。据我们所知,这是第一项引入结构感知的变压器解码器,以通过对目标语法和数据流进行建模来增强生成代码的质量。所提出的结构编码器模型在CodexGlue基准测试中实现了代码翻译和文本对代码生成任务的最新性能。
translated by 谷歌翻译
与自然语言相反,源代码理解受到令牌之间的语法关系的影响,无论其标识符名称如何。源代码的图表表示诸如抽象语法树(AST)可以从源代码中捕获不明显的令牌之间的关系。我们提出了一种新颖的方法,GN变压器在融合序列和图形模型上学习端到端我们调用语法代码图(SCG)。 GN变压器使用自我关注机制在图形网络(GN)框架上展开。 SCG是源代码片段和AST表示之间的早期融合的结果。我们对SCG的结构进行了实验,对模型设计的消融研究,以及结论性能优势来自融合表示的超参数。所提出的方法在两个代码摘要数据集中实现最先进的性能,并跨越三个自动编码摘要度量(BLEU,Meteor,Rouge-L)。我们进一步评估了我们模型的人类感知质量和以前的工作与专家用户学习。我们的模型以人类的质量和准确性高出现有技术。
translated by 谷歌翻译
在源代码处理的领域中,基于变压器的表示模型表现出强大的功能,并在许多任务中都实现了最先进的(SOTA)性能。尽管变压器模型处理了顺序源代码,但证据表明,它们也可以捕获结构信息(\ eg,在语法树,数据流,控制流,\等)。我们提出了汇总的注意力评分,这是一种研究变压器学到的结构信息的方法。我们还提出了汇总的注意图,这是一种从预训练模型中提取程序图的新方法。我们从多个角度测量我们的方法。此外,根据我们的经验发现,我们使用自动提取的图形来替换可变滥用任务中那些巧妙的手动设计图。实验结果表明,我们自动提取的语义图非常有意义且有效,这为我们提供了一个新的观点,可以理解和使用模型中包含的信息。
translated by 谷歌翻译
当使用深度学习技术对程序语言进行建模时,广泛采用了带有树或图形结构的神经网络,以捕获程序抽象语法树(AST)中的丰富结构信息。但是,计划中广泛存在长期/全球依赖性,大多数这些神经体系结构无法捕获这些依赖性。在本文中,我们提出了Tree-Transformer,这是一种新型的递归树结构神经网络,旨在克服上述局限性。树转化器利用两个多头注意单元来建模兄弟姐妹和父子节点对之间的依赖关系。此外,我们提出了一个双向传播策略,以允许节点信息向两个方向传递:沿树木的自下而上和自上而下。通过结合自下而上和自上而下的传播,树转化器可以同时学习全局上下文和有意义的节点特征。广泛的实验结果表明,我们的树转换器在具有树级和节点级别的预测任务中,在与程序相关的任务中优于现有基于树或基于图的神经网络,这表明Tree-Transformer在学习两个树级时都表现良好和节点级表示。
translated by 谷歌翻译
计算机程序的源代码的有效和有效的编码对于计算机程序理解中的任务的顺序对深神经网络模型的成功至关重要,例如自动化代码摘要和文档。一项重大挑战是找到一个顺序表示,该表示可以在计算机程序中捕获结构/句法信息,并促进学习模型的培训。在本文中,我们建议使用计算机程序的PR \“UFER序列(AST)的计算机程序的PR \”UFER序列(AST)来设计一个保持AST中的结构信息的顺序表示方案。我们的代表可以发展深层 - 学习模型,其中训练示例中的词汇标记携带的信号可以根据其句法角色和重要性自动且选择性地利用。与其他最近建议的方法不同,我们的代表在AST的结构信息方面简洁无损。现实世界基准数据集的实证研究,使用我们设计用于代码摘要的序列序列学习模型,表明我们的PR \“基于UFER序列的表示确实具有高效和高效,优先于最近建议的我们用作基线模型的深度学习模型。
translated by 谷歌翻译
语义代码搜索是关于为给定的自然语言查询查找语义相关的代码片段。在最先进的方法中,代码和查询之间的语义相似度被量化为它们在共享矢量空间中的表示的距离。在本文中,为了改进向量空间,我们在AST的简化形式中引入树序列化方法,并为代码数据构建多模式表示。我们使用大规模和多语言:CodeSearchNet的单个语料库进行广泛的实验。我们的结果表明,我们的树序列化表示和多模阶学习模型都提高了代码搜索的性能。最后,我们定义了面向直观的量化指标,面向代码数据的语义和句法信息的完整性,以帮助了解实验结果。
translated by 谷歌翻译
(源)代码摘要旨在以自然语言的形式自动为给定代码段生成摘要/注释。此类摘要在帮助开发人员理解和维护源代码方面起着关键作用。现有的代码摘要技术可以分类为提取方法和抽象方法。提取方法使用检索技术从代码段中提取重要语句和关键字的子集,并生成一个摘要,该摘要保留了重要语句和关键字中的事实详细信息。但是,这样的子集可能会错过标识符或实体命名,因此,产生的摘要的自然性通常很差。抽象方法可以生成类似人写的摘要,从而利用神经机器翻译域的编码器模型。然而,生成的摘要通常会错过重要的事实细节。为了通过保留的事实细节生成类似人写的摘要,我们提出了一个新颖的提取和吸收框架。框架中的提取模块执行了提取代码摘要的任务,该任务列入了代码段,并预测包含关键事实细节的重要陈述。框架中的抽象模块执行了抽象代码摘要的任务,该任务是在整个代码段和并行的重要陈述中进行的,并生成了简洁而人工写的类似的自然语言摘要。我们通过在涉及六种编程语言的三个数据集上进行广泛的实验来评估称为EACS的有效性。实验结果表明,在所有三种广泛使用的指标(包括BLEU,流星和Rough-l)方面,EACS明显优于最先进的技术。
translated by 谷歌翻译
多文件摘要中的一个关键挑战是捕获区分单个文档摘要(SDS)和多文件摘要(MDS)的输入文档之间的关系。现有的MDS工作很少解决此问题。一种有效的方法是编码文档位置信息,以帮助模型捕获跨文档关系。但是,现有的MDS模型(例如基于变压器的模型)仅考虑令牌级的位置信息。此外,这些模型无法捕获句子的语言结构,这不可避免地会引起生成的摘要中的混乱。因此,在本文中,我们提出了可以与MDS的变压器体系结构融合的文档意识到的位置编码和语言引导的编码。对于文档感知的位置编码,我们引入了一项通用协议,以指导文档编码功能的选择。对于语言引导的编码,我们建议使用简单但有效的非线性编码学习者进行特征学习,将句法依赖关系嵌入依赖关系掩码中。广泛的实验表明,所提出的模型可以生成高质量的摘要。
translated by 谷歌翻译
尽管不断努力提高代码搜索的有效性和效率,但仍未解决两个问题。首先,编程语言具有固有的牢固结构链接,并且代码的特征是文本表单将省略其中包含的结构信息。其次,代码和查询之间存在潜在的语义关系,跨序列对齐代码和文本是具有挑战性的,因此在相似性匹配期间,向量在空间上保持一致。为了解决这两个问题,在本文中,提出了一个名为CSSAM的代码搜索模型(代码语义和结构注意匹配)。通过引入语义和结构匹配机制,CSSAM有效提取并融合了多维代码功能。具体而言,开发了交叉和残留层,以促进代码和查询的高纬度空间比对。通过利用残差交互,匹配模块旨在保留更多的代码语义和描述性功能,从而增强了代码及其相应查询文本之间的附着力。此外,为了提高模型对代码固有结构的理解,提出了一个名为CSRG的代码表示结构(代码语义表示图),用于共同表示抽象语法树节点和代码的数据流。根据两个包含540K和330K代码段的公开可用数据集的实验结果,CSSAM在两个数据集中分别在获得最高的SR@1/5/10,MRR和NDCG@50方面大大优于基本线。此外,进行消融研究是为了定量衡量CSSAM每个关键组成部分对代码搜索效率和有效性的影响,这为改进高级代码搜索解决方案提供了见解。
translated by 谷歌翻译
代码搜索目标是根据自然语言查询检索相关的代码片段,以提高软件生产力和质量。但是,由于源代码和查询之间的语义间隙,自动代码搜索是具有挑战性的。大多数现有方法主要考虑嵌入的顺序信息,其中文本背后的结构信息不完全考虑。在本文中,我们设计了一个名为GraphsearchNet的新型神经网络框架,通过共同学习源代码和查询的富集语义来启用有效和准确的源代码搜索。具体地,我们建议将源代码和查询编码为两个图,其中双向GGNN以捕获图表的本地结构信息。此外,我们通过利用有效的多主题来增强BigGNN,以补充BigGNN错过的全球依赖。关于Java和Python数据集的广泛实验说明了GraphSearchNet优于当前最先进的工作原位。
translated by 谷歌翻译
AMR到文本是NLP社区中旨在从抽象含义表示(AMR)图生成句子的关键技术之一。自2013年提出AMR以来,有关AMR到文本的研究越来越普遍,因为AMR作为自然语言的高级语义描述,由于AMR具有独特的优势,因此作为结构化数据的重要分支变得越来越普遍。在本文中,我们简要介绍了AMR到文本。首先,我们介绍了此技术的当前情况,并指出了它的困难。其次,根据先前研究中使用的方法,我们根据它们各自的机制将它们大致分为五个类别和预先训练的语言模型(PLM)。特别是,我们详细介绍了基于神经网络的方法,并介绍了AMR到文本的最新进展,该方法指的是AMR重建,解码器优化等。此外,我们介绍了AMR-TOXT的基准和评估方法。最终,我们提供了当前技术和未来研究的前景的摘要。
translated by 谷歌翻译
源代码的表示学习对于将机器学习应用于软件工程任务至关重要。已经显示,跨不同编程语言的学习代码表示比从单语言数据集中学习更有效,因为来自多语言数据集的更多培训数据可提高该模型从源代码中提取语言 - 不平衡信息的能力。但是,现有的多语言模型忽略了特定于语言的信息,这对于在多语言数据集中培训的下游任务至关重要,同时仅着眼于学习不同语言之间的共享参数。为了解决这个问题,我们提出了MetatPtrans,这是一种用于多语言代码表示学习的元学习方法。 MetAtPtrans根据输入源代码段的特定编程语言为特征提取器生成不同的参数,从而使模型能够同时学习语言 - 语言和特定于语言的信息。实验结果表明,MetAtPtrans可将最新方法的F1得分显着提高到2.40个百分点,以汇总代码摘要,这是一项语言不可或缺的任务;以及TOP-1(TOP-5)的预测准确性高达7.32(13.15)百分点,以完成代码完成,这是一项特定于语言的任务。
translated by 谷歌翻译
考虑到RDF三元组的集合,RDF到文本生成任务旨在生成文本描述。最先前的方法使用序列到序列模型或使用基于图形的模型来求解此任务以编码RDF三维并生成文本序列。然而,这些方法未能明确模拟RDF三元组之间的本地和全球结构信息。此外,以前的方法也面临了生成文本的低信任问题的不可忽略的问题,这严重影响了这些模型的整体性能。为了解决这些问题,我们提出了一种组合两个新的图形增强结构神经编码器的模型,共同学习输入的RDF三元组中的本地和全局结构信息。为了进一步改进文本忠诚,我们创新地根据信息提取(即)引进了强化学习(RL)奖励。我们首先使用佩带的IE模型从所生成的文本中提取三元组,并将提取的三级的正确数量视为额外的RL奖励。两个基准数据集上的实验结果表明,我们所提出的模型优于最先进的基线,额外的加强学习奖励确实有助于改善所生成的文本的忠诚度。
translated by 谷歌翻译
基因本体论(GO)是能够在生物医学中实现计算任务的主要基因功能知识基础。 GO的基本元素是一个术语,其中包括一组具有相同功能的基因。 GO的现有研究工作主要集中于预测基因术语关联。很少追求其他任务,例如生成新术语的描述。在本文中,我们提出了一项新颖的任务:GO术语描述生成。该任务旨在自动生成一个句子,该句子描述了属于这三个类别之一的GO术语的功能,即分子功能,生物过程和细胞分量。为了解决此任务,我们提出了一个可以有效利用GO结构信息的图形网络。提出的网络引入了两层图:第一层是GO术语的图形,每个节点也是一个图(基因图)。这样的图形网络可以得出GO术语的生物学功能并生成适当的描述。为了验证拟议网络的有效性,我们构建了三个大规模基准数据集。通过合并所提出的图形网络,可以在所有评估指标中显着提高七个不同序列与序列模型的性能,其中BLEU,Rouge-rouge-相对改善高达34.7%,14.5%和39.1% L和流星。
translated by 谷歌翻译
As the complexity of modern software continues to escalate, software engineering has become an increasingly daunting and error-prone endeavor. In recent years, the field of Neural Code Intelligence (NCI) has emerged as a promising solution, leveraging the power of deep learning techniques to tackle analytical tasks on source code with the goal of improving programming efficiency and minimizing human errors within the software industry. Pretrained language models have become a dominant force in NCI research, consistently delivering state-of-the-art results across a wide range of tasks, including code summarization, generation, and translation. In this paper, we present a comprehensive survey of the NCI domain, including a thorough review of pretraining techniques, tasks, datasets, and model architectures. We hope this paper will serve as a bridge between the natural language and programming language communities, offering insights for future research in this rapidly evolving field.
translated by 谷歌翻译
放射学报告在向医生宣传医学发现方面发挥着关键作用。在每次报告中,印象部分总结了基本放射学结果。在临床实践中,写入印象是非常需要的,耗时且易于放射科学家的错误。因此,自动印象生成被出现为有吸引力的研究方向,以促进这种临床实践。现有研究主要集中在将突出词信息引入普通文本摘要框架,以指导放射学发现中的关键内容的选择。但是,对于此任务,模型不仅需要捕获调查结果中的重要词语,而且还可以准确地描述它们的关系,以便产生高质量的印象。在本文中,我们提出了一种用于自动印象生成的新方法,其中单词图是从调查结果创建临界词汇的研究,然后设计了一个单词图引导摘要模型(WGSUM),旨在通过帮助生成印象字形图。两个数据集,OpenI和MIMIC-CXR的实验结果证实了我们所提出的方法的有效性和有效性,在两个数据集上实现了最先进的结果。还进行了进一步的实验,以分析不同图表设计对我们方法性能的影响。
translated by 谷歌翻译
从结构化数据中学习是一项核心机器学习任务。通常,此类数据表示为图,通常仅考虑(键入)节点对之间的二进制关系。对于具有高度结构化数据的许多域而言,这是一个实质性的限制。一个重要的域是源代码,基于超图的表示可以更好地捕获代码的语义丰富和结构化的性质。在这项工作中,我们提出了热量,这是一种能够代表键入和合格的超图的神经模型,在该模型中,每个Hyperede都明确地符合参与节点的贡献。它可以看作是传递神经网络和变压器的消息的概括。我们使用新型程序代表程序来评估知识库完成和错误检测和维修的热量。在这两种情况下,它都优于强大的基线,表明其力量和通用性。
translated by 谷歌翻译