第一次个人编程作业

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834 |
| ---- | ---- | ---- |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146 |
| 这个作业的目标 | 实现简单的中文文本查重、熟悉使用GitHub、练习使用性能工具 |

GitHub地址

https://github.com/Aquamarine99/3118005332/tree/master

psp表格(估计时间)

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20
· Estimate 估计这个任务需要多少时间 40
Development 开发 400
· Analysis 需求分析 (包括学习新技术) 120
· Design Spec 生成设计文档 30
· Design Review 设计复审 30
· Coding Standard 代码规范 (为目前的开发制定合适的规范) 10
· Design 具体设计 60
· Coding 具体编码 120
· Code Review 代码复审 30
· Test 测试(自我测试,修改代码,提交修改) 60
Reporting 报告 180
·Test Report 测试报告 90
·Size Measurement 计算工作量 10
·Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10
Total 合计 1210

分析题目可知需求即是分析文本相似度,查阅网上资料发现了主流方法是jieba分词后利用gensim代入余弦相似度算法,但是源于时间紧迫和设备问题无法安装上gensim库,所以采用了次之的方法:jieba分词+jaccard算法计算相似度,参考文章(https://blog.csdn.net/lm324114/article/details/103831311)

计算模块接口的设计与实现过程

思路流程图

读入文本

装入文本后,re.compile剔除标点符号,jieba分词,再转化成TF矩阵

jaccard算法计算相似系数,数值越趋于1说明越相似

输入答案文件地址,默认编码为UTF-8,写入函数中调用jaccard计算模块

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

利用cProfile测得的时间

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

若输入文件中有空文本则会导致答案文件数据为0.0

psp表格(实际使用时间)

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 30
· Estimate 估计这个任务需要多少时间 40 30
Development 开发 400 350
· Analysis 需求分析 (包括学习新技术) 120 180
· Design Spec 生成设计文档 30 50
· Design Review 设计复审 30 30
· Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 10
· Design 具体设计 60 60
· Coding 具体编码 120 180
· Code Review 代码复审 30 80
· Test 测试(自我测试,修改代码,提交修改) 60 50
Reporting 报告 180 200
·Test Report 测试报告 90 200
·Size Measurement 计算工作量 10 10
·Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 20
Total 合计 1210 1480
posted @ 2020-09-24 21:50  鱼书666  阅读(156)  评论(0)    收藏  举报