第一次个人编程作业

发布时间 2023-09-20 22:55:21作者: Flatday
这个作业属于哪个课程 计算21级
这个作业要求在哪里 个人项目
这个作业的目标 熟悉Github使用,编写文本查重代码

Github 项目链接

PSP 表

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

设计及实现

通过结巴分词得到分词列表,利用 Python 的 Counter 计算词频后求两个文件词频的交集和并集,最后计算相似度。

这种方法虽然不准确,但是实现快啊。

性能改进

性能测试?不存在的!

简单测试

原文:今天是星期天,天气晴,今天晚上我要去看电影。
抄袭:今天是周天,天气晴朗,我晚上要去看电影。


测试结果

基于字频相似度: 75.00%
基于词频相似度: 50.00%


异常处理

  1. 命令行参数数量不正确
  2. 文件路径不存在
  3. 空白文件词频为 0