# HomeworkSimilarity **Repository Path**: iczeng/HomeworkSimilarity ## Basic Information - **Project Name**: HomeworkSimilarity - **Description**: 本地作业查重系统。对本地某一目录下所有word文档和txt文档进行两两之间的相似度计算。图片相似度采用PHash算法,文字相似度采用jaccard相似度和余弦相似度结合进行计算。程序已经生成了32位和64位exe文件,直接解压后选择作业查重x32和作业查重x64文件夹即可运行(下载链接:链接: https://pan.baidu.com/s/1PA1x786sXzsr0J4cJI5z-A 提取码: - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-12-07 - **Last Updated**: 2023-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HomeworkSimilarity ## 项目描述: 本地作业查重系统。程序入口文件为src/main/java/pers.hdq.ui包中的UIhdq.java 文件。这是一个图形化界面。 ![img.png](界面.png) 实现对本地某一目录下所有word文档和txt文档进行相似度计算。并将完整结果简略结果以及抄袭名单输出为excel文件。 图片相似度采用PHash算法,文字相似度采用jaccard相似度和余弦相似度结合进行计算。查重模式暂有2种: > ①模式1:所选目录所有文档(含子目录中的文档)两两比较; > >②模式2:要求所选目录中必须有一个"今年"文件夹存今年的文档; 一个"往年"文件夹存往年的文档; > 今年文档两两比较,然后再将今年文档与往年文档分别比较;相比模式1减少了往年文档互相比较的过程,速度可提升60%. > > 不进行图片相似度比较,多线程模式;200个16000字的今年文档和800个16000字的往年文档比较;耗时22秒;两两比较模式下则耗时60秒 **程序已经生成了32位和64位exe文件**,直接解压后选择作业查重x32和作业查重x64文件夹即可运行(下载链接:链接: https://pan.baidu.com/s/1PA1x786sXzsr0J4cJI5z-A 提取码: umfm)。 ![img.png](exe文件说明.png) 详细图文说明,在上面的百度网盘链接中(为2019年初版文档),PPT初步了解,文档3,4章详细介绍系统设计和实现。后续更新均在下方版本更新记录中 **release分支为最新分支**,已合并dev1.0.3分支; **如果对您参考价值;麻烦点亮star小星星鼓励一下作者吧** > github地址:https://github.com/luoyeqga/HomeworkSimilarity > > gitee地址:https://gitee.com/luoyeqga/HomeworkSimilarity ## 开发环境信息: > 1.使用maven导入依赖;详细版本参考pom.xml文件; > > 2.基于JDK1.8开发 > > 3.使用了idea的lombok插件;其他eclipse等用户需要自行百度安装lombok 或者手动为 model目录下的实体类的属性创建get/set/方法 ### 提示: 查询多个大文本时,请在jvm启动参数中调大内存限制 -Xmx4096m -Xms1024m (具体数值依据电脑配置/文档字数/文档数量等决定) ## 版本变更记录: ### dev1.0.3 更新时间2022-06-21 > 1.新增WordUtil工具类批量生成大文档;以便开发者测试用 > > 2.新增多线程读取文件和多线程比较的逻辑;线程池corePoolSize和maximumPoolSize由代码读取到的CPU核数决定;待执行任务的队列由文本量决定 > > 3.简化打印信息,每个文档输出一次;而不是每次比较输出一次 > > 4.增加线程模式;用户自行选择单线程还是多线程 ### dev1.0.2 更新时间2022-06-15 > 1.将ik停止词由读取文件变为set初始化,提高效率 > > 2.删除冗余代码 > > 3.新增查重模式,模式1即所选目录所有文档两两比较;模式2要求所选目录中必须有一个"今年"文件夹存今年的文档,一个"往年"文件夹存往年的文档;今年文档两两比较,然后再将今年文档与往年文档分别比较;减少往年文档互相比较的过程. ### dev1.0.1 更新时间2022-06-14 > 1.本次重构文件处理流程,每个文件只打开一次,效率极大提高(1000个文档从1个小时提高到1分钟不到) > > 2.当详细结果超过20万时,详细结果不导出到excel中 > > 3.当某个文档和其他文档最大相似度有多个时,简略结果只保留这个文档的10个最相似文档 ### dev1.0.0 更新时间2022-06-13 > 1.本次将导出excel的方法换成阿里easyExcel库,效率极大提高(150万行数据很快便导出完成)