论文查重(基于余弦相似和Sim-Hash)
个人项目
| 这个作业属于哪个课程 | 计科21级2班 |
|---|---|
| 这个作业要求在哪里 | 个人项目 |
| 这个作业的目标 | 熟悉单人开发软件整体流程 |
PSP表
| *PSP2.1* | *Personal Software Process Stages* | *预估耗时(分钟)* | *实际耗时(分钟)* |
|---|---|---|---|
| Planning | 计划 | 20 | 17 |
| · Estimate | · 估计这个任务需要多少时间 | 120 | 70 |
| Development | 开发 | 240 | 240 |
| · Analysis | · 需求分析 (包括学习新技术) | 300 | 200 |
| · Design Spec | · 生成设计文档 | 30 | 15 |
| · Design Review | · 设计复审 | 30 | 60 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 60 | 20 |
| · Design | · 具体设计 | 30 | 30 |
| · Coding | · 具体编码 | 180 | 120 |
| · Code Review | · 代码复审 | 120 | 240 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 60 | 120 |
| Reporting | 报告 | 60 | 60 |
| · Test Repor | · 测试报告 | 60 | 40 |
| · Size Measurement | · 计算工作量 | 30 | 30 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 120 |
| · 合计 | 1370 | 1382 |
GitHub
计算模块接口的设计与实现过程
本程序采用了三种算法来实现论文对照查重
1.余弦相似
2.Sim-hash
3.Jaccard算法
关键函数是:
filePreprocessing()文件预处理函数 接收一个文件路径 返回经过预处理的字符串getSimilarity()求相似度jieBaSegmentation()分词统计
计算模块接口部分的性能改进
使用多线程加速程序运行


采用缓冲区读入文件

计算模块部分单元测试展示
部分测试代码截图

覆盖率

计算模块部分异常处理说明
当遇到异常时,统一往上级调用函数抛出,最后中断程序,返回异常原因。

浙公网安备 33010602011771号