自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 2021.5.22项目阶段总结

摘要本周实现了cpp的AST获取以及使用,至此基于ast的结构性查重的算法都已经实现了。并且整理了一下接口方便对接 所有的算法汇总本周总结1、将自己的算法进行了汇总,并且定义了一些接口,方便集成。2、也进一步实现了关于cpp的ast语法树的分析,然后只要套上smithwaterman的算法即可实现相似度的对比分析。下周期望1、下周根据进度应该是集成成功。2、我这一部分进行单元测试。...

2021-05-22 19:53:25 250

原创 cpp的AST获取以及使用

思路:首先通过gcc获得cpp的ast,然后根据gcc获得文件的特点,进行特征内容的提取,最后调用算法进行相似度的计算全部代码看所有的算法汇总中的第七部分,里面有关于接口的定义,以及算法的调用部分代码如下import os# commend = "cd D:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin & gcc -fdump-tree-original-raw cpp1.cpp"import redef al

2021-05-22 19:41:35 802

原创 所有的算法汇总

所有的算法汇总# -*- coding:utf-8 -*-#这个.py将所有的算法集成起来import mathimport osimport jiebaimport numpy as npfrom gensim.corpora import Dictionaryfrom gensim.models import TfidfModelfrom gensim.similarities import SparseMatrixSimilarityfrom simhash import Si

2021-05-22 19:40:44 473

原创 2021.5.16项目阶段总结

摘要本周实现了java的ast树分析以及token的提取本周总结1、本周总结了一下当前项目的进度,以及未来要实现的内容。2、也进一步实现了关于java的ast语法树的分析,然后只要套上smithwaterman的算法即可实现相似度的对比分析。下周期望1、进行C++的ast的语法树的分析。2、然后将查重的代码更加细颗粒的实现。...

2021-05-16 16:36:42 136

原创 java的ast树分析以及token的提取

前言大部分内容借鉴了前辈的经验,在此基础之上我有进行了适合自己当前代码情况的改进。主要的改进就是将树中token输出了出来,然后用自己的smithwaterman算法进行相似度的计算。虽然注释不多,但是代码整体比较容易理解。代码import javalangfrom javalang.ast import Nodeimport osfrom anytree import AnyNode, RenderTree# 代码数据预处理programfile = open("C:/Users/6

2021-05-16 16:28:44 1407 2

原创 2021.5.9项目阶段总结

摘要本周实现了python的基于AST以及Smith_Waterman算法的代码相似度计算本周总结1、学习了由张丽萍主编的《基于AST的多种语言代码抄袭检测方法研究》。并且尝试实现了其中的相似度比较部分,但是可能还是会有一点偏差,相似度的比较未必有那么的准确。2、也发现了自己的问题,上周的AST产生没有想象中的好用,所以就换了一种方法。详细见上述连接下周期望1、相似度的结果不是很准确,所以计划更加细颗粒度的比较。2、然后就是看看有没有产生java以及C的AST的方法,然后套用这个算法即可。

2021-05-09 20:52:37 231

原创 基于AST以及smithwaterman算法的代码相似度计算

主要参考了《基于AST的多语言代码抄袭检测方法研究》张丽萍,刘呈龙,刘东升 (内蒙古师范大学计算机与信息工程学院,内蒙古呼和浩特010022)在这篇文章中讲述了产生代码AST以及使用smithwaterman算法进行代码相似度计算的方法,但是我的AST产生方法与其略有不同,主要是使用了python中的自带的一个库函数,然后通过实现smithwaterman算法来计算相似度。import astimport mathimport astunparse as astunparseimport num

2021-05-09 20:46:01 1677 1

原创 2021.5.1项目阶段总结

摘要本周主要是找了一下关于结构方面的查重本周总结1、对与上述的结构查重,找到了一种方法,是由张丽萍主编的《基于AST的多种语言代码抄袭检测方法研究》。主要分成了三个部分,第一步是代码的形式化过程,将代码转化为AST序列,第二部是计算相似度,运用序列匹配算法对比生成的AST序列。第三步是聚类分析,运用前两部保存的信息进行聚类分析,找到抄袭。2、她在文章中讲到所用到的工具ANTLR,使用它来进行代码的形式化,我所实现的具体内容见这里。下周期望1、先做出来代码的AST分析功能,使其更加完善,如果比较简

2021-05-01 10:35:16 134

原创 通过ANTLR来进行AST的生成

通过ANTLR来进行AST的生成步骤1、首先要在github上找到grammars-v4的包下载下来2、然后配置一下就可以用了。3、主要的结果如下4、之后在调整一下最好让其可以在python环境下使用。

2021-05-01 10:32:36 1103

原创 2021.4.23项目阶段总结

摘要本周主要是将之前做的东西集成了起来,提交了一个中期的版本。本周总结1、对于我的代码部分主要就是做了一个界面。详细内容请看这里2、将我们的项目从开始到目前为止所有的文档,都整理了一遍,也发现了一些问题。比如说我们之间沟通的资料留下的太少,应该积极的沟通交流,比如在定义一些接口的时候,如果沟通的足够好那么就没有我们在集成时所产生的问题,还有就是应该每一周都有每一周的任务,并且及时的发现问题并改正。下周期望1、基于语法树以及流程图的查重(结构,编译)2、找一找有没有接口(实现简单)3、再去网上

2021-04-23 19:12:08 93

原创 个人查重部分的界面设计

主要的内容如下:只要是通过pyqt5来实现的,代码就不贴了,应为pyqt5的设计基本上不用写代码,但是底层逻辑还是需要代码支撑的。然后看一下我们项目的界面。

2021-04-23 19:07:49 295

原创 2021.4.18项目阶段总结

摘要对所有的算法进行筛选,找到其中合适的,然后集成到里面。本周总结1、为了使得我们的整合的相对轻松,我整理了一下之前的我所选择使用的代码。也发现了一定的问题(后面会介绍)2、总共入选了六个算法,每个算法都有每个算法的优势和不足,多几种算法就可以从不同的角度去评定两篇文章的相似性。详细内容请看https://blog.csdn.net/qq_43533083/article/details/115801033下周期望1、下周我们就要迎来中期检测了,目前打算就是把自己目前的工作整理一下,先发行一个中

2021-04-19 14:03:32 83

原创 基于字符串匹配的文本相似度分析

摘要介绍总共有六个算法,具体算法思想可以关注前面发过的文章,但是其中的基于自大子字符串长度的算法运行效率太低,有待优化。由于代码中有相关注释,所以实现过程就不一一赘述# -*- coding:utf-8 -*-#这个.py将所有的算法集成起来import mathimport jiebaimport numpy as npfrom gensim.corpora import Dictionaryfrom gensim.models import TfidfModelfrom gensi

2021-04-17 20:27:19 875 3

原创 2021.4.11项目阶段报告

提要阅读了几篇论文。对其中的部分算法进行了实现。本周总结首先参考了这篇文章《程序代码相似度度量算法研究_邓爱萍》,其中分析了几种关于代码相似度的算法,我挑选她所阐述的最后一种进行了实现。根据上面的文章我又找到了另一篇文章,《Winnowing: Local Algorithms for Document Fingerprinting》讲述的是Winnowing算法的原理,并根据他所说的内容进行了编程。随后又找到了一篇文章《最长公共子序列算法在程序代码相似度度量中的应用_于海英》,这篇文章主

2021-04-11 11:47:05 110

原创 基于Winnowing的代码相似度算法

前言本文的设计思想以及算法的使用都是基于以下两篇文章。《Winnowing: Local Algorithms for Document Fingerprinting》《程序代码相似度度量算法研究_邓爱萍》相关实现过程参考https://blog.csdn.net/chichoxian/article/details/53128303,文章幽默诙谐,深入浅出,建议大家去看一下。但是这里提一下,他的文章没有实现相似度的计算问题,我在邓爱萍的文章挑选了一种算法,最后实验了相似度的计算问题。算法的思路

2021-04-11 11:43:46 1421

原创 通过python实现最长公共子序列算法

前言算法的主要思想是匹配两个文章中最长的公共子序列,进而判断两篇文章的相似度。这个代码的实现是通过双循环,所以效率上能会存在一定的缺陷。注明:算法的思想的原文章,实在是找不到了,在此声明抱歉。实现思想1、首先是把字符串矩阵化“appl”和“eppl”2、然后相同的地方(i,j)置为(i-1,j-1)+1 注意边界值。apple0000p0110p0120l00033、我的代码中又改进的地方,主要就是考虑到在只考虑计

2021-04-11 10:02:30 648 1

原创 2021.4.2项目阶段报告

提要主要解释了论文中的部分内容。本周总结1、主要是阅读了《Comparison and Evaluation of Clone Detection Tools》这篇论文论文内容section 1在文章的第一部分主要是分析了代码克隆的一些应用场景以及检测代码克隆的实际意义。主要是因为代码克隆这种情况普遍存在并且普遍缺少相关的文档记录,所以对于被克隆部分的在需要修改的时候往往耗费颇多,于是代码克隆的检测就显得很有必要。section 2主要介绍了几种克隆检测的方式文本比较为了提高性

2021-04-02 21:12:26 169 1

原创 2021.3.25项目阶段报告

提要最大的收获就是实现了自己的TFIDF,这样的情况下,进行文本相似度的分析就更加好了,本篇博客主要内容会包括自己的TFIDF算法的实现一个使用自己TFIDF的余弦相似度算法的实现本周总结1、TFIDF算法的实现,主要思路就是根据tf-idf算法的内容进行程序的设计,然后提供必要的接口方便别的程序的调用。这部分代码借鉴了知乎中的一篇文章,给出地址:https://zhuanlan.zhihu.com/p/26766008详细的实现方式可以借鉴上述文章,不过他的是英文版,我的是中文版

2021-03-26 09:26:08 138 2

原创 2021.3.19项目阶段报告

2021.3.19项目阶段报告提要经过讨论,我们确定了各自的分工,我负责的模块主要是查重部分,所以我就这一部分进行工作。因为python有直接的可用库进行分词等操作,所以目前的部分是使用python写的本周总结1、学习了关于pycharm,以及pyqt5的使用并且做出了属于自己的界面,通过pyqt5做界面方面比较简单。以下是第一版测试界面,只需要有个样子就可以了,重要的是测试代码能不能正确运行。2、通过python的jpype库实现了java和python的对接具体过程在另一篇博客中有展示。

2021-03-19 18:01:42 271 6

原创 如何让pycharm运行Java代码

第一步,jpype库的下载我使用的编辑器是pycharm,所以,直接import jpype即可,但是他会报错,说没有这个库,这个时候,你把名字改成 import jpype1,然后下载,pycharm会给你自动下载的。注意,下载完之后,你使用的还是import jpype 我是这样的第二步,将你要用的java类打包成一个jar文件第三步,如下代码调用import jpypejvmPath = r"D:\jdk-15.0.2\bin\server\jvm.dll"#java虚拟机的路径

2021-03-15 20:44:26 13340

原创 PyCharm +pyqt5 中的Designer.exe找不到了

在根据其他教程进行安装的时候发现,走到了一半,找不到Designer.exe,通过求助发现原来是pyqt5不在提供Qt Designer等工具,所以需要安装pyqt5-toolspip install pyqt5-tools即可,然后继续跟着其他教程走。...

2021-03-15 20:35:37 1089

原创 队伍管理日志

基于???的批量批改代码系统本博客是应学院要求创建,内容仅用于记录个人工作过程。前期准备

2021-03-12 20:27:29 86 4

原创 Python网络爬虫与信息提取

Python网络爬虫与信息提取掌握定向网络数据爬取和网页解析的基本能力几个部分:Requests库的介绍,通过这个库克以自动爬取HTML页面,在网络上自动提交相关请求robots.txt协议,网络爬虫的规则,网络爬虫排除标准Beautiful Soup库,解析HTML页面提取相关信息实战项目Projects:A/B,了解库以及相关操作Re正则表达式库:提取关键信息Sctapy:专业网络爬虫的框架,第三方库,中规模速度更快的。常用的PythonIDE工具文本工具类ID

2020-05-17 15:28:15 3970

原创 网络爬虫爬取淘宝页面商品信息

网络爬虫爬取淘宝页面商品信息最近在MOOC上看嵩老师的网络爬虫课程,按照老师的写法并不能进行爬取,遇到了一个问题,就是关于如何“绕开”淘宝登录界面,正确的爬取相关信息。通过百度找到了答案,在此记录一下。针对以上问题主要的代码是kv = {'cookie':'','user-agent':'Mozilla/5,0'}r = requests.get(url,headers=kv,timeout=30)会在最后附上全代码(不含cookie)那么问题的关键就是cookie的获取(1)首先需要用到Go

2020-05-16 23:05:36 2318 10

原创 第七章数据库设计和ER模型

第七章数据库设计和ER模型7.1设计模型概览7.2ER模型一个数据库可以建模如下:一组实体集多个实体间的相互关联实体:现实世界中可以区别于所有其他对象的一个“事物”或“对象”例如:特定的人,公司,事件,植物。属性:例如:人的名字简单属性和复合属性:name和Firstname、lastname单值数型和多值属性:phone_number(一个人有多个电话号码)派生属性:年龄从生日中派生实体集:相同类型即具有相同的性质(或属性)的一个实体集合

2020-05-08 22:08:08 641

原创 第二章实践与认识及其发展规律

第二章实践与认识及其发展规律第一节实践与认识一、实践的本质与基本结构(一)实践的本质实践:是人类能动地改造世界的社会性的物质活动马克思、恩格斯以前的中外哲学家都没有科学地理解人类实践的真正本质,没有看到实践在人类认识和整个社会生活中的决定意义。马克思科学阐明了人类实践的本质及其在认识世界和改造世界中的作用,创立了科学的实践观。实践的基本特征:其一,实践是物质性的活动,具有直接实现性。其二,实践是人类有意识地活动,具有自觉能动性。其三,实践是社会的历史的活动,具有社会历史性。(二

2020-05-08 22:07:12 14452

原创 第十章多态及软件复用

第十章多态及软件复用重载改写多态变量泛型10.1编程语言中的多态10.1.1多态的形式-1重载(专用多态):类型签名区分class overloader{ public void example(int x){......} public void example(int x,double y){......} public void example(string x){......}}10.1.2多态的形式-2改写(包含多态):层次关系中,相同类型签

2020-05-08 21:51:24 240

原创 第九章 多重继承

第九章 多重继承9.1分类化继承1.多重继承:一个对象可以有两个或更多不同的父类,并可以继承每个父类的数据和行为。​ 派生的分类对每个父类仍然符合"是一个"规则或"作为一个"关系。​ 同时扮演多个角色​ magnitude numberchar integer complex3.多重继承中存在的问题(1)父类存在同名的方法。例如:CardDeck 中存在函数draw()画一个CardGraphicalObject中存在函数draw()画一个image那么他们的子类Graph

2020-05-08 21:48:43 457

原创 第六章进程同步

第六章进程同步协作进程:可以与在系统内执行的其他进程相互影响的进程。互相协作的进程可以直接共享逻辑地址空间,或者只通过文件或消息来共享数据。6.1背景6.1.1竞争条件1.竞争条件:多个进程并发访问和操作同一数据且执行结果和访问的特定数据有关。2.为了避免竞争条件,需要确保一段时间内只有一个进程能操作变量counter,为了实现这种保证,要求进行一定形式的进程同步。6.2临界区问题1.临界区:当一个程序进入临界区,没有其他进程可被允许在临界区内执行,即没有两个进程可同时在临界区内执行。2.

2020-05-08 21:46:57 537

原创 第八章程序设计方法论

第八章程序设计方法论8.1计算思维本质:抽象和自动化8.2实例15:体育竞技分析-网球类规则:两个球员在一个有四面边界的场地上用球拍击球。开始比赛时,其中一个球员首先发球。接下来球员交替击球,直到可以判定得分为止,这个过程称为回合。当一名球员未能进行一次合法击打时,回合结束。未能打中球的球员输掉这个回合。如果输掉这个回合的是发球方,那么发球权交给另一方;如果输掉的是接球方,则仍然由这个回合的发球方继续发球。总之,每回合结束,由赢得该回合的一方发球。球员只能在他们自己的发球局中得分。首先达到15

2020-05-08 21:45:56 593

原创 第七章文件与数格式化

第七章文件与数格式化7.1文件的使用7.1.1 文件概述1.文件概述文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容,文件是数据的集合和抽象,用文件形式组织和表达数据更有效也更为灵活2.文件类型文本文件(有统一的字符编码)文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展 示和阅读二进制文件(无统一的字符编码)​ 二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关,只能当做字节流,不能看作字符串无论文件创建为

2020-05-08 21:43:23 2093

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除