工程概论第二次作业

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.模块接口的设计与实现

img

3.1.1 FileInput类

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

3.1.2 main类

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

3.1.3 SimHash类

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

3.2 流程图

img

posted @ 2023-09-20 17:28  ylinq  阅读(40)  评论(0)    收藏  举报