首页 > 其他分享 >个人项目:查重系统

个人项目:查重系统

时间:2024-03-12 23:11:07浏览次数:31  
标签:查重 String 个人 系统 new preprocess import public paperContent

作业所属班级 软件工程2024
作业要求 查重系统
作业目标 实现论文查重

该项目的GitHub仓库链接
本系统采用scanner输入器输入文本路径和查重文本路径,最后控制台输出查重率

PSP表格

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

思路
打算先从目标文本中读取文件,将文件转换为字符串类型存储在List中,最后在通过算法实现查重比对

1.接口设计

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileToString {

    public String fileToString(String File) throws IOException {


        String paperContent = FileUtils.readFileToString(new File(File), "UTF-8");
        return paperContent;
    }
}
通过此方法输入两个文本路径
 public String preprocess(String content) {
        // TODO: 实现论文内容的预处理操作
        return  return content.replaceAll("[\\p{Punct}]", "");
    }

通过此方法接收文本,并且采用正则表达式进行去除标点符号的操作

点击查看代码
 public double calculateSimilarity(String paperContent, String databaseContent) {
        JaccardSimilarity js=new JaccardSimilarity();
        return js.apply(paperContent, databaseContent);
    }
使用余弦相似度计算相似度分数
点击查看代码
 public static void main(String[] args) {
        try {
            // 读取待检测的论文内容
            String paperContent = FileUtils.readFileToString(new File("C:/Users/86157/Desktop/orig.txt"), "UTF-8");

            // 读取数据库中的论文内容
            String databaseContent = FileUtils.readFileToString(new File("C:/Users/86157/Desktop/orig_0.8_add.txt"), "UTF-8");

            // 预处理论文内容(例如去除标点符号、停用词等)
            String processedPaperContent = preprocess(paperContent);
            String processedDatabaseContent = preprocess(databaseContent);

            // 计算相似度
            double similarityScore = calculateSimilarity(processedPaperContent, processedDatabaseContent);

            System.out.println(similarityScore);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
最后用主函数开始测试,并用try,catch抓取读取文本地址的异常

2.单元测试

点击查看代码
ackage com.example.demo;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class calculateSimilarityTest {
    private calculateSimilarity CalculateSimilarity=new calculateSimilarity();

    @Test
    public void testCalculateSimilarity(){
        double a=CalculateSimilarity.CalculateSimilarity("fadukhu","vihauhkl");
        System.out.println(a);
    }
}
点击查看代码
package com.example.demo;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class preprocessTest {
    private preprocess pr=new preprocess();

    @Test
    public void testpreprocess(){
        String a=pr.preprocess("GAFILHJ,VIUDALJ...");
        System.out.println(a);
    }

}
点击查看代码
import java.io.IOException;
import java.util.Scanner;

import com.example.demo.calculateSimilarity;
import com.example.demo.preprocess;


public class search {
    public static void main(String[] args) {
        try {
            // 读取待检测的论文内容
            System.out.println("请输入文件路径");
            Scanner sc=new Scanner(System.in);
            String paperContents= sc.next();

            System.out.println("请输入查重文件路径");
            String databaseContents=sc.next();

            FileToString file=new FileToString();

            String paperContent=file.fileToString(paperContents);
            String databaseContent= file.fileToString(databaseContents);
            // 读取数据库中的论文内容


            preprocess Preprocess = new preprocess();
            calculateSimilarity CalculateSimilarity=new calculateSimilarity();
            // 预处理论文内容(例如去除标点符号、停用词等)
            String processedPaperContent = Preprocess.preprocess(paperContent);
            String processedDatabaseContent = Preprocess.preprocess(databaseContent);

            // 计算相似度
            double similarityScore = CalculateSimilarity.CalculateSimilarity(processedPaperContent, processedDatabaseContent);

            System.out.println(similarityScore);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
总代码

3.异常处理
主要异常来源于文件读取,用throw抛出异常。且输入文件路径的格式出错时也会报错

标签:查重,String,个人,系统,new,preprocess,import,public,paperContent
From: https://www.cnblogs.com/erjeor/p/18068448

相关文章

  • 基于springboot的社区志愿者信息活动管理系统【源码论文】
      博主介绍:......
  • 基于springboot的贫困地区儿童资助捐款捐物系统【源码论文】
      博主介绍:......
  • 老虎/TiggerRamDisk注册/下载/官网 绕过激活锁,屏幕锁隐藏工具,支持最新iOS17系统
    支持的版本:iOS12.0~17.3支持的型号:iPhone66s、6sp、SE、7、7P、8、8P、XiPadAir2WiFi(A1566)iPadAir24G(A1567)iPadMini4WiFi(A1538)iPadMini44G(A1550)iPad52017WiFi(A1822)iPad520174G(A1823)iPad62018WiFi(A1893)iPad620184G......
  • JAVA系统源码中的AI智能绘画生成技术揭秘
    在数字化时代,人工智能(AI)已经逐渐渗透到我们生活的方方面面,从智能语音助手到自动驾驶汽车,无不体现出AI技术的强大魅力。而在艺术领域,AI同样展现出了惊人的创造力。近期,一项融入JAVA系统源码的AI智能绘画生成技术引起了广泛关注。这项技术究竟有何神奇之处?让我们一起来揭秘。一......
  • 基于协同过滤的旅游推荐系统设计与实现
    1绪论1.1研究背景及意义1.2国内外研究现状1.3研究目标与意义1.4主要研究工作2相关理论介绍2.1HTML与JavaScript2.2MySQL数据库2.3协同过滤算法简介3系统分析与设计3.1系统需求分析3.1.1功能性需求3.1.2安全性需求3.2系统总体架构3.3功能模块设计3......
  • 基于单片机的定时温控系统的设计
    摘 要在集成电路技术越来越成熟的情况下单片机的发展也有了翻天覆地的变化。单片机制造初期,需要的成本十分高昂,并且制作工序也是相当的繁杂。但是伴随时间的推移,电子技术经过不断革新,才使今天的单片机性价比变得更高,功能更强。如果这个系统还具有定时功能,它可以解决实际应用......
  • 采用Java实现论文查重
    这个作业属于哪个课程<软件工程2024(广东工业大学)>这个作业要求在哪里<个人项目>这个作业的目标<熟悉个人软件开发流程、熟悉各类工具的使用,学会用PSPG进行项目规划评估程序质量并优化程序>Gitee链接:https://github.com/jueshishuaimengou/yh/tree/main/3122......
  • 个人项目
    个人项目:论文查重这个作业属于哪个课程课程链接这个作业要求在哪里作业要求链接这个作业的目标完成个人项目并上传至GitHubGitHub地址:https://github.com/YoungBYe/YoungBYePSP表PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)......
  • 操作系统实验——进程通信(共享存储区通信)实验
    一、实验目的:了解和熟悉共享存储机制   实验内容:编制一长度为1k的共享存储区发送和接收的程序。三、实验步骤及结果://把实验运行过程和相关代码,或者实验结果等截图拷贝过来1、了解共享存储区的机制共享存储区(ShareMemory)是UNIX系统中通信速度最高的一种......
  • linuxOPS基础_Linux系统的文件目录结构及用途
    linux系统文件目录结构Linux系统不同于Windows,没有C盘、D盘、E盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。在Linux根目录(/)下包含很多的子目录,称为一级目录。​例如bin、boot、dev等。​同时,各一级目录下还含有......