个人项目:论文查重
个人项目:论文查重
GitHub地址 https://github.com/shuojun0808/shuojun0808
| 作业所属课程 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834 |
|---|---|
| 作业要求 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146 |
| 作业目标 | 学会使用PSP表格 学会使用工具进行优化和性能分析 实现论文查重 |
一、PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 60 |
| · Estimate | 估计这个任务需要多少时间 | 50 | 40 |
| Development | 开发 | 360 | 540 |
| · Analysis | 需求分析 (包括学习新技术) | 150 | 180 |
| · Design Spec | 生成设计文档 | 30 | 35 |
| · Design Review | 设计复审 | 60 | 60 |
| · Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 35 | 35 |
| · Design | 具体设计 | 40 | 50 |
| · Coding | 具体编码 | 180 | 300 |
| · Code Review | 代码复审 | 40 | 40 |
| · Test | 测试(自我测试,修改代码,提交修改) | 60 | 120 |
| Reporting | 报告 | 120 | 200 |
| ·Test Report | 测试报告 | 20 | 30 |
| ·Size Measurement | 计算工作量 | 10 | 10 |
| ·Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
| Total | 合计 | 1245 | 1730 |
二、计算模块接口的设计与实现过程
1.1 SimHash类

1.2 Unit类

1.3 异常类

1.4 余弦相似度算法类

2.1算法原理
-
这次项目中运用到hanlp分词,根据词频,然后进行比对得到查重率
-
通过了网上的寻找,根据这位博主的文章的博客,进行SimHash算法类编写(https://www.cnblogs.com/nifanlove/p/10046291.html)
-
算法关键:通过计算得到汉明距离
-
大致算法流程:
![]()
-
其次也使用了余弦相似性算法,参考了相似度算法之余弦相似度
2.2算法流程

最后结果
orig_0.8_add.txt 0.9739645582549769
orig_0.8_del.txt 0.8055412527550833
orig_0.8_dis_1.txt 0.9973557010035817
orig_0.8_dis_10.txt 0.682243394533814
orig_0.8_dis_15.txt 0.682243394533814
三、接口部分的性能改进
-
内存、CPU、GC、线程情况
![]()
-
Live Memory
![]()
-
CPU Load
![]()
-
堆内存
![]()
四、单元测试展示
该项目采用JUnit4.12,代码覆盖率91%
-
代码
![]()
![]()
-
测试结果:
![]()
![]()
解析:里面包含一个空文档,就抛出空文本异常
- 代码覆盖率
![]()
五、异常处理
-
代码
![]()
-
异常测试
![]()
![]()














浙公网安备 33010602011771号