首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 71 毫秒
1.
代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了现有克隆检测方法的有效性和实用性。针对上述问题,提出一种基于对比学习的树卷积神经网络(contrastive tree convolutional neural network,CTCNN)的跨语言代码克隆检测方法。该方法首先将不同编程语言的代码解析为AST,并对AST的节点类型和节点值作同义词转换处理,以降低不同编程语言AST之间的差异;同时,采用对比学习扩充负样本并对模型进行训练,使得在小样本数据集下能够最小化克隆对之间的距离,最大化非克隆对之间的距离。最后在公开数据集上进行了评测,精确度达到95.26%、召回率为99.98%、F1为97.56%。结果表明,相较于现有的最好的CLCDSA和C4方法,该模型的检测精度分别提高了43.92%和3.73%,其F1值分别提升了29.84%和6.29%,证明了所提模型是一种有效的跨语言代码克隆检测方法。  相似文献   

2.
杨萍  赵冰  舒辉 《计算机应用》2019,39(6):1728-1734
据统计,在大量的恶意代码中,有相当大的一部分属于诱骗型的恶意代码,它们通常使用与常用软件相似的图标来伪装自己,通过诱骗点击达到传播和攻击的目的。针对这类诱骗型的恶意代码,鉴于传统的基于代码和行为特征的恶意代码检测方法存在的效率低、代价高等问题,提出了一种新的恶意代码检测方法。首先,提取可移植的执行体(PE)文件图标资源信息并利用图像哈希算法进行图标相似性分析;然后,提取PE文件导入表信息并利用模糊哈希算法进行行为相似性分析;最后,采用聚类和局部敏感哈希的算法进行图标匹配,设计并实现了一个轻量级的恶意代码快速检测工具。实验结果表明,该工具对恶意代码具有很好的检测效果。  相似文献   

3.
跨语言文档聚类主要是将跨语言文档按照内容或者话题组织为不同的类簇。该文通过采用跨语言词相似度计算将单语广义向量空间模型(Generalized Vector Space Model, GVSM)拓展到跨语言文档表示中,即跨语言广义空间向量模型(Cross-Lingual Generalized Vector Space Model,CLGVSM),并且比较了不同相似度在文档聚类下的性能。同时提出了适用于GVSM的特征选择算法。实验证明,采用SOCPMI词汇相似度度量算法构造GVSM时,跨语言文档聚类的性能优于LSA。  相似文献   

4.
基于节点相似性的WSNs故障检测方法研究   总被引:1,自引:0,他引:1  
针对目前多数无线传感器网络分布式故障检测的算法都以假设故障节点数据为离群值为基础,存在局限性的问题。提出一种基于节点相似度比较的无线传感器网络故障检测方法,簇头节点根据簇内节点数据的时空相关性,进行节点相似性度量,实时调整节点可信水平,并采用最优函数计算出当前实验的最优阈值(0.8)进行故障节点的判断。通过仿真实验证明:针对不同的故障模型,算法保持了良好的故障检测能力,一定程度上解决通用性问题。  相似文献   

5.
基于词典的英汉双向跨语言信息检索方法   总被引:1,自引:0,他引:1  
杨辉  张玥杰  张涛 《计算机工程》2009,35(16):273-274
基于文本检索会议关于英汉跨语言信息检索的任务评价,分别以英汉双向查询翻译和英汉查询为主导策略与翻译对象,采用英汉电子词典作为获取翻译知识的知识源,结合构建的英汉单语信息检索系统,实现完整的英汉双向跨语言信息检索过程。实验结果验证了该系统的有效性。  相似文献   

6.
针对互联网上日渐丰富的多语言文本和匮乏大规模标注平行语料库的问题,为了从多语言的信息源挖掘语言间的关联性与扩展知识图谱,提出了基于注意力迁移的跨语言关系提取方法。首先针对语言间的实际平行语料情况,分类进行跨语言平行语料映射,并针对缺乏种子词典的低资源语言对,提出神经网络翻译模型获取目标语言数据集并保存多语言间的对应注意力权重关系,然后利用BERT端对端的联合抽取模型抽取训练数据实体关系特征,反向迁移语言间注意力权重关系,最后利用反向迁移的注意力进行增强的关系抽取。实验表明,该模型的关系提取效果相比其他模型在准确率和回归上都有所提升,在缺乏双语词典情况下也表现出较好的性能。  相似文献   

7.
基于图像相似性的Android钓鱼恶意应用检测方法   总被引:1,自引:0,他引:1  
在移动互联网日益兴盛的今天,攻击者已开始通过移动应用的形式来实施网络钓鱼,而现有的网络钓鱼检测方法主要针对网页钓鱼,无法应对这一新的安全威胁。钓鱼恶意应用的一个显著特点是通过构造与目标应用相似的界面来诱骗用户输入敏感信息。基于这种视觉相似性,提出了一种面向Android平台的钓鱼恶意应用检测方法。该方法通过动态技术截取被检测应用的人机交互界面,利用图像哈希感知算法计算其与目标应用界面的图像相似度。如果相似度超过阈值,则识别被检测应用程序为钓鱼恶意应用。实验表明,该方法可以有效检测Android平台上的恶意钓鱼应用程序。  相似文献   

8.
如何有效地检测程序设计课程作业中的抄袭现象是一个重要的问题。传统的抄袭检测方法主要利用代码的属性或结构信息来度量代码之间的相似性。给出了一种基于误差反向传播(BP算法)多层前向神经网络的代码抄袭检测方法。提取程序之间的7种比较特征作为神经网络的输入,经过网络计算后得出程序的相似值,并将该值与抄袭决策阈值相比较以判定存在抄袭现象的程序集。实验结果表明,本方法具有很好的检测效果。  相似文献   

9.
针对现有代码克隆检测方法通常存在标记表示单一而抽象语法树构造复杂的问题,提出一种结合分层特征的代码克隆检测方法.使用双层双向长短时记忆网络提取行级和全局代码层次的深层语义信息,挖掘目标代码的语义特征.引入注意力机制调整重要标记及代码行的影响权重,增强语义形式的代码克隆检测效果,并采用softmax分类器识别克隆代码.实...  相似文献   

10.
代码克隆是指软件程序中一组相同或相近的代码片段,它广泛存在于软件中,因此如何发现代码克隆成为软件维护的一个重要问题。目前已有的克隆检测工具大多针对单一版本进行完整的克隆检测,然而对于大规模、复杂软件系统而言,在软件演化过程中随着代码的改变,不断重新检测代码克隆将花费较高的代价。针对这一问题,提出了一种基于分组的增量克隆检测方法。该方法根据前后两个版本的差异将源代码分为发生变化和未发生变化的两组,通过组内和组间的克隆分析实现增量的克隆检测。基于所提出的方法,在克隆检测工具CCFinderX的基础上实现了一个名为ICDBG(incremental clone detector based on grouping)的原型工具。实验证明,在变更较小时,该方法能够在保证正确性的同时显著减少克隆检测时间。  相似文献   

11.
传统的基于Token的克隆检测方法利用代码字符串的序列化特性,可以在大型代码仓中快速检测克隆.但是与基于抽象语法树(AST)、程序依赖图(PDG)的方法相比,由于缺少语法及语义信息,针对文本有较大差异的克隆代码检测困难.为此,提出一种赋予语义信息的Token克隆检测方法.首先,分析抽象语法树,使用AST路径抽象位于叶子节点的Token的语义信息;然后,在函数名和类型名角色的Token上建立低成本索引,达到快速并有效地筛选候选克隆片段的目的.最后,使用赋予语义信息的Token判定代码块之间的相似性.在公开的大规模数据集BigCloneBench实验结果表明,该方法在文本相似度较低的Moderately Type-3和Weakly Type-3/Type-4类型克隆上显著优于主流方法,包括NiCad、Deckard、CCAligner等,同时在大型代码仓上需要更少的检测时间.  相似文献   

12.
克隆代码是指在软件源程序中存在的相同或相似的代码片段。克隆代码在很多软件工程中,例如程序理解,代码质量分析,剽窃检测,漏洞查找和病毒检测,都需要通过找出语义或语法上相似的代码片段来实现,目前常用的检测方法有四种:基于文本(text—based)检测,基于字符序列(token-based)的检测,基于语法树(tree-based)的检测和基于关系图(PDG—based)的检测。基于字符序列的克隆检测首先对源程序进行预处理转换,再经过匹配算法得到克隆检测结果:克隆代码的检测是软件分析的一个重要的部分。  相似文献   

13.
克隆代码是指在软件源程序中存在的相同或相似的代码片段。克隆代码在很多软件工程中,例如程序理解,代码质量分析,剽窃检测,漏洞查找和病毒检测,都需要通过找出语义或语法上相似的代码片段来实现。目前常用的检测方法有四种:基于文本(text-based)的检测,基于字符序列(token-based)的检测,基于语法树(tree-based)的检测和基于关系图(PDG-based)的检测。基于字符序列的克隆检测首先对源程序进行预处理转换,再经过匹配算法得到克隆检测结果。克隆代码的检测是软件分析的一个重要的部分。  相似文献   

14.
程序员对源代码的拷贝、粘贴及修改活动会导致软件中出现大量克隆代码,增加软件开发和维护的成本。为解决该问题,提出一种新的克隆检测方法。利用基于后缀数组的算法查找重复的 Token 子串,进而检测出克隆代码,开发相应的克隆检测工具SaCD,用其检测29款C语言开源软件。实验结果表明,SaCD能快速有效地检测软件中的Type-1和Type-2语句克隆,其检测速度比传统的克隆检测工具CCFinderx快了近20倍。  相似文献   

15.
本文根据同一个僵尸网络中的成员在行为上呈现一定相似性的原理,提出了一个僵尸网络检测模型,该模型能满足对IRC、HTTP、P2P三种僵尸网络的检测要求.  相似文献   

16.
性能bug是指代码中降低程序运行效率的缺陷.现有的检测工具只能查找特定类型的性能bug并且需要复杂的程序分析过程,因而缺乏通用性并且时空开销巨大.同时,有许多经典的克隆检测技术被用于一般性相似代码检测,但是它们只能检测高度相似的代码或者需要依赖训练集,使得它们难以用于在真实数据集中查找性能bug.基于此,通过构建带有标记token的代码模板,本文提出一种使用克隆检测技术来查找多种类型的性能bug的方法.通过对不同类型和频度的token标记不同的权重,本文提出的方法可以区分其重要性并因此提取出代码中的关键信息.在真实项目构成的数据集上的实验表明,本方法可以发现更多类型的性能bug同时比现有工具耗时更少.另一项实验也证明了本方法显著提升了基于token的克隆检测技术的检测能力,相比于现有的克隆检测方法更适合用于性能bug查找.  相似文献   

17.
文本相似度在信息检索、文本挖掘、抄袭检测等领域有着广泛的应用。目前,大多数研究都只是针对同一种语言的文本相似度计算,关于跨语言文本相似度计算的研究则很少,不同语言之间的差异使得跨语言文本相似度计算很困难,针对这种情况,该文提出一种基于WordNet的中泰文跨语言文本相似度的计算方法。首先对中泰文本进行预处理和特征选择,然后利用语义词典WordNet将中泰文本转换成中间层语言,最后在中间层上计算中泰文本的相似度。实验结果表明,该方法准确率达到82%。  相似文献   

18.
代码克隆检测在剽窃检测、版权侵犯调查、软件演化分析、代码压缩、错误检测,以及寻找bug,发现复用模式等方面有重要作用。现有的代码克隆检测工具算法复杂,或需要消耗大量的计算资源,不适用于规模巨大的代码数据。为了能够在大规模的数据上检测代码克隆,提出了一种新的代码克隆检测算法。该算法结合数据消重中的基于内容可变长度分块(content-defined chunking,CDC)思想和网页查重中的Simhash算法思想,采用了对代码先分块处理再模糊匹配的方法。在一个包含多种开源项目,超过5亿个代码文件,共约10 TB代码内容的数据源上,实现了该算法。通过实验,比较了不同分块长度对代码克隆检测率和所需要时间的影响,验证了新算法可以运用于大规模代码克隆检测,并且能够检测出一些级别3的克隆代码,达到了较高的准确率。  相似文献   

19.
时间序列的相似性挖掘是数据挖掘中的重要内容,通过对水文时间序列的相似性挖掘研究,设计并实现一个基于J2EE组件技术的相似性挖掘系统。并对该系统进行了测试实验,证明其有效性和正确性.  相似文献   

20.
为辅助教师进行电子作业的批改和抄袭鉴别,设计并实现一种基于序列匹配的作业相似度检测系统。以班级为分组建立相似度计算模型,利用序列匹配算法计算公共子序列的长度,得到每组作业两两之间的相似度,并在此基础上进行聚类分析,给出可视化结果。实验结果表明,该系统具有较强的实用性,能够辅助教师在批改作业时快速高效地鉴别疑似抄袭的情况。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号