软工作业2 : 论文查重

 

 

 
这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12
作业要求 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014
作业目标

学习并利用知识,完成个人项目作业以此提高能力。

Github仓库地址:

PSP表

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 30

 40

· Estimate

· 估计这个任务需要多少时间

30

50

Development

开发

 500

 580

· Analysis

· 需求分析 (包括学习新技术)

 90

 120

· Design Spec

· 生成设计文档

 30

 15

· Design Review

· 设计复审

 30

 40

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 20

 25

· Design

· 具体设计

 60

 80

· Coding

· 具体编码

 120

 150

· Code Review

· 代码复审

 50

 60

· Test

· 测试(自我测试,修改代码,提交修改)

 30

 50

Reporting

报告

 30

 25

· Test Repor

· 测试报告

 20

 10

· Size Measurement

· 计算工作量

 10

 10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 10

 10

 

· 合计

 1060

 

 1260

 

环境

idea

 

需求分析

设计查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。

 

总体实现

 

1.读写txt文件(原论文与抄袭版论文)

2.运用simhash+海明距离算法计算文本相似度

3.将相似度以浮点型(精确到小数点后两位)输入到答案文件中

4.异常处理

  • hash:计算关键词的Hash值

  • hammingDistance:对两个文档的simhash值每一位进行异或运算,计算海明距离

  • getSemblance:利用海明距离计算重复率

  • readString:文件读取

流程图

模块设计:

1.利用Hanlp分词
2.将每一个分词hash为一组固定长度的数列
3.建立一个长度为128的整数数组
4.最后对数组进行判断,大于0的记为1,小于等于0的记为0,得到一个128位的simhash值

 

性能检测

 

 

 

 

 

posted on 2023-09-17 22:09  伊尔凡  阅读(32)  评论(0)    收藏  举报

导航