个人项目

个人项目

这个作业属于哪个课程
点击跳转_网工1934-软件工程
这个作业要求在哪里
点击跳转_作业要求
这个作业的目标 掌握查重算法思路、远程仓库连接、单元测试、性能测试

一、GitHub地址

点击跳转_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算法

  • 选择simhash的位数,请综合考虑存储成本以及数据集的大小,比如说64位
  • 将simhash的各位初始化为0
  • 提取原始文本中的特征,一般采用各种分词的方式
  • 使用传统的32位hash函数计算各个word的hashcode
  • 对各word的hashcode的每一位,如果该位为1,则simhash相应位的值加1;否则减1
  • 对最后得到的64位的simhash,如果该位大于1,则设为1;否则设为0

由公式 img,将汉明距离带入x即可计算出文本相似度


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


五、测试代码截图





六、总结

这次的作业难度很高,还不能够熟练完成,自身能力还需继续提升。对于单元测试的掌握不是很好,对于项目开发经验不足,亟需提高。

posted @ 2021-09-19 22:02  橘子皮WuFan  阅读(38)  评论(0编辑  收藏  举报