第一次个人编程作业
个人项目
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146 |
这个作业的目标 | 使用 java、C 或 python 编程语言开发论文查重功能,测试代码性能和覆盖率,并学会用 PSP 表格记录开发过程 |
github 仓库
PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 80 |
· Estimate | · 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | 600 | 560 |
· Analysis | · 需求分析 (包括学习新技术) | 40 | 40 |
· Design Spec | · 生成设计文档 | 30 | 40 |
· Design Review | · 设计复审 | 20 | 15 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 10 |
· Design | · 具体设计 | 40 | 40 |
· Coding | · 具体编码 | 200 | 200 |
· Code Review | · 代码复审 | 30 | 20 |
· Test | · 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 80 | 80 |
· Test Repor | · 测试报告 | 20 | 20 |
· Size Measurement | · 计算工作量 | 20 | 15 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 25 |
合计 | 1240 | 1215 |
计算模块接口的设计与实现过程
设计思路
- 从文档中读取文本内容
- 使用 jieba 将文本内容进行分词
- 计算各个文本的词频和逆文本频率
- 通过余弦向量计算文本相似度
实现过程
计算模块部分单元测试展示
单元测试代码
@Test
public void testParticiple() throws IOException {
String content = "我喜欢软工这门课,它让我学到了很多";
String[] res = check_paper.participle(content);
for (String word : res) {
System.out.println(word);
}
}
测试分词函数:随意输入一段文本,该函数会将文本内容进行划分,提取出关键词汇。
@Test
public void testWordFreq() throws IOException {
String[] content = {"喜欢", "软工", "这门", "课", "让我", "学到了", "很多"};
Map<Object, Object> res = check_paper.wordFreq(content);
System.out.println(res);
}
测试词频函数:将分词后的数据传入该函数,计算出该关键词的词频。
@Test
public void testMain() throws IOException {
String[] paths = {
"D:\\IDEA\\check_paper\\src\\paper\\orig.txt",
"D:\\IDEA\\check_paper\\src\\paper\\orig_0.8_add.txt",
"D:\\IDEA\\check_paper\\src\\paper\\result.txt"
};
check_paper.main(paths);
}
测试主函数:获取两个文本后进行分词,计算关键词的词频,再计算tfidf,最后得出词向量获取文本相似度。
测试抄袭文本
原文路径:D:\IDEA\check_paper\src\paper\orig.txt 抄袭论文路径:D:\IDEA\check_paper\src\paper\orig_0.8_add.txt
查重率:0.93
原文路径:D:\IDEA\check_paper\src\paper\orig.txt 抄袭论文路径:D:\IDEA\check_paper\src\paper\orig_0.8_del.txt
查重率:0.98
原文路径:D:\IDEA\check_paper\src\paper\orig.txt 抄袭论文路径:D:\IDEA\check_paper\src\paper\orig_0.8_dis_1.txt
查重率:0.98
原文路径:D:\IDEA\check_paper\src\paper\orig.txt 抄袭论文路径:D:\IDEA\check_paper\src\paper\orig_0.8_dis_10.txt
查重率0.93
原文路径:D:\IDEA\check_paper\src\paper\orig.txt 抄袭论文路径:D:\IDEA\check_paper\src\paper\orig_0.8_dis_15.txt
查重率:0.83
计算模块接口部分的性能改进
性能测试
计算模块部分异常处理说明
论文路径出错:要求重新输入