个人项目
个人项目
这个作业属于哪个课程 | |
---|---|
这个作业要求在哪里 | |
这个作业的目标 | 掌握查重算法思路、远程仓库连接、单元测试、性能测试 |
一、GitHub地址
二、P2P2.1
PSP2.1 | Personal Software Process Stages |
预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 15 |
· Estimate | · 估计这个任务需要多少时间 | 30 | 20 |
Development | 开发 | 1130 | 1270 |
· Analysis | · 需求分析 (包括学习新技术) | 300 | 350 |
· Design Spec | · 生成设计文档 | 80 | 60 |
· Design Review | · 设计复审 | 80 | 40 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 60 | 30 |
· Design | · 具体设计 | 240 | 180 |
· Coding | · 具体编码 | 300 | 350 |
· Code Review | · 代码复审 | 60 | 30 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 50 |
Reporting | 报告 | 100 | 60 |
· Test Repor | · 测试报告 | 100 | 60 |
· Size Measurement | · 计算工作量 | 60 | 30 |
· Postmortem Process Improvement Plan |
事后总结, 并提出过程改进计划 | 80 | 30 |
· 合计 | 1500 | 1305 |
三、计算模块接口的设计与实现过程
Simhash 算法实现:
- 选择simhash的位数,请综合考虑存储成本以及数据集的大小,比如说64位
- 将simhash的各位初始化为0
- 提取原始文本中的特征,一般采用各种分词的方式
- 使用传统的32位hash函数计算各个word的hashcode
- 对各word的hashcode的每一位,如果该位为1,则simhash相应位的值加1;否则减1
- 对最后得到的64位的simhash,如果该位大于1,则设为1;否则设为0
由公式 ,将汉明距离带入x即可计算出文本相似度
四、计算模块接口部分的性能改进
五、测试代码截图
六、总结
这次的作业难度很高,还不能够熟练完成,自身能力还需继续提升。对于单元测试的掌握不是很好,对于项目开发经验不足,亟需提高。