一.PMD/CPD介绍PMD是一个源代码分析器。它寻找常见的编程缺陷,例如未使用的变量、空的catch块、多余的对象创建等等。支持Java、JavaScript、Salesforce.com Apex、PLSQL、Apache Velocity、XML、XSL。另外,它包含CPD(copy-paste-detector),一个复制粘贴检测器。CPD寻找重复的代码,支持Java、C、C++、C#、G
转载 2023-08-26 12:49:16
915阅读
两幅图像的特征相似性对比图像特征相似性SSIMSSIM特征相似性检验 图像特征相似性通过PSNR、SSIM以及图像特征对两幅图像进行相似性比较,下面把比较的代码和函数输出搬上来以供参考。SSIMSSIM评估流程如下:对于输入两副图像,首先计算亮度评价并进行比对,得到第一个相似性对比,在此基础上减去亮度评价影响,计算对比评价,得到对比对比,再用上步结果除掉对比评价进行结构评价,得到结构对比,
代码相似计算将基于AST和Smith-Waterman算法AST (抽象语法树)AST即Abstract Syntax Trees,是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构。一般的,在源代码的翻译和编译过程中,语法分析器创建出分析树,然后从分析树生成AST。生成AST使用Python中的ast库来生成源代码的AST最简单的例子:import ast root_no
转载 2023-07-29 23:14:51
291阅读
一、背景与目标我们业务维护了两个代码仓库,两端的代码很多都是一个平台先开发好,几乎直接copy到另一个仓库。于是产生了一个技术需求,实现这两个仓库代码复用。在技术预研阶段,需要统计早先copy的代码文件有多少,提前预估双端代码的大概可复用文件比例。早先我是利用Beyond Compare 手动遍历文件,依据“肉眼”去对比的,花了大概一天的时间,而且估计的数据比较粗略。考虑到这个工作以后还会碰到,而
综述: 算法首先把源代码按照其自身的结构进行分段提取,然后对各个分段进行部分代码变换,再以带权重的编辑距离为相似度量标准对这些符号进行序列聚类,得到相似的程序代码片段,以达到对源程序进行相似功能检测的目的。 本文提取的是源代码中的功能段,也就是功能函数。 定义: 1.序列1和序列2的编辑距离:序列S1经过插入,删除,替代等操作变换成序列S2所需要的最少操作次数 2.S1与S2的签名距离:取某字母在
背景上周某一天,笔者搜遍全网,综合各种不完整的代码片段、GitHub 上几十个 SimHash 项目、几十个相关网络资源文章后,终于搞定了一个还算精确的 SimHash 算法的 Java 版本。输出是检验掌握一个知识点的简单标准,本文就来详细介绍一下基于 SimHash 算法的相似文本检索的原理和实现过程。文本相似的应用最近在搞一个漏洞库爬虫项目,需要综合分析并合并几个漏洞网站的漏洞信息,不同漏
第三次实验报告程序语言:python 姓名: unicorn 学号: 12345678910 日期:2023/4/8一、 问题重述  给定两个程序,如何判断他们的相似性?二、 问题分析  先假设程序为C语言,不然题目太简洁了无从下手。C语言是比较基础的语言,我对C语言也比较了解,方便操作。然后还要假设比较的两个代码都是正确的,如果出现语法错误就没有规律可循了。   接着就是对源代码的预处理,要让文
环境Python3,gensim,jieba,numpy ,pandas原理:文章转成向量,然后在计算两个向量的余弦值。Gensimgensim是一个python的自然语言处理库,能够将文档根据TF-IDF, LDA, LSI 等模型转化成向量模式,gensim还实现了word2vec功能,以便进行进一步的处理。具体API看官网:https://radimrehurek.com/gensim中文分
摘要:        为了提高源程序代码之间相似性的检测效率,提出一种基于序列聚类的相似代码检测算法. 算法首先把源代码按照其自身的结构进行分段提取,然后对各个分段进行部分代码变换,再以带权重的编辑距离为相似度量标准对这些符号进行序列聚类,得到相似的程序代码片段,以达到对源程序进行相似功能检测的目的.应用: &nbsp
摘要:代码抄袭现象非常普遍,在C语言课程作业中表现尤其严重,代码抄袭检测给教师带来了繁重的工作负担,降低了教学质量.如何利用计算机自动地,准确地检测代码抄袭是亟待解决的问题. 分析大量C语言课程作业源代码内部逻辑结构,提出基于结构树的代码结构比较算法,并以此为数据源对算法进行了实验验证,发现结构相似代码之间抄袭概率较大. 研究C语言初学者常用的代码抄袭方式,发现最常用的有四种:添加,删除,修改注
代码相似计算框架调研研究现状代码相似计算是一个已有40年研究历史的问题了。它的应用范围广泛,主要包括代码抄袭检测[3]、软件维护中的相似代码查找等。 Whale[1]于1988年首次提出一个代码相似性检测的通用框架和步骤,将检测过程分为以下两个阶段:代码格式转换 + 相似确定后来很多检测方法都参考这一框架,并将检测过程细分为四个部分:预处理 -> 中间代码转换 -> 比较单元生成
前言本文的设计思想以及算法的使用都是基于以下两篇文章。《Winnowing: Local Algorithms for Document Fingerprinting》《程序代码相似度度量算法研究_邓爱萍》我在邓爱萍的文章挑选了一种算法,最后实验了相似的计算问题。算法的思路《Winnowing: Local Algorithms for Document Fingerprinting》在这篇文章
前言本文介绍了3篇二进制代码相似性分析的顶会技术,他们体现了二进制代码相似性分析中一些最先进的思想。第一篇是Genius技术,是在《基于神经网络图嵌入的跨平台二进制代码相似性检测》论文中作为对比技术介绍,它首次使用图嵌入这个机器学习的概念去做二进制代码相似性分析,它涉及到了聚类算法、图比对、密码本等技术,也为后两篇论文打下了基础。第二篇是Gemini技术,它使用了更先进的Structur
余弦计算相似度度量相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似越小,相似的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似。下面介绍一个详细成熟的向量空间余
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。前一篇文章介绍Excel论文可视化分析基础知识。这篇文章将带来AAAI20腾讯科恩实验室的经典工作——Order Matters,提出语义感知(Semantic-Aware)神经网络来实现二进制代码相似性检测,希望这篇文章对您有所帮助。一方面自己英文太差,只能通过最土的办法慢慢提升,另一方面是自己的个人学习笔
目录一、什么是LCS子序列最长公共子序列二、LCS的应用场景三、LCS的查找方法1. 动态规划法计算LCS的长度和两字符串的相似2. 回溯算法查找LCS四、代码实现 一、什么是LCS子序列子序列:一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列最长公共子序列最长公共子序列(Longest Common Subsequence):两个序列X和Y的公共子序列中,长度最长的那个,定义为
ElasticSearch 2 (16) - 深入搜索系列之近似匹配摘要标准的全文搜索使用TF/IDF处理文档、文档里的每个字段或一袋子词。match 查询可以告诉我们哪个袋子里面包含我们搜索的术语,但这只是故事的一部分。它并不能告诉我们词语之间的关系。考虑下面句子的区别:Sue ate the alligator.The alligator ate sue.Sue never goes any
代码相似计算框架调研研究现状代码相似计算是一个已有40年研究历史的问题了。它的应用范围广泛,主要包括代码抄袭检测[3]、软件维护中的相似代码查找等。 Whale[1]于1988年首次提出一个代码相似性检测的通用框架和步骤,将检测过程分为以下两个阶段:代码格式转换 + 相似确定后来很多检测方法都参考这一框架,并将检测过程细分为四个部分:预处理 -> 中间代码转换 -> 比较单元生成
图像相似的研究在目标跟踪,图像匹配,图像拼接等领域占有重要的地位。图像的相似性一直是图像处理的热门方向之一,不仅有广泛的前途,而且有重大的研究意义。图像相似至今没有一个统一的概念。每个领域都有自己的定义,图像的相似性一般是基于图像的全局特征来判断两幅图像的相似,图像特征点匹配和提取是图像处理研究领域的基础课程,也是机器视觉的关键技术之一,广泛应用于虚拟现实,视频压缩,图像复原,图像数据库检索
几个常用的程序块,整理一下:计算余弦相似主要就是计算二范数,以及两个向量内积。''' 计算余弦相似 ''' from scipy.linalg.misc import norm def cosineSimilarity(vec1, vec2): cosine = sum(vec1 * vec2) / (norm(vec1) * norm(vec2)) return cosine
  • 1
  • 2
  • 3
  • 4
  • 5