个人项目:论文查重

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146
这个作业的目标 实现论文查重算法,学会使用PSP表格估计,学会 Git commit 规范,学会单元测试

1. Github仓库

https://github.com/graceon/checkArticle

2. PSP表格

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

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

  • CommandParse创建Article对象加载原始论文和待检测论文,并使用ArticleCompare.compare进行比较
  • 论文特征在Article构造函数中计算过程
    • 将文章中所有可能存在的双字词的hash值作为特征保存到排序集合中
  • ArticleCompare.compare
    • 由于特征是以整数形式从小到大排序存储到集合中的,采用双指针法,计算2个整数集合共同元素的个数

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


占用时间最多函数展示

      public Article(String pathname) throws IOException, ZeroFeature {
      //省略大部分初始化代码
            while ((line = reader.readLine()) != null) {
                //使用正则表达式分割这一行,分割这一行的短句
                String[] subSentence=line.split(splitSymbol);
                //逐个短句分析
                for(String word:subSentence){
                    //每2个汉字作为双字词
                    for (int i = 0; i < word.length()-1; i++) {
                        //获取双字词的Hash值作为,添加到特征集合sortedHashFeature中
                        int hash = word.substring(i, i + 2).hashCode();
                        sortedHashFeature.add(hash);
                    }
                }
            }
      }

分析可得Article构造函数中计算特征的过程占用时间最多,并且使用正则表达式分割逗号句号和分割双字词使用时间较多。
但都是 Java 语言自带方法优化难度较大。

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

单元测试的测试覆盖率截图

命令行输入参数不足

测试非抄袭文件查重率

测试正常功能


测试无法提取特征异常

测试输入文件错误

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

Article.ZeroFeature当Article初始化时不能读取到双字词,无法添加特征时抛出

IOException当读取文件和写入文件失败时抛出

posted @ 2020-09-20 00:03  3598760974  阅读(684)  评论(6编辑  收藏  举报