个人项目-论文查重
| 这个作业属于哪个课程 | 计科22级1班 |
|---|---|
| 这个作业要求在哪里 | 要求 |
| 这个作业的目标 | 设计软件 |
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 30 | 30 |
| Estimate | 估计这个任务需要多少时间 | 200 | 200 |
| Development | 开发 | 500 | 600 |
| Analysis | 需求分析 (包括学习新技术) | 200 | 100 |
| Design Spec | 生成设计文档 | 50 | 60 |
| Design Review | 设计复审 | 50 | 60 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 50 | 20 |
| Design | 具体设计 | 30 | 30 |
| Coding | 具体编码 | 100 | 120 |
| Code Review | 代码复审 | 10 | 20 |
| Test | 测试(自我测试,修改代码,提交修改) | 30 | 20 |
| Reporting | 报告 | 30 | 30 |
| Test Repor | 测试报告 | 20 | 10 |
| Size Measurement | 计算工作量 | 10 | 5 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 30 |
| 合计 | 1330 | 1335 |
模块的设计
项目结构如下图

基本思路是海明算法,通过hanlp模块将文件分词,通过MD5算法来得到散列值,然后for计算得到词频进行加权,最后合并再降维得到海明距离
性能改进
开始想做余弦算法,但是这个知识点没有现成的资料来进行研究,,于是选择了更加寻常的simhash算法,其实感觉使用两个算法一起进行的会使得程序的性能更强大
对应性能分析图

其中消耗最大的算法是得到哈希值的getsimhash算法

单元测试
对应代码覆盖率

测试代码
主程序测试代码

对提供的文本内容进行查重处理
结果如下图

产生海明距离的代码测试

通过simhash算法进行海明距离的运算
异常处理
对文本内容文字数量的异常

对文本类型的异常

浙公网安备 33010602011771号