第一次个人编程作业
GitHub链接
PSP表格
| PSP2.1 | *Personal Software Process Stages* | *预估耗时(分钟)* | *实际耗时(分钟)* |
|---|---|---|---|
| Planning | 计划 | 40 | 40 |
| · Estimate | · 估计这个任务需要多少时间 | 40 | 40 |
| Development | 开发 | 870 | 1220 |
| · Analysis | · 需求分析 (包括学习新技术) | 400 | 550 |
| · Design Spec | · 生成设计文档 | 30 | 40 |
| · Design Review | · 设计复审 | 40 | 50 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 70 | 80 |
| · Design | · 具体设计 | 50 | 60 |
| · Coding | · 具体编码 | 200 | 340 |
| · Code Review | · 代码复审 | 40 | 50 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 40 | 50 |
| Reporting | 报告 | 100 | 120 |
| · Test Repor | · 测试报告 | 40 | 50 |
| · Size Measurement | · 计算工作量 | 20 | 30 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 40 |
| · 合计 | 1010 | 1380 |
计算模块接口的设计与实现过程
算法流程图

主要实现思路
采用基于gensim库的TF-IDF算法来实现余弦相似度,通过Similiarity()函数计算出每句话的相似度,根据权重求出整篇文章相似度
关键函数
数据字符处理模块

文本分词处理模块

计算相似度(图太大没截全)

计算模块接口部分的性能改进
使用VS2019的性能分析工具测试该程序


计算模块部分单元测试
部分单元测试代码

测试结果

代码覆盖率
![]()
计算模块部分异常处理说明
定义NoWord类,当文本没有汉字时跳转到这个类并输出

总结
之前没学过用python编程,在接到这次作业之后显得有些手足无措,只能强行恶补python知识并结合搜索引擎一步一步地进行编码以及排错,磕磕绊绊在截止时间之前完成了这次的任务。


浙公网安备 33010602011771号