论文查重(基于余弦相似和Sim-Hash)

发布时间 2023-09-17 23:31:18作者: 昼阳Helios

个人项目

这个作业属于哪个课程 计科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() 分词统计

计算模块接口部分的性能改进

使用多线程加速程序运行

采用缓冲区读入文件

计算模块部分单元测试展示

部分测试代码截图

覆盖率

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

当遇到异常时,统一往上级调用函数抛出,最后中断程序,返回异常原因。