论文查重程序 v1.0
学号 3124004450,《软件工程》个人作业。
运行环境
- JDK 8 及以上(64 位)
- 无需任何第三方依赖,下载后可直接运行
使用方法
java -jar main.jar <原文文件> <抄袭版论文文件> <答案文件>
三个参数均为绝对路径且不能包含空格,例如:
java -jar main.jar C:\tests\orig.txt C:\tests\orig_add.txt C:\tests\ans.txt
答案文件中会写入一个保留两位小数的浮点数(例如 0.88)。
算法要点
- 文本规范化 + 两级分句 + 二元字组倒排索引
- 稀有字组优先的候选筛选,配合严格成立的上界剪枝
- 跨句边界补偿:单句未完全匹配时与相邻原文句合并再比
- 重复率 = 抄袭版中被判定重复的字符数 / 抄袭版特征字符总数
课堂下发测试文本的实测结果
原文 orig.txt(约 1.05 万字),Windows 10 + JDK 1.8.0_202:
| 抄袭版文件 | 重复率 | 耗时 |
|---|---|---|
| orig_0.8_add.txt | 0.82 | 335 ms |
| orig_0.8_del.txt | 0.97 | 144 ms |
| orig_0.8_dis_1.txt | 0.97 | 177 ms |
| orig_0.8_dis_10.txt | 0.85 | 168 ms |
| orig_0.8_dis_15.txt | 0.71 | 150 ms |
性能
| 文本规模 | 耗时 |
|---|---|
| 10 万字符 | 85 ms |
| 100 万字符 | 1 215 ms |
单元测试 53 个全部通过,行覆盖率 94.02%,分支覆盖率 87.79%。