论文查重

这个作业属于哪个课程 计科国际班软工
这个作业要求在哪里 要求
这个作业的目标 论文查重程序

1.GitHub地址:(https://github.com/L-Cc26/3119009428)
2.PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 0.25 0.167
Estimate 估计这个任务需要多少时间 0.25 0.154
Development 开发 72 75
Analysis 需求分析 (包括学习新技术) 48 50
Design Spec 生成设计文档 2 3
Design Review 设计复审 1 2
Coding Standard 代码规范 (为目前的开发制定合适的规范) 1 2
Design 具体设计 3 4
Coding 具体编码 12 12
Code Review 代码复审 2 2
Test 测试(自我测试,修改代码,提交修改) 3 1
Reporting 报告 2.5 2.5
Test Repor 测试报告 0.5 0.5
Size Measurement 计算工作量 1 1.5
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 1 1
Sum up 合计 75 82.541

3.计算模块接口的设计与实现过程:
流程图
论文查重
通过查找网上的资料,找到解决查重的关键算法,利用TF-IDF与余弦相似性的应用,主要说的是离用余弦相似性来比较两个句子的相似性,
我们这里同样可以运用到文章上面,主要是用位置向量分析每个词全文的分布,从而分析两篇文章的相似度。用到的是hanlp分词。
然后遍历存放着词与词频信息的map,计算cos值。最后比对得出答案。
文件读写类,分词与计算类,异常类分别如下
论文查重
引用了里面的FileReader,然后对异常进行了封装
论文查重
引入了TokenizerEngine,并通过hankcs当作引擎来进行分词处理。
论文查重
4.部分代码展示与测试:
测试分别从两个完全相同的文件和完全不同的文件,到5个测试用例去测试。
同时也测试了假如文件路径有问题和文件为空,也考虑到了各种异常的情况。
论文查重
论文查重
论文查重
覆盖率:
论文查重
论文查重
总方法覆盖率为77%,line覆盖率达到了93%
结果:
orig_0.8_add.txt 0.8695990639733713
orig_0.8_del.txt 0.7498838191640381
orig_0.8_dis_1.txt 0.9206491294709916
orig_0.8_dis_10.txt 0.804067893296461
orig_0.8_dis_15.txt 0.6575365154781483
5.计算模块接口部分的性能
论文查重
论文查重
速度很快就完成了测试3s。
反思:可以优化的地方还有很多,比如简化输入路径,如输入名字即可找到文件,加快程序总运行速度。
还有一个问题,假如有两个句子,遍历只遍历到了第一个句子有的词。第二个句子有的词但第一个句子没有的词,并不会加入到计算中。
这样是采用位置向量的缺陷,以后可以改进。

上一篇:homedrew安装下载极慢的处理方法


下一篇:Homebrew安装软件慢的解决办法