个人项目-论文查重
这个作业属于哪个课程 | [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.计算模块部分单元测试展示
测试相同文章查重率
测试正常功能