徐小桐 王法勝
摘要:在當(dāng)下大數(shù)據(jù)的時(shí)代,引用和抄襲現(xiàn)象越來(lái)越嚴(yán)重,為了維護(hù)原創(chuàng)作業(yè)的權(quán)益,也為了培養(yǎng)學(xué)生獨(dú)立思考的能力,該文設(shè)計(jì)了文檔查重系統(tǒng)。該系統(tǒng)采用MVC模式,基于B/S架構(gòu),將MD5算法和SimHash算法結(jié)合,用于高校學(xué)生作業(yè)文檔查重。系統(tǒng)共建有學(xué)生、老師、管理員三個(gè)端口。學(xué)生將作業(yè)文檔上傳,老師對(duì)作業(yè)進(jìn)行查重評(píng)分,管理員統(tǒng)籌管理學(xué)生、老師和課程信息。該系統(tǒng)有效解決了目前因?yàn)椴橹仄脚_(tái)收費(fèi)而無(wú)法實(shí)現(xiàn)高校學(xué)生平時(shí)作業(yè)查重的現(xiàn)狀。
關(guān)鍵詞:查重;MD5算法;SimHash算法;MVC設(shè)計(jì)模式;B/S架構(gòu)
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)11-0074-03
Research and Implementation of Document Duplicate Checking System
XU Xiao-tong, WANG Fa-sheng
(School of Information and Communication Engineering, Dalian 116600, China)
Abstract: In the era of big data, the phenomenon of citation and plagiarism is becoming more and more serious. In order to maintain the rights of original assignments, as well as to cultivate students' ability of independent thinking, this paper designs a document duplicate checking system. The system uses MVC mode, based on B/S architecture, combines MD5 algorithm and SimHash algorithm, and is used for duplicate checking of college students' homework documents. The system has three ports: students, teachers and administrators. The students upload the homework documents, the teachers check and grade the homework, and the administrators manage the students, teachers and course information as a whole. The system can effectively solve the current situation that college students can't check their homework because of the platform charge.
Key words: duplicate checking; MD5 algorithm; SimHash algorithm; MVC design pattern; B/S architecture
1 背景
如今我們生活在互聯(lián)網(wǎng)時(shí)代,各種各樣的信息撲面而來(lái),為我們的生活和學(xué)習(xí)提供了海量的資源和巨大的方便,但是這也帶來(lái)了弊端。學(xué)術(shù)文章、新聞?lì)惖奈恼律踔粮咝5淖鳂I(yè)與畢設(shè)項(xiàng)目都存在著抄襲現(xiàn)象,這不僅無(wú)法提高學(xué)生的創(chuàng)新思想與能力,還給原創(chuàng)的作者帶來(lái)了不必要的麻煩和傷害[1]。所以,杜絕抄襲、維護(hù)原創(chuàng)是至關(guān)重要的。
我國(guó)一直重視教育的發(fā)展,培育具有獨(dú)立思考、創(chuàng)新能力的新一代非常重要。高校應(yīng)該在平時(shí)的作業(yè)中注意這方面能力的教育與培養(yǎng),培養(yǎng)更優(yōu)秀的新一代,所以查重工作變得非常重要,不僅要防止學(xué)生之間互相抄襲,也要防止網(wǎng)絡(luò)資源的抄襲現(xiàn)象發(fā)生[2]。目前,學(xué)術(shù)論文的查重在我國(guó)制定了大量的規(guī)范,正規(guī)的查重平臺(tái)比如中國(guó)知網(wǎng)等都需要收取額外的費(fèi)用,這就給平時(shí)高校作業(yè)的查重帶來(lái)了不方便性,難以用于查重平時(shí)作業(yè)。
鑒于查重工作的重要性,本文設(shè)計(jì)了一種基于MD5算法[3]和SimHash算法[4-5]結(jié)合的文檔查重系統(tǒng)。該系統(tǒng)不僅可以對(duì)學(xué)生之間提交的文檔作業(yè)進(jìn)行查重,還更深入地針對(duì)特定網(wǎng)絡(luò)資源來(lái)查重學(xué)生的文檔作業(yè),不僅培養(yǎng)學(xué)生的獨(dú)立思考與創(chuàng)新能力,而且還為高校老師查重作業(yè)省去不必要的工作量,對(duì)于我國(guó)培養(yǎng)新一代的思考與創(chuàng)新能力至關(guān)重要。
2 系統(tǒng)分析
本系統(tǒng)主要是為實(shí)現(xiàn)學(xué)生作業(yè)文檔的查重而設(shè)計(jì),有學(xué)生,教師和管理員三個(gè)端口。教師在系統(tǒng)中發(fā)布作業(yè)要求,學(xué)生查看作業(yè)要求,并且提交相應(yīng)的作業(yè)文檔。當(dāng)文檔提交完畢,教師可以對(duì)指定文檔進(jìn)行查重,包括同門課程下學(xué)生文檔之間的查重和與網(wǎng)絡(luò)資源對(duì)比的查重,并根據(jù)查重結(jié)果進(jìn)行評(píng)分。學(xué)生在教師評(píng)判完之后可以查看自己得分。管理員統(tǒng)籌對(duì)教師,學(xué)生和課程信息進(jìn)行增刪改查。系統(tǒng)用例圖如圖1所示。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)體系結(jié)構(gòu)
對(duì)系統(tǒng)開(kāi)發(fā)來(lái)說(shuō),選擇一個(gè)合適的框架至關(guān)重要,這會(huì)減少很多不必要的時(shí)間和空間浪費(fèi),因此針對(duì)不同的系統(tǒng)需求我們要選擇合適的系統(tǒng)框架。
本系統(tǒng)搭建過(guò)程中使用Eclipse開(kāi)發(fā)環(huán)境和MySQL數(shù)據(jù)庫(kù),采用MVC模式,前端頁(yè)面設(shè)計(jì)使用HTML、JavaScript和CSS完成,同時(shí)基于B/S結(jié)構(gòu)。系統(tǒng)開(kāi)發(fā)還包括了計(jì)算機(jī)安全領(lǐng)域中的MD5算法和自然語(yǔ)言處理領(lǐng)域中的SimHash算法,完成查重部分的功能。
MVC模式可以將程序結(jié)構(gòu)分層,有利于開(kāi)發(fā)者編程時(shí)邏輯清晰。MySQL是一種開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),它可以處理大量的數(shù)據(jù),滿足用戶需求,非常簡(jiǎn)單便捷。系統(tǒng)結(jié)構(gòu)圖如圖2所示。
3.2 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)根據(jù)用戶需求和功能,分為四個(gè)模塊:學(xué)生模塊,教師模塊,查重模塊和管理員模塊。學(xué)生模塊具有查詢課程功能,查看作業(yè)要求功能,上傳作業(yè)文檔功能,查看分?jǐn)?shù)功能。教師模塊具有添加自己課程信息功能,上傳作業(yè)要求功能,查重作業(yè)功能和評(píng)判作業(yè)工作功能。查重模塊里,系統(tǒng)會(huì)自動(dòng)將學(xué)生文檔轉(zhuǎn)文本格式,再根據(jù)MD5算法[6]和SimHash算法[7]對(duì)文檔進(jìn)行粗查和精查,并將結(jié)果顯示出來(lái)。管理員模塊具有增刪改查學(xué)生,教師,課程信息功能。系統(tǒng)模塊層次圖如圖3所示。
系統(tǒng)總體流程:教師將作業(yè)要求發(fā)布到系統(tǒng)的對(duì)應(yīng)課程下,學(xué)生查看課程作業(yè)要求,并根據(jù)要求上傳作業(yè)。當(dāng)學(xué)生上傳完作業(yè),教師進(jìn)行作業(yè)查重。首先粗查,系統(tǒng)會(huì)自動(dòng)根據(jù)文檔MD5值來(lái)實(shí)現(xiàn)同門課程下該作業(yè)文檔的查重,并將結(jié)果顯示出來(lái)。如若有抄襲,教師直接給予通知,不必再精查。如若沒(méi)有抄襲現(xiàn)象,則系統(tǒng)會(huì)根據(jù)SimHash算法將該文檔與網(wǎng)絡(luò)資源進(jìn)行SimHash指紋[8]對(duì)比精查,將結(jié)果顯示出來(lái)。網(wǎng)絡(luò)資源由管理員定期從網(wǎng)上爬取相關(guān)資源上傳到資源庫(kù)。教師根據(jù)粗查和精查的結(jié)果給學(xué)生作業(yè)評(píng)分。學(xué)生在教師評(píng)定完分?jǐn)?shù)后可以查看評(píng)分結(jié)果。管理員對(duì)學(xué)生,教師,課程信息進(jìn)行統(tǒng)籌信息管理。
4 系統(tǒng)功能實(shí)現(xiàn)
4.1 學(xué)生細(xì)化用例邏輯
學(xué)生登錄系統(tǒng),輸入學(xué)生學(xué)號(hào)和密碼,如果正確,則系統(tǒng)跳轉(zhuǎn)查詢教師信息界面。學(xué)生根據(jù)課程編碼和該課程教師的名字進(jìn)行填寫,如若填寫正確或者數(shù)據(jù)庫(kù)中有該課程,則系統(tǒng)顯示出該課程的所有信息。其中,學(xué)生可以查看該課程下教師發(fā)布的作業(yè)要求,可以提交上傳相應(yīng)的作業(yè)以及可以查看自己之前幾次作業(yè)的分?jǐn)?shù)。作業(yè)提交完畢,系統(tǒng)會(huì)自動(dòng)跳回查新課程信息界面。學(xué)生模塊細(xì)化用例邏輯圖如圖4所示。
4.2 教師細(xì)化用例邏輯
教師登錄系統(tǒng),輸入與工作號(hào)和密碼,若輸入正確,則系統(tǒng)會(huì)顯示出該教師的所有課程。在該界面下,如若教師缺少相應(yīng)課程或者需要新增加課程,教師可以直接注冊(cè)。同時(shí),在該界面下,教師可以選定一門課程上傳作業(yè)要求或者選定一門課程查看該課程下的學(xué)生作業(yè)。當(dāng)上傳作業(yè)要求時(shí),界面跳轉(zhuǎn)到該課程下的上傳界面,當(dāng)查看學(xué)生作業(yè)時(shí),界面顯示出所有已提交作業(yè)的學(xué)生名單,教師根據(jù)名單,可以查看某一個(gè)學(xué)生的作業(yè)文檔或者查重某一個(gè)學(xué)生的作業(yè)文檔。當(dāng)教師要審閱學(xué)生的作業(yè)文檔時(shí),界面跳轉(zhuǎn)到該學(xué)生本門課程下的作業(yè)文檔,供教師參考。當(dāng)教師要查重學(xué)生作業(yè)時(shí),系統(tǒng)根據(jù)MD5信息摘要算法和SimHash算法[9]將該生的作業(yè)文檔與同門課程作業(yè)和網(wǎng)絡(luò)資源進(jìn)行粗查與細(xì)查,將結(jié)果顯示出來(lái)。教師根據(jù)所有的查重結(jié)果,綜合對(duì)學(xué)生的作業(yè)進(jìn)行評(píng)分或者給予重新修改通知。教師模塊細(xì)化用例邏輯圖如圖5所示。
4.3 查重流程
在該模塊下,教師根據(jù)學(xué)生提交作業(yè)的名單,可以查重某一個(gè)學(xué)生的作業(yè)文檔。當(dāng)教師要查重學(xué)生作業(yè)時(shí),系統(tǒng)根據(jù)MD5信息摘要算法將該生的作業(yè)文檔與本門課程下所有學(xué)生作業(yè)文檔的MD5值進(jìn)行對(duì)比來(lái)粗查重,將超過(guò)閾值的信息連同抄襲學(xué)生的學(xué)號(hào)一同顯示出來(lái),供教師參考。如若沒(méi)有抄襲,教師則可以接著進(jìn)行與網(wǎng)絡(luò)資源對(duì)比查重,系統(tǒng)使用SimHash算法細(xì)查,計(jì)算出選定作業(yè)文檔的SimHash指紋與網(wǎng)絡(luò)資源的SimHash指紋對(duì)比,結(jié)果根據(jù)閾值的設(shè)定將顯示出是否有抄襲現(xiàn)象,對(duì)哪幾篇網(wǎng)絡(luò)資源進(jìn)行了抄襲,其中一篇為語(yǔ)料庫(kù)中的哪一篇。查重模塊流程圖如圖6所示。
4.4 管理員細(xì)化用例邏輯
管理員登錄系統(tǒng),輸入工作號(hào)和密碼,若匹配正確,則進(jìn)入管理員主界面。主界面分為三個(gè)選項(xiàng),查看學(xué)生信息,查看教師信息,查看課程信息。點(diǎn)擊任意一個(gè)查看功能,界面將會(huì)跳轉(zhuǎn),顯示出相應(yīng)的學(xué)生,課程或者教師數(shù)據(jù),每條數(shù)據(jù)都可以進(jìn)行刪除和修改的功能。當(dāng)點(diǎn)擊刪除信息時(shí),界面跳轉(zhuǎn)顯示刪除成功后返回到上一頁(yè)顯示信息界面。當(dāng)點(diǎn)擊修改信息時(shí),界面跳轉(zhuǎn)到信息修改界面,修改完成則系統(tǒng)顯示成功并返回到上一層界面。管理員模塊細(xì)化用例邏輯圖如圖7所示。
5 結(jié)束語(yǔ)
本文運(yùn)用Eclipse開(kāi)發(fā)環(huán)境和MySQL數(shù)據(jù)庫(kù)研究并設(shè)計(jì)了文檔查重系統(tǒng),不僅對(duì)學(xué)生之間提交的文檔作業(yè)進(jìn)行查重,還更深入的針對(duì)特定網(wǎng)絡(luò)資源來(lái)查重學(xué)生的文檔作業(yè),不僅培養(yǎng)學(xué)生的獨(dú)立思考與創(chuàng)新能力,而且還為高校老師查重作業(yè)省去不必要的工作量,對(duì)于我國(guó)培養(yǎng)新一代的思考與創(chuàng)新能力至關(guān)重要。
參考文獻(xiàn):
[1] 王逍翔.基于SimHash的文本相似性檢測(cè)研究與改進(jìn)[D].昆明:昆明理工大學(xué),2018.
[2] 李剛.網(wǎng)絡(luò)環(huán)境下的中文查重系統(tǒng)的研究與實(shí)現(xiàn)[D].杭州:浙江理工大學(xué),2017.
[3] 楊懷,宋俊芳,王聰華.淺談MD5加密算法在網(wǎng)絡(luò)安全中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018(9):40.
[4] 余意,張玉柱,胡自健.基于Simhash算法的大規(guī)模文檔去重技術(shù)研究[J].信息通信,2015,28(2):28-29.
[5] Li Y,Sha Y,Shan J,et al.The Research of Weighted Community Partition based on SimHash[J].Procedia Computer Science,2013,17:797-802.
[6] 靳燕.基于MD5算法的文件完整性檢測(cè)系統(tǒng)分析及設(shè)計(jì)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019(11):36-38.
[7] 龐宇,張倩,韓凱,等.改進(jìn)的Simhash算法在文本查重中的研究及應(yīng)用[J].數(shù)字通信世界,2020(1):203-204.
[8] 王宇成.基于Simhash和層次聚類算法的網(wǎng)頁(yè)去重技術(shù)研究[D].南京:南京郵電大學(xué),2019.
[9] 王添男,馮鋒.基于SimHash的文本相似檢測(cè)算法研究[J].電子測(cè)試,2019(15):87-89.
【通聯(lián)編輯:謝媛媛】