首页 > 编程语言 >个人项目:Java实现论文查重

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

时间:2023-09-13 09:56:54浏览次数:38  
标签:查重 Java 论文 50 60 https com

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无法获得关键字的情况
测试结果:

标签:查重,Java,论文,50,60,https,com
From: https://www.cnblogs.com/huang-jiajun/p/17697795.html

相关文章

  • java consumer接口
    参考:https://blog.csdn.net/weixin_44230693/article/details/113847162consuemrvoidaccept(Tt):对给定的参数执行此操作。defaultConsumerandThen(Consumerafter):返回一个组合的Consumer,依次执行操作,然后执行after操作。Consumer接口也称为消费型接口,它消费的数据的数据......
  • java supplier接口
    参考:https://blog.csdn.net/m0_61366135/article/details/130557475函数式接口概述有且仅有一个抽象方法的接口Java中的函数式编程体现就是Lambda表达式所以函数式接口即可以适用于Lambda使用的接口supplierJava中的Supplier接口是一个函数式接口,它不需要任何参数输入......
  • java序列化与反序列化
    理解Java序列化和反序列化serialization(序列化):将java对象以一连串的字节保存在磁盘文件中的过程,也可以说是保存java对象状态的过程。序列化可以将数据永久保存在磁盘上(通常保存在文件中)。deserialization(反序列化):将保存在磁盘文件中的java字节码重新转换成java对象称为反......
  • 买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队
    引言《双色球头奖概率与被雷劈中的概率哪个高?》《3人轮流射击,枪法最差的反而更容易活下来?》让我们用Java来探索ta们!悖论1:著名的三门问题规则描述:你正在参加一个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择了一道门,假设是一号门,然后......
  • java获得音频比特率
    <dependency> <groupId>it.sauronsoftware</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> </dependency>maven下载不成功的话,可以手动下载,下载地址:http://www.sauronsoftware.it/projects/ja......
  • JavaSE(IDEA)
    JavaSE(IDEA)publicclassMain{publicstaticvoidmain(String[]args){//单行注释////输出一个Hello,WorldSystem.out.println("Helloworld!");}}//多行注释/*注释*//*我是多行注释可以注释一段文字*/......
  • Java 基本类型和包装类
    Java是基于对象的,所以我们都需要以对象的想法来进行思维。但Java又提供了8个基本类型,这8个基本类型基本上都和数字有关,是直接可以使用的类型。 基本类型大小包装器类型boolean/Booleanchar16bitCharacterbyte8bitByteshort16bitShortint32......
  • Java中Comparable与Comparator的区别
    Java中的Comparable和Comparator都是比较有用的集合排序接口,但是这俩接口使用却有着明显区别,具体使用哪一个接口,今天我们来一起了解下。Comparable接口Comparable是一个排序接口,位于java.lang包下面,实现该接口的类就可以进行自然排序。先看下Comparable接口的定义:pa......
  • Java学习_005 if语句:奇偶数的判定
    需求:任意给出一个整数,使用程序判定该整数是奇数还是偶数,并在控制台输出。1importjava.util.Scanner;23publicclassMain{4publicstaticvoidmain(String[]args){5Scannersc=newScanner(System.in);6System.out.println("please......
  • java继承
    继承与合成基本概念继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。合成:在新类里创建原有的对象称为合成。这种方式可以重复利用现有的代码而不更改它的形式。1.继承的语法关键字e......