个人项目-论文查重

这个作业属于哪个课程 [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.计算模块部分单元测试展示

测试相同文章查重率

测试正常功能


测试无法提取特征异常

测试输入文件错误

命令行输入参数不足

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

6. 计算模块部分异常处理说明

当Article初始化时不能读取到双字词,无法添加hash值时抛出

IOException当读取文件和写入文件失败时抛出

posted @ 2020-09-24 23:07  简简~~单单  阅读(229)  评论(0编辑  收藏  举报