这个作业属于哪个课程 | 计科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算法进行海明距离的运算
异常处理
对文本内容文字数量的异常
对文本类型的异常