第一次个人编程作业
| 所属课程 | 软件工程导论 |
|---|---|
| 作业要求 | 个人项目 |
| 作业目标 | 学会github的使用,熟悉markdown格式,熟悉个人开发流程,了解项目单元测试 |
github地址: https://github.com/agentdong/3121005000
一、PSP表格
| PSP2.1 | PSP2.1 | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 30 |
| ·Estimate | 估计这个任务需要多少时间 | 20 | 30 |
| Development | 开发 | 410 | 490 |
| ·Analysis | 需求分析 (包括学习新技术) | 60 | 90 |
| ·Design Spec | 生成设计文档 | 30 | 40 |
| ·Design Review | 设计复审 | 20 | 30 |
| ·Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 30 |
| ·Design | 具体设计 | 60 | 30 |
| ·Coding | 具体编码 | 180 | 210 |
| ·Code Review | 代码复审 | 30 | 40 |
| ·Test | 测试(自我测试,修改代码,提交修改) | 20 | 20 |
| Reporting | 报告 | 30 | 30 |
| ·Test Repor | 测试报告 | 10 | 10 |
| ·Size Measurement | 计算工作量 | 10 | 10 |
| ·Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 10 |
| 合计 | 460 | 550 |
二、需求分析
设计一个查重算法,计算两篇文档的重复率。
三、设计文档
3.1 查重算法
- 先将待处理的数据(中文文章)进行分词,得到一个存储若干个词汇的列表
- 接着计算并记录出列表中词汇对应出现的次数,将这些次数列出来得到了一个向量
- 将两个数据对应的向量代入夹角余弦定理
- 计算的值意义为两向量的偏移度,即两个数据的相似度
3.2 实现思路
先从本地读取两篇比较文章,然后将读取到的文件内容先进行jieba分词,然后再把标点符号、转义符号等特殊符号过滤掉,最后通过调用gensim.similarities.Similarity计算余弦相似度
3.3接口及功能说明
| 接口 | 说明 |
|---|---|
| get_file_contents | 读取路径下的文件 |
| filter | 将文件分词,并过滤标点符号 |
| calc_similarity | 计算相似度 |
四、测试报告
性能测试

测试结果
| 文件 | 相似度 |
|---|---|
| orig_0.8_add | 0.9917 |
| orig_0.8_del | 0.5539 |
| orig_0.8_dis_1 | 0.6396 |
| orig_0.8_dis_10 | 0.6390 |
| orig_0.8_dis_15 | 0.6371 |
结果截图:





浙公网安备 33010602011771号