第一次个人编程作业--论文查重
第一次个人编程作业-论文查重
| 这个作业属于哪个课程 | 计算2112工程概论 |
|---|---|
| 这个作业要求在哪里 | 个人项目 |
| 这个作业的目标 | 学会github的基础使用,学会论文查重算法,学会分析算法 |
作业要求
设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。
原文示例:今天是星期天,天气晴,今天晚上我要去看电影。
抄袭版示例:今天是周天,天气晴朗,我晚上要去看电影。
要求输入输出采用文件输入输出,规范如下:
从命令行参数给出:论文原文的文件的绝对路径。
从命令行参数给出:抄袭版论文的文件的绝对路径。
从命令行参数给出:输出的答案文件的绝对路径。
github文件夹地址
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 90 | 120 |
| · Estimate | · 估计这个任务需要多少时间 | 1120 | |
| Development | 开发 | 90 | |
| · Analysis | · 需求分析 (包括学习新技术) | 30 | |
| · Design Spec | · 生成设计文档 | 60 | |
| · Design Review | · 设计复审 | 30 | |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | |
| · Design | · 具体设计 | 60 | |
| · Coding | · 具体编码 | 360 | |
| · Code Review | · 代码复审 | 40 | |
| · Test | · 测试(自我测试,修改代码,提交修改) | 180 | |
| Reporting | 报告 | 180 | |
| · Test Repor | · 测试报告 | 40 | |
| · Size Measurement | · 计算工作量 | 30 | |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 90 | |
| · 合计 |
计算模块接口的设计与实现过程
算法思路
1.读取原文文件和抄袭版论文的文件。
2.对于原文文件和抄袭版论文的文件,分别进行如下处理:
- 将文件中的所有文本转换为小写字母。
- 去除所有的标点符号。
- 将文本按照句子进行分割。
3.对于原文和抄袭版论文,分别统计每个句子的字符数。
4.对于原文和抄袭版论文,分别计算它们之间的相似度。 - 计算相似度的方法可以采用余弦相似度或Jaccard相似度等。
- 计算相似度的过程中,需要将原文和抄袭版论文的句子按照相同的顺序进行比较。
5.计算原文和抄袭版论文的重复率。
6.重复率可以采用如下公式进行计算:重复率 = (抄袭版论文中与原文相似的句子数 / 抄袭版论文中的句子总数) * 100%
将计算得到的重复率写入答案文件中。
计算模块接口部分的性能改进
计算模块部分单元测试展示
计算模块部分异常处理说明

浙公网安备 33010602011771号