论文查重算法 python_个人项目之论文查重
个人项目
Compiling Environment
System
win10 1803 / 1903
Python Version
二、PSP表格
PSP2.1
Personal Software Process Stages
预估耗时(分钟)
实际耗时(分钟)
Planning
计划
20
25
· Estimate
· 估计这个任务需要多少时间
20
20
Development
开发
465
550
· Analysis
· 需求分析 (包括学习新技术)
30
35
· Design Spec
· 生成设计文档
60
60
· Design Review
· 设计复审
60
70
· Coding Standard
· 代码规范 (为目前的开发制定合适的规范)
15
10
· Design
· 具体设计
30
25
· Coding
· 具体编码
180
250
· Code Review
· 代码复审
60
60
· Test
· 测试(自我测试,修改代码,提交修改)
30
30
Reporting
报告
60
60
· Test Report
· 测试报告
30
30
· Size Measurement
· 计算工作量
10
10
· Postmortem & Process Improvement Plan
· 事后总结, 并提出过程改进计划
20
20
Total
· 合计
545
628
三、论文查重算法原理
1、什么是simhash
simhash是google于2007年发布的一篇论文《Detecting Near-duplicates for web crawling》中提出的算法,初衷是用于解决亿万级别的网页去重任务,simhash通常用于长文本,通过降维处理,将长文本压缩至几个关键词来代表一篇文章,然后再将这些关键词编码成一个固定长度的二进制字符串(一般为32位或是64位),这样即用一个固定长度的编码来表示一整篇文章,我们想要对比多篇文章,只需要对比这些固定长度的编码就可以了。
2、simhash步骤
(1)、既然要用几个关键词来代替一篇文章,那么这几个关键词首先得有代表性,像类似“的”、“了”这种几乎每篇文章都会存在的词自然没有什么代表性,所以首先对文章分词后去停用词。
(2)、去停用词后计算每个词的tf-idf得分,关于tf-idf网上也有很多,在这里就不做过多介绍了,可以理解为是提取了文章中比较重要的词,并根据重要程度对每个词有个权重W,然后我们提取权重分值前N个关键词,比如对一篇文章我们选取前5个关键词和他们对应的tf-idf权重为:
(人工智能,1)、(大数据,2)、(科技,3)、(互联网,4)、(机器学习,5)
(3)、接下来需要对这些关键词进行编码,首先对5个词进行普通的hash之后得到一个N位(一般为32位或是64位)的二进制,为了方便书写,这里假设N为5,则:
人工智能:00101
大数据:11001
科技:00110
互联网:10101
机器学习:01011
(4)、针对每一个hash后的词,相应位置是1的,权重W取正,相应位置是0的,权重W取负,及变为:
人工智能:00101 ---> [-1,-1,1,-1,1]
大数据:11001 ---> [2,2,-2,-2,2]
科技:00110 ---> [-3,-3,3,3,-3]
互联网:10101 ---> [4,-4,4,-4,4]
机器学习:01011 ---> [-5,5,-5,5,5]
(5)、对上述变换后的列表进行列向累加得到:[-3, -1, 1, 1, 9]
(6)、对上述累加后的结果进行变换,对应位置为正数时取1,对应位置为负数时取0。
即:[-4, -1, 1, 1, 9] ---> 00111
这样就得到了一个文档的simhash值。即我们把一篇文章压缩成了一个固定长度的编码:00111
(7)、对两篇文章得到两个simhash值后,计算两篇文章的simhash相似度就可以直接计算这两个simhash值得相似度即可,计算两个simhash的相似度通常使用汉明距离,汉明距离说白了就是计算两个编码相对位置不相同的个数,我们也可以计算两个simhash取异或后看1的个数是否超过某个阈值(自己设定,一般3),大于阈值则判定为不相似,小于等于阈值判定为相似。
四、代码块部分单元测试展示
1.代码各个模块审计图如下:
2.各个模块具体展示时间以及占用内存:
五、单元测试展示代码
测试抄袭文本
两篇文章(.\test\test\orig.txt & .\test\test\orig_0.8_add.txt)
相似率为:0.85
两篇文章(.\test\test\orig.txt & .\test\test\orig_0.8_del.txt)
相似率为:0.83
两篇文章(.\test\test\orig.txt & .\test\test\orig_0.8_dis_1.txt)
相似率为:0.73
两篇文章(.\test\test\orig.txt & .\test\test\orig_0.8_dis_10.txt)
相似率为:0.76
两篇文章(.\test\test\orig.txt & .\test\test\orig_0.8_dis_15.txt)
相似率为:0.83
对照原文
两篇文章(.\test\test\orig.txt & .\test\test\orig.txt)
相似率为:1.0
六、异常处理说明
文件找不到或者参数输入错误
七、模块的接口设计类图
论文查重算法 python_个人项目之论文查重相关推荐
- CRC(循环冗余校验)查表算法的代码实现
CRC(循环冗余校验)查表算法的代码实现 前言 准备工作 查表算法的由来 查表算法的基本原理 模二减法(异或运算)的性质 对直接计算法进行分析 基本原理的推广 查表算法的代码实现 测试用例 正式编码 ...
- 软件工程个人项目作业----论文查重
这个作业属于哪个课程 广工2023软件工程课程社区-CSDN社区云 这个作业要求在哪里 个人项目作业-论文查重 这个作业的目标 实现论文查重 其他参考文献 csdn 目录 1.gitcode地址 2. ...
- 个人项目作业-论文查重
目录 1.作业基本信息 2.PSP表格 3.计算模块接口的设计与实现过程 3.1类和方法 3.2类.方法之间的调用关系 3.3 关键方法computeTxtSimilar() 4.计算模块接口部分的性 ...
- word公式编辑器_论文查重算公式吗 公式怎样避免查重?
论文查重算公式吗 公式怎样避免查重?每一个毕业生想要毕业都要经过论文查重这一关,仅有通过了论文查重,才可以进入答辩.在论文检测的情况下,不少同学论文中一定会应用大批量的计算公式,且计算公式全部都是固定 ...
- 硕士论文查重经验(省钱又高效地查重经验,本人亲测,觉得有用点个赞)
一般硕士论文的查重率都要降到15%以下,学校一般都会用知网查重,那么我们在自己写论文的时候如何修改论文的重复率呢? 1.首先用免费的查重软件查一下自己论文的重复率(笔杆.paperpass都可以),重 ...
- 网页查重算法Shingling和Simhash和bloom filter研究
网页查重算法Shingling和Simhash和bloom filter研究 在网页查重算法中 shingling 和 simhash 被认为是当前最好的两个算法. shingling算法 shing ...
- 中国知网论文查重算法和修改攻略
现在高校对于硕士和博士论文采用的检测系统,是由知网开发的.但该软件的具体算法,判定标准,以前一直不清楚, 本文是从知网内部工作人员哪里拿到的,揭示了知网反抄袭检测系统的算法,如何判定论文是抄袭,以及如 ...
- AI领域算法作者及项目直播分享汇总-不断更新ing
在人工智能行业的工作或者学习中,经常需要研究新的研究方向. 但有的同学可能会觉得网络查询的知识点太零散,最好能有相关领域的专家或者算法作者的视频分享. 因此,大白就从各种渠道,收集整理了各个项目方向的 ...
- 如何从论文中实现算法复现(译)
原文地址:http://codecapsule.com/2012/01/18/how-to-implement-a-paper/ 作者:Emmanuel Goossaert 翻译:Joseph Arn ...
- 行人重识别0-01:DG-Net(ReID)-论文翻译,详细解说(1)
以下链接是个人关于DG-Net(行人重识别ReID)所有见解,如有错误欢迎大家指出,我会第一时间纠正.有兴趣的朋友可以加微信:17575010159 相互讨论技术.若是帮助到了你什么,一定要记得点赞! ...
最新文章
- glm.fit Warning Messages in R: algorithm didn’t converge probabilities 0/1
- html5网站测试工具,基于HTML5网页的前端技术测试技巧
- 设计模式之享元模式学习笔记
- 如何排查模组无法识别SIM卡?
- 洛谷 P2731 骑马修栅栏 Riding the Fences
- Spring boot配置Servlet容器
- C#如何打包EXE程序生成setup安装文件
- Linux—系统启动类故障之 GRUB引导故障
- JVM调优——Java动态编译过程中的内存溢出问题
- php正则去掉width=,关于php使用正则去除宽高样式的方法
- 斯坦福机器学习公开课笔记--神经网络的学习
- 虚幻4皮肤材质_虚幻4学习心得
- 帝国时代2哪个服务器稳定,《帝国时代2决定版》新手该选择哪个国家|新手使用国家推荐...
- 叠片式过滤器原理概述
- SSD《一》-- 基础知识
- mysql mysql5.7两个服务_MySQL 5.7.15 两台服务器双实例相互复制
- 毕博携ETM.next解决方案亮相上海宝马工程机械展
- <Android开发> Android vold - 第二篇 vold 的main()函数简介
- 实时主备出现GRP02[STANDBY, OPEN, ISTAT_SAME:TRUE]的归档状态无效或到实例GRP01[PRIMARY, OPEN, ISTAT_SAME:TRUE]的MAL链路异常
- 【微信小程序】微信小程序入门与实战-个人笔记