个人项目-论文查重
| 这个作业属于哪个课程 | [https://edu.cnblogs.com/campus/gdgy/Networkengineering1834] |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146 |
| 这个作业的目标 | 做一个论文查重项目,学会使用PSP表格 |
1.github仓库
https://github.com/JJDD-ljx/3118005286
2.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| · Estimate | · 估计这个任务需要多少时间 | 20 | 20 |
| Development | 开发 | 450 | 640 |
| · Analysis | · 需求分析 (包括学习新技术) | 30 | 60 |
| · Design Spec | · 生成设计文档 | 30 | 60 |
| · Design Review | · 设计复审 | 60 | 70 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| · Design | · 具体设计 | 30 | 50 |
| · Coding | · 具体编码 | 180 | 250 |
| · Code Review | · 代码复审 | 60 | 60 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 30 | 60 |
| Reporting | 报告 | 60 | 60 |
| · Test Report | · 测试报告 | 30 | 30 |
| · Size Measurement | · 计算工作量 | 10 | 10 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20 | 20 |
| Total | · 合计 | 530 | 720 |
3.计算机模块接口的设计与实现过程

- CommandParse是主程序入口,在里面创建Article并加载原始论文和待检测论文
- 在Article函数构造中计算文章特征:
先顺序读行,每遇标点符号就断为一句
使用正则表达式分割短句,每2个文字合并作1个双字词
获取双字词的hash值,添加到排序集合里 - 在ArticleCompare里比较双字词
双字词hash值是以从小到大排序存储在集合里的,
用双指针法,比较两篇文章所得2个集合的共同元素个数
相同率即为重复率
4.计算模块接口部分的性能改进

分析可得Article函数构造中占用时间最多,断句和用正则表达式分割双字词使用时间较多。
且 Java 语言自带方法、优化难度较大。
5.计算模块部分单元测试展示
测试相同文章查重率

测试正常功能


测试无法提取特征异常

测试输入文件错误

命令行输入参数不足

单元测试的测试覆盖率截图

浙公网安备 33010602011771号