github项目地址

作业要求

工程概论 班级链接
作业要求 作业的要求链接
作业的目标 熟悉查重代码

PSP表格

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

需求

语言 Java
目标 对输入的两个文件进行查重
输出 命令行显示,并存入文件
要求 根据余弦相似度算法计算出相似度,并存入文件

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

1.文本处理
使用空格分隔文本
2.获取特征向量
并用分隔后得到的单词,利用hashmap,将关键字作为key,计算value查出词频
3.计算余弦相似度
用两个向量的点积除以两个向量模的乘积
优缺点:
速度快,代码简单,但由于无法分割中文词语,只能查重英语论文

接口的设计

image
main函数为主函数,calculate为计算余弦相似度函数,createword进行计算词频,read为读取文本,write为写入文本

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

性能改进的思路为优化正则表达式,以此能识别更多种类的论文
(消耗最大)读取文件内容使用时间:1ms(为读取文件函数read)
计算相似度使用时间:0ms
image

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

当用户输入错误的文件名,程序会抛出异常,进行报错
如图:
image

posted on 2023-09-20 13:30  yunqiyouxi  阅读(86)  评论(0编辑  收藏  举报