第一次个人编程作业
| 这个作业属于哪个课程 | 计科21级12班|
| 这个作业要求在哪里| 个人项目 |
| 这个作业的目标 | 熟悉软件开发整体流程 |
Github仓库
模块设计与实现:
get_txt(path):读取path的文件内容并返回字符串格式

filter(word):使用jieba库功能对文本分词,使用python正则表达式筛选中文英文数字,返回列表

cal_sim(txt1,txt2):计算两个文本之间的预选相似度,创建文本的字典,将文本转换为词袋表示,并使用gensim的Similarity计算相似度

parse():使用argparse定义参数解析器,定义文件输入和输出路径参数。

主要执行:代码首先使用args = parse()解析命令行参数。然后,它检查指定的输入文件路径是否存在。如果路径中的任何一个不存在,它会引发FileExistsError。接下来,它使用get_txt()读取输入文件的内容,并使用filter()进行分词和过滤。最后,它使用cal_sim()计算相似度,并将结果写入指定的输出文件。

性能分析:
数据统计

调用图:

改进思路:
减少计算和重复代码
代码测试:
测试代码部分:

已经在config中默认了文件路径:

直接对默认文件路径读取保存再运行cal_sim函数保存到result_path路径上
测试结果:
| 文件名 | 相似度 |
|---|---|
| orig_0.8_add.txt | 0.9916560649871826 |
| orig_0.8_del.txt | 0.14452819526195526 |
| orig_0.8_dis_1.txt | 0.17990919947624207 |
| orig_0.8_dis_10.txt | 0.17958340048789978 |
| orig_0.8_dis_15.txt | 0.18040652573108673 |
代码覆盖率分析:

main中可能未能运行代码:

config中可能未能运行代码

异常处理:

当路径不存在时,抛出文件存在异常错误,程序运行停止。
PSP
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 640 | 350 |
| ·Estimate | ·估计这个任务需要多少时间 | 640 | 350 |
| Development | 开发 | 300 | 240 |
| ·Analysis | ·需求分析 (包括学习新技术) | 40 | 30 |
| ·Design Spec | ·生成设计文档 | 30 | 20 |
| ·Design Review | ·设计复审 | 20 | 20 |
| ·Coding Standard | ·代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| ·Design | ·具体设计 | 80 | 60 |
| ·Coding | ·具体编码 | 80 | 60 |
| ·Code Review | ·代码复审 | 10 | 10 |
| ·Test | ·测试(自我测试,修改代码,提交修改) | 20 | 20 |
| Reporting | 报告 | 130 | 110 |
| ·Test Report | ·测试报告 | 100 | 80 |
| ·Size Measurement | ·计算工作量 | 10 | 10 |
| ·Postmortem & Process Improvement Plan | ·事后总结, 并提出过程改进计划 | 20 | 20 |
| 合计 | 670 | 520 |
浙公网安备 33010602011771号