其他分享
首页 > 其他分享> > 个人项目:论文查重

个人项目:论文查重

作者:互联网

这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业要求的链接
这个作业的目标 实现论文查重算法,学会使用PSP表格估计,学会 Git commit 规范,学会单元测试
目录

1.Github仓库
2.PSP表格
3.计算模块接口的设计与实现过程
4.计算模块接口部分的性能改进
5.计算模块部分单元测试展示
6.计算模块部分异常处理说明

1.Github仓库

2.PSP表格

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

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

1.类型层次结构

2.算法的部分思想

由于此为小型项目,故在此处选择字为向量,虽然准确率降低,但速度提高不少。
注:虽然词更为准确,但分词却需要增加额外的复杂度

   每个字在章节中出现的次数,便是此字向量的值。现在我们假设:
   章节1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn;它们在章节中的个数为:Z1n1,Z1n2,Z1n3……Z1nm;
   章节2中出现的字为:Z2c1,Z2c2,Z2c3,Z2c4……Z2cn;它们在章节中的个数为:Z2n1,Z2n2,Z2n3……Z2nm;
   其中,Z1c1和Z2c1表示两个文本中同一个字,Z1n1和Z2n1是它们分别对应的个数,
   最后我们的相似度可以这么计算:

程序为了加快效率,有两个小特点:
1. 只将汉字作为向量,其他的如标点,数字等符号不处理;
2. 在HashMap中存放汉字和其在文本中对于的个数时,先将单个汉字通过GB2312编码转换成数字,再存放。
算法复杂度大致为:document1.length + document2.length。

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

JProfiler的性能分析图

由图可见本算法对char和String字符的使用较为频繁

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



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

空文本测试代码

打印结果

标签:查重,章节,30,个人,单元测试,论文,模块接口,计算,PSP
来源: https://www.cnblogs.com/moon-ang/p/13721887.html