| 这个作业属于哪个课程 | 软件工程 |
| ---- | ---- | ---- |
| 作业要求 | 这里 |
| 作业目标 | 熟悉运用单元测试和开发 |
github链接
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 25 | 40 |
| ·Estimate | ·估计这个任务需要多少时间 | 25 | 40 |
| Development | 开发 | 300 | 365 |
| ·Analysis | ·需求分析(包括学习新技术) | 25 | 30 |
| ·Design Spec | ·生成设计文档 | 15 | 30 |
| ·Design Review | ·设计复审 | 15 | 15 |
| ·Coding Standard | ·代码规范(为目前的开发制定合适的规范) | 5 | 10 |
| ·Design | ·具体设计 | 30 | 50 |
| ·Coding | ·具体编码 | 80 | 180 |
| ·Test | ·测试(自我测试,修改代码,提交修改) | 35 | 50 |
| Reporting | 报告 | 75 | 85 |
| ·Test Report | ·测试报告 | 15 | 20 |
| ·Size Measurement | ·计算工作量 | 10 | 15 |
| ·Postmortem&Process Improvement Plan | ·事后总结,并提出过程改进计划 | 50 | 50 |
| ·合计 | 395 | 495 | |
| 原理介绍 | |||
| 余弦相似度量:计算个体间的相似度。 | |||
| 相似度越小,距离越大。相似度越大,距离越小。 | |||
| 假设有3个物品,item1,item2和item3,用向量表示分别为: | |||
| item1[1,1,0,0,1], | |||
| item2[0,0,1,2,1], | |||
| item3[0,0,1,2,0], | |||
| 即五维空间中的3个点。用欧式距离公式计算item1、itme2之间的距离,以及item2和item3之间的距离,分别是: | |||
| item1-item2= |
item2-item3=
用余弦函数计算item1和item2夹角间的余弦值为:
用余弦函数计算item2和item3夹角间的余弦值为:
由此可得出item1和item2相似度小,两个之间的距离大(距离为7),item2和itme3相似度大,两者之间的距离小(距离为1)。
余弦相似度算法: 一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
余弦相似度量: 计算个体间的相似度。
相似度越小,距离越大。相似度越大,距离越小。
余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
算法实现
使用的是python,算法方面使用了jieba分词库,在余弦相似度与simhash中选取余弦相似度来编写的。
代码截图(余弦相似度)

主要流程图

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


覆盖率以及部分单元测试

测试代码(部分)

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

总结
还没完全搞懂如何搞PSP表格,只能上网搜索方法,但有些又不适用,搞得很慢。不过github上传文件和测试开始熟悉了,希望下次能更快搞定。
浙公网安备 33010602011771号