python实现⽂本查重系统_GitHub-fanghonantiplag:作业查重 antiplag 程序代码、⽂档、图⽚作业相似度检查软件 软件主要检查、⽐较学⽣提交的电⼦档作业之间的相似度,能对多种编程语⾔(如java、c/c++、python等)、多种格式(txt、doc、docx、pdf等)的中英⽂、简繁体⽂档之间的⽂本、多种格式(png、jpg、gif、bmp等)的图⽚相似度进⾏⽐较分析,输出相似度⾼的代码、⽂本、图⽚,进⽽辅助发现学⽣之间互相抄袭的⾏为。
需求
安装
直接下载或clone项⽬源代码版,或下载软件的发布版releases。
源代码版可以直接导⼊eclipse,主⼊⼝类是gui.plag.edu下的PlagGUI。
系统在window10,jdk11 64位下开发、运⾏。马铃薯曲奇
双联齿轮油泵使⽤
在发布版⼦⽬录下,双击run.bat批处理程序,就能启动程序。使⽤说明参见发布版⼦⽬录下的软件使⽤⽂档。程序主界⾯如下:
原理
系统采⽤的主要技术是字符串相似度⽐较算法、代码词法语法解析、⾃然语⾔处理(nlp)中的分词、图⽚相似度⽐较算法。
程序类⽂本的相似度⽐较基于3个开放系统:
⼀是基于⽹络服务的MOSS系统(斯坦福⼤学开放的⽀持多种编程语⾔代码相似度⽐较的系统);
⼆是本地执⾏的sim系统(⽀持java、c等语⾔的⽂本相似度⽐较)。
三是本地执⾏的jplag系统(⽀持java、c/c++、python等语⾔的⽂本相似度⽐较)。
本系统在它们基础上进⾏了⼆次开发和封装,针对moss系统,开发出了客户端存取模块,实现了代码⽂件提交、结果获取和解析、结果排序等功能;针对sim和jplag,则将其集成到系统中,在moss因⽹络故障等原因不可⽤时,可作为替代产品使⽤。
中英⽂⽂档作业相似度的⽐较提供了两种算法:
第⼀种是基于shinglecloud算法(⼀种基于⽂本指纹的、语⾔⽆关的相似度快速计算⽅法),⽂档主要处理过程如下:
使⽤tika读取不同格式(txt、doc、docx、pdf、html等)不同编码⽂件中的⽂本内容,并将其转换成能统⼀处理的⽂本;
使⽤hanlp对⽂本进⾏预处理、分词;
使⽤shinglecloud算法计算⽂本之间的相似度;
根据相似度排序,输出⽐较结果。
第⼆种是基于jplag的GST算法,对其功能进⾏了扩展,增加的“doc”语⾔类型,可以对各种⽂档进⾏相似度计算,并提供基于⽹页的可视化⽐对功能。
主要采⽤了图⽚phash指纹相似度⽐较算法。
参考⽂献:
TODO脚踩垃圾桶
将jplag整合进系统。已实现。
⽀持html,jsp⽂件代码的查重。
⽀持图⽚⽂件查重。已实现。
开发web版作业查重软件。已实现,请参考mooyyu
⽀持存储以往作业⽂档,⽀持基于数据库的作业查重。
加工pcb板
源于开源,还于开源,开源是美德,加星也是美德 。
应用系统集成更新情况
2019.12.1 使⽤hanlp作为分词组件,⽀持pdf、html⽂件⽂本的查重,修复若⼲bug,发布v2.8.6版。
2019.12.3 扩展jplag功能,提供“doc”语⾔类型,实现了对多种格式⽂档⽂本的相似度计算及可视化⽐对功能。更新使⽤帮助,测试数据,发布v2.8.8版。
2019.12.25 实现图⽚相似⽐较功能,使⽤phash,实现了对多种格式图⽚的相似⽐较。更新测试数据,⽂档,发布v3.0.0版。