首页 > 其他分享 >软件工程-论文查重系统

软件工程-论文查重系统

时间:2023-09-17 12:11:54浏览次数:34  
标签:查重 10 30 20 String 论文 ts 软件工程 new

论文查重系统

软件工程 所在班级
作业要求 [要求]((个人项目 - 作业 - 计科21级12班 - 班级博客 - 博客园 (cnblogs.com)))
作业目标 论文查重系统,并优化代码,了解项目开发流程

GitHub仓库地址

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

设计与实现

流程图

image.png

结构

image

主要函数
分词-提取关键字

    public static List<String> getString(String data,boolean useSmart) {
        List<String> result=new ArrayList();
        try {
            //创建分词对象 true则按照最大长度划分,false则划分出所有可以划分的词
            Analyzer anal = new IKAnalyzer(useSmart);
            StringReader reader = new StringReader(data);
            //记录分词数据
            TokenStream ts = anal.tokenStream("", reader);
            CharTermAttribute term = ts.getAttribute(CharTermAttribute.class);
            //遍历分词数据
            ts.reset();
            while (ts.incrementToken()) {
                result.add(term.toString());
            }
            ts.close();
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            return result;
        }
    }

获取simHash

public static String getSimHash(String date){
    //用数组表示特征向量,取128位,从0位开始表示从高位到低位
    int[] arr = new int[128];
    List<String> Ikstring = ikF.getString(date, false);
    int size = Ikstring.size();
    int i=0;
    for (String s : Ikstring) {
        //获取hash值
        String hash = getHash(s);
        if(hash.length()<128){
            int num=128-hash.length();
            for(int j=0;j<num;j++){
                hash+="0";
            }
        }
        //加权合并
        for(int j=0;j<arr.length;j++){
            if(hash.charAt(j)=='1'){
                //权重分10级,由词频从高到低,取权重10~0
                arr[j] += (10 - (i / (size / 10)));
            }else{
                arr[j] -= (10 - (i / (size / 10)));
            }
        }
        i++;
    }
    //降维
    StringBuilder sb=new StringBuilder();
    for(int j=0;j<arr.length;j++){
        if(arr[j]<=0){
            sb.append("0");
        }else{
            sb.append("1");
        }
    }
    return sb.toString();
}

运行结果

image

image

单元测试

image.png

image.png
image.png

异常处理

文件类型不正确则抛出异常

image.png

性能分析

image

标签:查重,10,30,20,String,论文,ts,软件工程,new
From: https://www.cnblogs.com/xieht/p/17708194.html

相关文章

  • 个人项目:论文查重
    个人项目作业属于哪个课程软件工程作业要求作业要求github地址作业github地址PSPPSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划209·Estimate·估计这个任务需要多少时间209Development开发19017......
  • C++实现论文查重
    软件工程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014作业要求根据给出的样例进行查重,并把结果记录在PSP表格中作业目的对查重有一定的初步了解GitHub链接https://github.com/xingch123456789/3119000414PSP表格PSP2.1Person......
  • 论文解读(FixMatch)《FixMatch: Simplifying Semi-Supervised Learning with Consistenc
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:FixMatch:SimplifyingSemi-SupervisedLearningwithConsistencyandConfidence论文作者:论文来源:2020aRxiv论文地址:download 论文代码:download视屏讲解:click1-介绍 动机:解决现有半监督方法利用未标记......
  • c++论文查重
    github连接这个作业属于哪个课程软件工程这个作业要求在哪里在这里这个作业的目标了解PSP,写一个论文查重程序,使用github管理项目PSP表PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划2020Estimate估计这个任......
  • 个人项目:Python实现简易论文查重
    这个作业属于哪个课程软件工程这个作业要求在哪里个人项目这个作业的目标个人项目,实现论文查重功能本项目上传至个人GitHub:yulinnn/3121004802项目需求题目:论文查重描述如下:设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论......
  • [论文速览] SDXL@ Improving Latent Diffusion Models for High-Resolution Image Syn
    Pretitle:SDXL:ImprovingLatentDiffusionModelsforHigh-ResolutionImageSynthesisaccepted:arXiv2023paper:https://arxiv.org/abs/2307.01952code:https://github.com/Stability-AI/generative-models关键词:imagesynthesis,stablediffusion,SDXL,AICG......
  • 软件工程-个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade21-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade21-34/homework/13023这个作业的目标完成一个论文查重系统github链接https://github.com/SoyoOfficial/SoyoOfficial......
  • 个人项目:论文查重
    1.项目地址Nurali524/3121004877(github.com)2.PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)·Planning计划4030·Estimate估计这个任务需要多少时间510·Development开发200250·Analysis需求分析(包括学习新技术......
  • 软件工程--个人项目
    软件工程个人项目1.作业概述这个作业属于哪个课程软件工程这个作业的要求在哪里个人项目这个作业的目标设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率Github链接链接2.需求分析题......
  • 2023软件工程02---2023021858刘毅
    最想学习的技术:kafka以下学习内容是我结合Kafka官方文档总结下来的技术学习文档入门阶段:入门书籍和网络资源:书籍:《Kafka权威指南》(Confluent团队编写)。官方网站:ApacheKafka。基础知识:了解Kafka的基本概念,如Producer、Consumer、Topic、Partition、Broker等。安装和......