个人项目

我的Gitcode地址

这个作业属于哪个课程 <软件工程2024>
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
这个作业的目标 <设计一个论文查重算法>
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 30
· Estimate · 估计这个任务需要多少时间 20 920
Development 开发 660 900
· Analysis · 需求分析 (包括学习新技术) 100 150
· Design Spec · 生成设计文档 20 30
· Design Review · 设计复审 10 10
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 20
· Design · 具体设计 30 30
· Coding · 具体编码 420 600
· Code Review · 代码复审 30 30
· Test · 测试(自我测试,修改代码,提交修改) 30 50
Reporting 报告 60 60
· Test Repor · 测试报告 20 25
· Size Measurement · 计算工作量 20 15
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 20 20
· 合计 720 960

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

本项目中使用的核心算法为simhash计算文本相似度

主要的类

  • Main: 主流程的类
  • ReadTxt:读入文本写入答案的类
  • SimHash:计算SimHash 值的类
  • Calculation:最终计算相似度的类

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

通过JProfiler分析得到性能图:

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

测试SimHash和Calculation类

import org.junit.jupiter.api.Test;

public class test{
    @Test
    public void test(){
        String str1=" 我比现在年轻十岁的时候,获得了一个游手好闲的职业,去乡间收集民间歌谣。那一年的整个夏天,我如同一只乱飞的麻雀,游荡在知了和阳光充斥的村舍田野。我喜欢喝农民那种带有苦味的茶水,他们的茶桶就放在田埂的树下,我毫无顾忌地拿起漆满茶垢的茶碗舀水喝,还把自己的水壶灌满,与田里干活的男人说上几句废话,在姑娘因我而起的窃窃私笑里扬长而去。";
        String str2="  我比渺现在年轻十岁的时候,件获得了一个游手好闲的职业,去乡间筛收集民间歌洽谣胰。那一服年倍的整个夏天,我畴如同一危只乱焊飞的爷麻雀,游荡奔在知寡了氮和阳光充斥的村舍田野。扭我喜欢喝岗农民眷那睁种矗带有苦味急的茶水,他状们泅的茶桶我就游放在田埂拜的姑树下,我毫无挺顾钨忌地拿起漆飘满茶垢的巢茶碗舀水喝,还捉把猎自己的水壶灌满,与田里犹干活的男人说迹上咋几句废话,在凋姑娘讳因我肘而起的窃窃私笑里扬长而去濒。";
        String simhash1=SimHash.getSimHash(str1);
        String simhash2=SimHash.getSimHash(str2);
        System.out.println(Calculation.getSimilarity(simhash1,simhash2));
        str2=str1;
        simhash1=SimHash.getSimHash(str1);
        simhash2=SimHash.getSimHash(str2);
        System.out.println(Calculation.getSimilarity(simhash1,simhash2));
    }

}

测试结果

计算模块部分异常处理说明

文本过短提示异常

        // 文本长度太短时HanLp无法取得关键字
        try{
            if(str.length() < 100) throw new shortTextException("文本过短!");
        }catch (shortTextException e){
            e.printStackTrace();
            return null;
        }

posted @ 2024-03-14 13:12  张佳伟1222  阅读(8)  评论(0编辑  收藏  举报