第一次个人编程作业

| 这个作业属于哪个课程 | 计科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
posted @ 2023-09-17 12:34  你说的不对  阅读(29)  评论(0)    收藏  举报