到目前为止,诞生了各种各样的向量表示的方法,比如word2vec,还有seq2vec,para2vec,doc2vec等等。本文的研究重点放在了code2vec,也就是将代码片段转化为向量表示。通过研究这种code embedding,我们希望能够将其应用于编程语言的各类任务中,本文以“为代码片段生成对应的语义标签”为例。 该任务具体如上图所示,如果单纯...
Code2vec类似于自然语言中的word2vec,是一种使用神经网络预测程序属性的新颖框架,主要思想是将代码变成嵌入向量,学习代码的分布式表示。分布式表示会将将语言的语义或者语法特征分散存储在一个低维、稠密的实数向量中,之所以叫分布式是可以将离散表示的一维取值为1 分布到各个向量。代码嵌入使我们能够以自然有效的方式对...
最大的挑战是,OpenAPI规范既不是自然语言,也不是代码。但这也意味着我们可以自由使用任何可用的嵌入模型。在这个实验中,我们将研究三种可能可行的候选方案:code2vec、glow和spaCy。code2vec是一个神经模型,可以学习与源代码相关的类比。该模型是在Java代码数据库上训练的,但是你可以将其应用于任何代码。还有GloVe...
code2vec 的实现主要包括以下几个步骤: 1.数据预处理:将源代码转换为适合神经网络处理的格式,包括分词、去噪等操作。 2.构建神经网络:搭建一个适用于代码向量表示的神经网络模型,通常包括多层编码器和解码器。 3.训练神经网络:利用大量代码数据对神经网络进行训练,使其能够将代码映射为具有语义关联性的向量。 4.代...
java -jar lib-0.5.jar code2vec --lang cpp --project %源代码的目录% --output %需要生成的code2vec的输入 材料 1.code2vec作者的开源codevec实现代码网址:https://github.com/tech-srl/code2vec 2.将code2vec应用到多种语言github上的开源网址:https://github.com/JetBrains-Research/astminer ...
这篇paper提供了一种学习code的Distributed Representation的方法,借鉴了word2vec和Attention的方法。 它使用代码的抽象语法树结构,对代码片段在树上的路径(包括Terminal在内)进行 embedding ,这样得到的 code 的 embedding 可以用来做一些 downstream 的任务,原文做的任务是给出方法的代码,预测方法名。
code2vec:Learning Distributed Representations of Code Appeared in POPL'2019 Source Paper Video Examples Blog Slides Cite Input some Java code inside the editor and click on the arrow to generate predictions for the method's name. You can use the examples provided below the editor (click on each...
1.code2vec作者的开源codevec实现代码网址:https://github.com/tech-srl/code2vec2.将code2vec应用到多种语言github上的开源网址:https://github.com/JetBrains-Research/astminer3.关于code2vec应用到多种语言github上的开源使用的博客: 实践过程 1.gradle安装 ...
Code2vec 类似于自然语言中的 word2vec,是一种使用神经网络预测程序属性的新颖框架,主要思想是将代码变成嵌入向量,学习代码的分布式表示。分布式表示会将将语言的语义或者语法特征分散存储在一个低维、稠密的实数向量中,之所以叫分布式是可以将离散表示的一维取值为 1 分布到各个向量。代码嵌入使我们能够以自然有效的方...
Code2Vec has emerged as a powerful tool for analyzing source code by leveraging distributed representations. Code2Vec has demonstrated substantial capabilities in capturing semantic information from source code; however, its sensitivity to variable names has been identified as a significant limitation. ...