这个作业属于哪个课程 | |
---|---|
这个作业要求在哪里 | |
这个作业的目标 |
1. GitHub 链接
2. PSP表格
PSP2.1 | Personal Software Process Stages | 预计耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 5 |
Estimate | 估计这个任务需要多少时间 | 10 | 5 |
Development | 开发 | 300 | 360 |
Analysis | 需求分析(包括学习新技术) | 60 | 30 |
Design Spec | 生成设计文档 | 30 | 45 |
Design Review | 设计复审 | 15 | 30 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 30 | 10 |
Design | 具体设计 | 30 | 45 |
Coding | 具体编码 | 300 | 330 |
Code Review | 代码复审 | 30 | 45 |
Test | 测试(自我测试,修改代码,提交修改) | 120 | 60 |
Reporting | 报告 | 30 | 45 |
Test Reporting | 测试报告 | 30 | 10 |
Size Measurement | 计算工作量 | 15 | 5 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 15 | 25 |
合计 | 1025 | 1050 |
3. 计算模块接口的设计与实现过程
文本余弦相似度计算算法介绍:
一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
计算过程:
- 分词
例:
句子A:这只皮靴号码大了。那只号码合适。
句子B:这只皮靴号码不小,那只更合适。
分词后得到:
句子A:这, 只, 皮靴, 号码, 大, 了, 那, 只, 号码, 合适
句子B:这, 只, 皮靴, 号码, 不小, 那, 只, 更合, 合适
- 列出所有词
'不小', '了', '合适', '那', '只', '皮靴', '更', '号码', '这', '大'
- 得到两个文本的词频向量
句子A:'不小'(0), '了'(1), '合适'(1), '那'(1), '只'(2), '皮靴'(1), '更'(0), '号码'(2), '这(1)', '大'(1)
句子B:'不小'(1), '了'(0), '合适'(1), '那'(1), '只'(2), '皮靴'(1), '更'(1), '号码'(1), '这(1)', '大'(0)
- 计算余弦值
Cos(θ) = (0, 1, 1, 1, 2, 1, 0, 2, 1, 1) · (1, 0, 1 ,1, 2, 1, 1, 1, 1, 0) = 0.81
流程图:
UML类图:
4. 计算模块接口部分的性能改进
遥测概述
类内存占用
方法耗时
内存占用主要来自词频计算和调用HanLP库,时间耗时主要在HanLP库的分词方法,因此暂无改进思路。
5. 计算模块部分单元测试展示
测试结果
代码覆盖率
6. 计算模块部分异常处理说明
5.计算模块部分单元测试展示 中已看到对路径不正确、文本内容为空两种情况的测试。
文本内容为空
找不到指定路径