个人项目

这个作业属于哪个课程 这个作业要求在哪里 这个作业的目标
软件工程导论 个人项目 熟悉PSP流程,熟悉项目开发过程

GiuHub:https://github.com/XueKaoyao/3223004258

PSP表格

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

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

  • 接口设计

  1. 读取文件内容接口:使用readfile函数来读取一个文件内容并返回该内容,文件路径通过url参数传递,且文件必须用UTF-8编码格式。
  2. 文本预处理接口:使用split函数对输入的文本进行预处理,将文本的每句话拆开成一个字一个字放入集合。
  3. 相似度计算接口:使用calculate_similarity函数计算两个文档之间的相似度。
  4. 主函数接口:main函数是程序的主要逻辑部分。它调用其他函数来读取文件内容、进行预处理和计算相似度,并将结果写入输出文件。
  5. 性能分析接口:使用Python的标准库模块cProfile中的cProfile.run函数来对代码进行性能分析。
  • 算法关键

  • 文本预处理:使用正则表达式来从输入的文本中提取所有的汉字,并将这些汉字以集合的形式返回。
  • 相似度计算:使用余弦相似度算法来计算两篇文档之间的相似度。

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

  • 性能分析

  • 消耗最大函数

split 函数

  • 性能改进思路

  • 尝试对文件读取进行批量处理或增量读取,以降低内存消耗并提高效率。
  • 对正则表达式进行优化,提高更复杂文本处理的效率。

计算模块部分单元测试展示

  • 单元测试代码

  1. test_calculate_similarity :该测试验证了 calculate_similarity 函数对不同文本集合计算相似度的正确性。给定两个文本集合,期望输出的相似度值。
  2. test_split :该测试验证了 split 函数的正确性。输入文本会被分割成一个集合,去除标点符号并返回每个独立的字。
posted @ 2025-03-08 16:25  XueKaoyao  阅读(37)  评论(0)    收藏  举报