第一次个人编程作业(python论文查重)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014
这个作业的目标 熟练使用python语言、学习与使用 GitHub、分析作业需求

GitHub地址:https://github.com/TanYYin/TanYYin/blob/main/3221004812/plagiarism.ipynb

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

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

1.接口

2.流程

3.算法

分子为两个向量内积,分母为两个向量模(长度)的积。通过公式,可以直观的认为其一定程度上消除了向量长度的影响,余弦相似度体现的是方向的差异。(欧氏距离体现的是距离差异)
当夹角为0,两个向量同向,相当于相似度最高,余弦值为1
当夹角90°,两个向量垂直,余弦为0。
当夹角180°,两个向量反向,余弦为-1

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


使用cprofile.run()函数对计算模块接口进行性能分析
1.函数调用次数(ncalls):可以看到每个函数被调用的次数,通过比较调用次数,了解哪些函数在程序执行过程中起到了重要的作用。
2.总时间(cumtime)和单次调用时间(percall):时间指标可以告译你程序中的哪些函数比较耗时,可能是潜在的性能瓶颈。
3.源文件和行号(filename:lineno):需要深入分析程序的执行过程,可以关注具体的源文件和行号,这样可以找到关键的代码段,并进行进一步的优化或调试。

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


代码路径要变成双斜线\才可以不然会造成路径读取问题

程序对文件路径进行判断,如果文件路径不存在,则退出程序。os.path.exists()方法用于检验文件是否存在。

文件测试

posted @ 2023-09-18 01:20  良好市民小鱼干  阅读(58)  评论(0编辑  收藏  举报