论文查重
作者:互联网
个人项目
软件工程 | 班级链接 |
---|---|
作业要求: 1.在 Github 仓库中新建一个学号为名的文件夹。 2.在开始实现程序之前,在 PSP 表格记录下你估计在程序开发各个步骤上耗费的时间,在实现程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。 3.语言不限,并将编译好的程序发布到 Github 仓库中的 releases 中。 4.提交的代码要求经过 Code Quality Analysis 工具的分析并消除所有的警告。 5.完成项目的首个版本之后,请使用性能分析工具Studio Profiling Tools来找出代码中的性能瓶颈并进行改进。 6.使用Github来管理源代码和测试用例,代码有进展即签入Github。 7.使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标;写出至少10个测试用例确保你的程序能够正确处理各种情况。 |
作业链接 |
作业目标: 设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。 |
一.PSP表格
PSP2.1 | Person Software Process Stages | 预估耗时(分钟) | 实际耗时 |
---|---|---|---|
Planning | 计划 | 100 | 120 |
Estimate | 估计这个任务需要多长时间 | 120 | 100 |
Development | 开发 | 2420 | 2500 |
Analysis | 需求分析(包括学习新技术) | 450 | 400 |
Design Spec | 生成设计文档 | 120 | 125 |
Design Review | 设计复审 | 30 | 30 |
Coding Standard | 代码规范 | 90 | 100 |
Design | 具体设计 | 100 | 100 |
Coding | 具体编码 | 500 | 450 |
Test | 测试(自我测试,修改代码...) | 300 | 350 |
Reporting | 报告 | 90 | 90 |
Test Measurement | 计算工作量 | 90 | 90 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程中的修改计划 | 60 | 60 |
合计 |
二.开发环境
- 项目构建工具:maven
2.性能分析工具:JProfiler 9.2
3.依赖的外部jar包:汉语言处理包HanLP
4.单元测试:JUnit-4.13.1
三.计算模块的接口和实现过程
3.1.程序实现类
主类:Application,包含main方法,可以接收指定参数,传递给文件类进行文件的输入和输出,并调用工具类
工具类:FileUtil:文件处理类,用来读取和输出文件;
HammingUtil:计算海明距离;
SimHashUtil:计算SimHash值的类
ResultUtil:结果处理类,把重复率处理出来
测试类:单元测试 :测试各模块是否正常
整体流程(思维导图):
3.2.核心算法:
SimHash+海明距离
具体可参考文章SimHash和海明距离
3.3接口的设计和实现
3.3.1 FileUtil:包含两个静态方法。ReadTxt读取文件,将其转换为字符串;WriteText写入文件,将查重结果写入到指定文件路径
3.3.2 SimHashUtil:包含两个静态方法。getHash:传入String,计算出它的hash值,并以字符串形式输出 ;getSimHash:传入String,计算出它的simHash值,并以字符串形式输出
3.3.3 HammingUtil:1个静态方法。getHammingDistance:输入输入两个 simHash 值,计算出它们的海明距离 distance
3.3.4 Main主模块 :调用各种工具类的方法,把结果显示出来
四.单元测试:
4.1 读写测试
4.2 SimHash模块测试
测试结果
4.3海明距离模块测试
**五,接口部分的性能
5.1性能分析
从图中可以看出,调用次数最多的是com.hankcs.hanlp包提供的接口, 即分词、取关键词与计算词频花费了最多的时间。
所以在性能上基本没有什么需要改进的。
遇到的问题:
不熟悉IDEA的使用,在项目配置方面花了很长时间,外部依赖,导入jar包等也是第一次接触,比较陌生。
java没有学好,在程序理解和修改方面也花了大量时间,还有就是新接触了性能分析工具,认识到了IDEA的强大之处。
学习了如何在Github导入IDEA项目。
标签:查重,文件,Github,海明,论文,3.3,测试,100 来源: https://www.cnblogs.com/jnh198/p/15265600.html