#苦行僧
这是我随心所欲记录笔记的地方,喜欢的方向:| NLP | CV | ML | 搜广推 | SE+AI |。
展开
-
Learning to Quantize Vulnerability Patterns and Match to Locate Statement-Level Vulnerabilities 讲解
《Learning to Quantize Vulnerability Patterns and Match to Locate Statement-Level Vulnerabilities》论文讲解原创 2023-12-06 16:36:31 · 1346 阅读 · 0 评论 -
《CodeReviewer: Automating Code Review Activities by Large-Scale Pre-training》论文笔记
《CodeReviewer: Automating Code Review Activities by Large-Scale Pre-training》论文笔记。基于预训练技术,encoder-decoder结构来完成自动代码审查全流程任务。原创 2022-12-28 17:27:09 · 595 阅读 · 1 评论 -
即时缺陷预测与定位任务 (JIT-DP & JIT-DL) - 评估指标
即时缺陷预测与定位任务 (JIT-DP & JIT-DL) - 评估指标,包含commit-level与line-level指标的整理。原创 2022-08-31 22:19:05 · 900 阅读 · 2 评论 -
《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记
软件工程任务:即时缺陷预测(涉及SE+AI知识)原创 2022-07-29 16:17:59 · 381 阅读 · 0 评论 -
《Deep Semantic Feature Learning for Software Defect Prediction》论文笔记
背景&介绍软件缺陷预测模型,能够有效地帮助开发者发现bug和优先处理他们的测试工作。先前在提高软件缺陷预测模型上做的研究可以分为以下2个方向:1.手工的设计一些新特征或者多种特征的结合方法来表示缺陷。2.应用一些新的或改进的ML模型来作为缺陷预测分类器。传统的方法提取的特征主要集中在程序的统计型特征,然而从现实的程序中对比发现,这些传统方法提取到的特征可能不足以区分带有不同语义信息的程序,它们得到的特征可能相似甚至相同。如上图这两份语义不一样的代码,如果用传统的特征(如code co原创 2021-07-27 16:34:17 · 627 阅读 · 0 评论 -
《GraphCodeBERT: Pre-Training Code Representation With Data Flow》论文笔记
论文来源:ICLR-2021论文链接:https://arxiv.org/abs/2009.08366(看时间,应该是2020发在了arxiv上,2021被ICLR录用) ⭐主要贡献: 可以说是在CodeBERT的基础上引入了结构信息和两个新的预训练任务。 1.提出了GraphCodeBERT,是第一个利用了代码语义结构信息来学习代码特征表示的预训练模型。(通过data flow来获得语义结构信息而不是AST) 2.除了MLM预训练任务,还引入了2个新的能够从source code和data f原创 2021-08-11 23:08:24 · 1645 阅读 · 0 评论 -
《COOBA: Cross-project Bug Localization via Adversarial Transfer Learning》论文笔记
论文发表在AI顶会(CCF-A):IJCAI-2020。论文链接:https://www.ijcai.org/proceedings/2020/493 主要任务是做一个cross project的bug location,这里所说的bug定位和我了解的不太一样,他是根据bug report来识别定位出跟这个bug report相关的code file。那么为什么要做cross project的呢?因为在项目新建立的初期,within project内并没有足够的bug-fix data拿来做有监督训练,原创 2022-06-02 16:53:22 · 338 阅读 · 1 评论 -
《Neural-Machine-Translation-Based Commit Message Generation: How Far Are We?》论文笔记
论文地址:下载地址 论文会议:Conference: the 33rd ACM/IEEE International Conference 年份:2018论文主要内容: 【注:提交消息(Commit message)可以看成是软件修改后的说明文档,用来提示修改的内容和修改的目的。因此对于程序的维护与理解很重要。我们知道,版本控制广泛用于管理不断发展的代码库。当开发者向版本控制系统提交一个修改时,他们使用提交消息记录修改的说明。】 这篇论文主要讲的是提交消息的生成,这是一个极具挑战性的方向。论文与原创 2021-06-07 20:06:59 · 372 阅读 · 0 评论 -
《A Transformer-based Approach for Source Code Summarization 》论文笔记
论文地址:点击进入论文Github地址:点击进入论文主要内容: 利用transformer模型来进行代码摘要生成,通过对代码token之间的成对关系建模以捕获其长期依赖来学习代码表示。实验部分和其他一些baselines作了对比,验证了模型达到了最优性能。并通过实验证明了,使用相对位置表示对源代码token之间的成对关系进行建模,相对于使用绝对位置表示的学习代码token的序列信息,可以实现重大改进。并在transformer中整合了复制注意力机制,其能够从源代码复制稀有标记(如:函数名臣,变量名称)原创 2021-06-20 18:41:08 · 359 阅读 · 0 评论 -
《CommtPst: Deep learning source code for commenting positions prediction》论文笔记
年份:2020(The Journal of Systems & Software期刊)背景:一个智能的代码注释器应该是能够首先根据一段给定的代码,找出应该注释的正确位置,然后为这段代码生成一段注释。之前有很多有关代码注释生成研究...原创 2021-07-08 22:57:14 · 251 阅读 · 5 评论 -
《Predicting Defective Lines Using a Model-Agnostic Technique》论文笔记
年份:2020(TSE)论文的地址:点击进入论文主要内容:论文提出了一个新颖的框架(LINE-DP),其结合了model-agnostic技术(LIME,一种可解释性AI技术),用于识别源代码中的缺陷代码行。LINE-DP背后的直觉是:在先前缺陷文件中频繁出现的code tokens,也有可能再次出现在发布后经过修复的代码行中。LINE-DP首先是根据数据集建立一个file-level级别的缺陷识别模型(采用了ML模型-logistic regression),然后用LIME去识别出有风险的token原创 2021-07-16 23:22:15 · 347 阅读 · 0 评论 -
《How Well Do Change Sequences Predict Defects? Sequence Learning from Software Changes》论文笔记
背景:软件缺陷预测模型,旨在自动识别出有缺陷的程序模块,帮助SQA小组优先利用有限的资源来检查那些最有可能是缺陷的代码模块。其中,软件代码特征的度量对于构建软件缺陷模型十分关键。主要分为两种度量类型:1.static code metrics(静态代码度量)它从代码源文件中提取,用于衡量软件的复杂度。例如:代码的行数、类的依赖、成员函数的数量等。2.process code metrics(变化过程度量)它从软件的变更历史记录中提取,例如代码的改动、变化的复杂度等。先前的一些研究发现,在缺陷原创 2021-07-27 16:33:54 · 145 阅读 · 0 评论 -
《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》论文笔记
论文来源:EMNLP-2020 论文链接:https://arxiv.org/abs/2002.08155 ⭐相关预训练模型在huggingface官网可以搜到,论文也公布了相应github链接。 ????主要内容: 传统的bert是面向自然语言的预训练模型,而codebert则是一个双模态的新型预训练模型,也是基于transformer的网络架构,它是面向自然语言和编程语言(包含6种编程语言)。预训练则是通过一个混合目标函数进行优化,结合了MLM任务和RTD任务(replaced token原创 2021-08-09 22:54:32 · 1983 阅读 · 8 评论 -
《Fault Localization with Code Coverage Representation Learning》论文笔记
主要内容:主要就是提出了一个statement-level和method-level的bug location模型,叫:DEEPRL4FL。对代码覆盖测试和突变测试的code coverage matrix改进,以及引入statement-dependency以及AST信息来综合学习表征代码程序,以更好的突出bug与非bug的特征。模型采用了CNN,因为将这些特征表示成matrix可以输入CNN进行学习,且CNN利用卷积核能够较好的捕获一些邻域信息特征。先验知识介绍:论文里所说的这些Fault Loc原创 2021-12-17 18:42:21 · 1056 阅读 · 7 评论 -
基于tree-sitter库提取java文件的所有函数
先提取出代码的AST,从AST的根节点开始,DFS遍历,将是函数的节点即 ‘method_declaration’ 的保存下来。然后节点是有保存函数的起始行和结束行信息的,根据该位置信息即可从源代码中提取出每个函数。from tree_sitter import Language, Parserdef get_java_methods(code): "返回所有函数和函数节点信息" def dfs(node, method_list): node_childs = nod原创 2021-10-07 19:14:42 · 2183 阅读 · 0 评论 -
tree-sitter-编程语言解析工具包
????tree-sitter是一个速度很快的语法parser,支持incremental parsing, error recovery等等很有用的功能。功能比基于正则的工具强很多。它支持多种编程语言的解析,包括python, java, c等。同时支持多种编程语言的使用。 tree_sitter官网:https://tree-sitter.github.io/tree-sitter/ python版本tree_sitter的github(里面readme有基本的教程):https://github原创 2021-08-24 18:50:39 · 6032 阅读 · 23 评论