工程概论第二次作业
Github链接
链接
作业要求
| 工程概论 | 班级链接 |
|---|---|
| 作业要求 | 要求的链接 |
| 作业目标 | 了解如何在github里上传本地文件,测试性能 |
二、需求
题目:论文查重
描述如下:
设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。
原文示例:今天是星期天,天气晴,今天晚上我要去看电影。
抄袭版示例:今天是周天,天气晴朗,我晚上要去看电影。
要求输入输出采用文件输入输出,规范如下:
从命令行参数给出:论文原文的文件的绝对路径。
从命令行参数给出:抄袭版论文的文件的绝对路径。
从命令行参数给出:输出的答案文件的绝对路径。
我们提供一份样例,课堂上下发,上传到班级群,使用方法是:orig.txt是原文,其他orig_add.txt等均为抄袭版论文。
注意:答案文件中输出的答案为浮点型,精确到小数点后两位
PSP表
| PSP2.1 | Personal Software Process | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 10 | 10 |
| · Estimate | · 估计这个任务需要多少时间 | 5 | 5 |
| Development | 开发 | 770 | 700 |
| · Analysis | · 需求分析 (包括学习新技术) | 210 | 180 |
| · Design Spec | · 生成设计文档 | 50 | 30 |
| · Design Review | · 设计复审 | 10 | 10 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| · Design | · 具体设计 | 30 | 20 |
| · Coding | · 具体编码 | 180 | 180 |
| · Code Review | · 代码复审 | 60 | 30 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 90 | 120 |
| Reporting | 报告 | 60 | 60 |
| · Test Report | · 测试报告 | 20 | 20 |
| · Size Measurement | · 计算工作量 | 20 | 10 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20 | 20 |
| · 合计 | 785 | 715 |
2需求
题目:论文查重
描述如下:
设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。
3.模块接口的设计与实现

3.1.1 FileInput类
作用:读取文本内容
类方法:readString

3.1.2 main类
运用包内定义的类方法,实现对文本的读取,分词,hash,加权,合并,降维以及计算汉明距离,通过距离最终得到相似度

3.1.3 SimHash类
主要类方法:simhHash,hash,hammingDistance,getDistance,subByDistance
其中simHash实现SimHash算法,hash实现对特征向量的hash,hammingDistance实现加权,getDistance实现合并与降维,subByDistance实现分组检查

3.2 流程图


浙公网安备 33010602011771号