个人项目:论文查重

软件工程 19级网工(4)班
作业要求 作业链接
作业目标 熟悉个人项目开发流程 学会使用PSP表格 初步掌握Git 论文查重算法的实现 学会使用单元测试

 

 

 

 

 

 

 

 

github链接

一.PSP表格

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

计算模块接口的设计与实现过程


文本相似度实现思想SimHash

Paper_Check是项目的主类

FileIO是文档输入输出的工具类

Hamming_distance是计算海明距离的工具类

ShortStringException是异常处理的工具类

SimHashUtiles是计算分词哈希值的工具类


计算模块接口部分的性能改进

实时内存分析图

 

 


改进办法

从性能上分析,可以看到调用外部jar包的接口消耗性能最多,所以想提高性能就应该从外部接口入手,我找到了hanlp包的使用网址,把其中句法分析部分的模块删掉了,成功提高了接口的性能,和文字的处理速度。


计算模块部分单元测试展示


主类测试结果


结果文件



异常处理

1、设计与实现

当文本长度太短时,HanLp无法取得关键字,需要抛出异常。

1   try{
2             if(str.length() < 200) throw new ShortStringException("文本过短!");
3         }catch (ShortStringException e){
4             e.printStackTrace();
5             return null;
6         }

实现了一个处理这个异常的类:ShortStringException(继承了Exception)

1 public ShortStringException(String message) {
2         super(message);
3     }

2、测试

  • 测试结果:

 

 

 

 

 

 

 

posted @ 2021-09-19 22:35  拜合提亚尔  阅读(80)  评论(0)    收藏  举报