个人项目:Java实现论文查重

Github地址:https://github.com/SLkHs/3121004696
Java实现简易论文查重

软件工程 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12
作业要求 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014
作业目标 实现个人项目:论文查重

PSP

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

开发前的准备:

1.核心算法:
simhash+海明距离
2.类的设计:
main 方法所在的类
HammingUtils:计算海明距离的类
SimHashUtils:计算 SimHash 值的类
TxtIOUtils:读写 txt 文件的工具类
ShortStringException:处理文本内容过短的异常类
3.main 方法的主要流程:
1.从命令行输入的路径名读取对应的文件,将文件的内容转化为对应的字符串
2.由字符串得出对应的 simHash值
3.由 simHash值求出相似度
4.把相似度写入最后的结果文件中
5.退出程序

开发流程:

1.Maven项目搭建:

2.配置pom文件:

3.编写实现类:

4.编写测试类:

测试:

1.TxtIOUtilsTest:

2.SimHashUtilsTest:

3.HammingUtilsTest:

4.MainTest:

生成的文档:

性能分析:



从分析图可以看出调用最多的是外部包提供的接口,改进的空间是运用更好的算法

异常处理:


创建异常类:ShortStringException来处理当文本长度过短时HanLp无法获得关键字的情况
测试结果:

posted @ 2023-09-13 09:45  ab***c  阅读(147)  评论(0编辑  收藏  举报