鄒恩岑 馬壯 申宇 閔晟 顧明敏 黃偉軍



摘 要:隨著教育現代化進程的推進,高校學生的作業抄襲問題日益突出,逐步侵蝕并嚴重影響著國家人才質量。為解決這一問題,文中基于軟件工程方法提出了一種高校學生電子作業抄襲檢測系統,經需求分析、體系結構設計與改進、核心算法設計,實現了系統的業務功能和人機界面,服務于學生、教師和管理員。系統基于余弦相似原理,實現通過詞向量建模、向量空間轉換、相似度計算完成抄襲性質作業數據檢測,幫助教師以直觀方式篩選相似度高的作業,人工判定抄襲性質。該系統為推動研究科學的作業誠信檢測手段和解決大學生作業抄襲問題提供了有力工具。
關鍵詞:抄襲檢測;電子作業;系統設計;教育現代化;誠信;相似度計算
中圖分類號:TP391文獻標識碼:A文章編號:2095-1302(2020)07-00-06
0 引 言
在現代高校的教學流程中,無紙化辦公的普及使得教師和學生可以將更多的時間用于思考實際問題,但隨之而來的是,電子文檔具有幾乎無成本的易復制性和易修改性,抄襲、剽竊屢見不鮮教師很難通過千篇一律的作業獲取真實的教學反饋。高校學生的作業抄襲問題日益突出,逐步侵蝕并嚴重影響著國家人才質量。如何制約這種不良行為,將學生引導回誠信發展的軌道上是當下丞待解決的問題,研究和采取相應有效制約措施和手段則是教育者的責任。因此,基于計算機技術的作業查重系統應運而生,幫助教師甄別抄襲、剽竊的文檔,減輕教師的工作壓力,通過作業查重結果,針對不同學生及時制定相應的教學方案,真正實現因材施教。
清華大學在不久前已在全校實行了與知網同樣具備查重功能的作業查重系統,用以檢測學生的日常作業,相信不久之后會在高校之中普及。這一項措施能夠在一定程度上解決當今高校教育所產生的一些棘手問題,尤其對本科教育質量的提高產生了很大的促進作用。
最近,教育部印發了《關于狠抓新時代全國高等學校本科教育工作會議精神落實的通知》。這份通知中明確提出“全面整頓教育教學秩序,嚴格本科教育教學過程管理,加快振興本科教育,構建高水平人才培養體系,全面提高高校人才培養能力。”[1]日常作業的管理成為本科教學體系中的重要一環,作業的完成效果和完成質量不僅關系到日常教學的結果,更重要的是關系人才培養體系的構建。
1 相關工作
知網平臺采取的算法:首先根據論文的章節信息進行分段檢測,如果無法檢測到章節信息,系統將自動對文章進行分段。知網還對每段文章設置平均5%的靈敏度閾值,即低于5%抄襲或引用的段落無法被檢測出來。針對段落中的語句,當連續13個字相似或相同就會判定這一語句為抄襲。作為國內最大的知識發現網絡平臺,知網的算法確保了對論文檢測的精準度,但隨之而來的是巨額的計算量。知網查重算法需要足夠的計算資源來支撐大數據平臺的計算。從另一方面來看,計算資源可以通過疊加來獲取更快的處理速度,但一個完備的文檔對比數據庫比計算資源更加重要,需要時間的沉淀。
全球最大的搜索引擎Google,在面對每天新增的無數網頁時,采取自己創建的SimHash算法進行海量文檔去重。SimHash算法最大的亮點是可以將文檔的相似部分映射到一個64位的字節文本特征上,這是與傳統Hash算法的不同之處。傳統的Hash算法只能保證兩份文檔存在不同時計算的Hash值不同,無法從結果中了解到文檔不同的部分。SimHash算法在處理海量網頁去重的場景中優勢明顯,但缺點也顯而易見,SimHash在處理短文本去重任務時效果較差。
余弦相似度算法與SimHash算法相反,該算法在處理短文本對比任務時擁有超高精準度,通過提取文本的向量集合,進行兩兩對比計算,得出相似度余弦值,余弦值越趨近于1,則二者越相似。余弦相似度算法將切詞后的文章轉化為單詞向量列表,對兩篇文章的單詞向量進行計算。其缺點在于余弦相似度算法無法復用已有計算結果,每次計算兩篇文檔時都要整體計算一次,效率較低,但其精準度、可用性較高。
目前國內外研究很少使用深度學習[2-9]作為學生作業誠信檢測的核心技術,使用規則的機器學習方法[10-15]查重仍是主流。
2 系統需求分析
抄襲作業的問題在高校教學過程中既難以防范又影響重大。首先,學生依靠計算機技術抄襲作業,抄襲便利程度和效率都較之前抄襲紙質作業大幅提高;其次,依靠任課教師人工檢查作業中的抄襲痕跡,要耗費大量時間對比多份作業,存在效率低下、準確度不高和實施困難等問題[16-17];最后,在理工類高校教學中,學生很難做到認真聽講和主動學習,學習效果不斷惡化[18],最終致使各教學環節質量連鎖降低。學生抄襲作業的后果嚴重影響各教學環節的效果[19-20]。
本文主要研究如何設計與實現電子作業抄襲檢測軟件系統,用于發現并減少學生電子作業抄襲帶來的影響。
在對學校的作業查重需求進行深入調研分析并與相關教師進行交流溝通后,在使用系統查重前,需要管理員為教師創建賬號,教師通過Excel導入或者手動添加學生賬號信息(數據通過系統Web管理端導入)。教師可以自由創建學生組別與查重任務,由教師本人提交ZIP壓縮包或學生各自登錄系統提交作業,之后進行作業相似度對比,并生成直觀圖表,為教師因材施教提供依據。根據對作業查重系統業務需求的分析和研究,本系統的主要功能模塊包括用戶信息模塊、任務組模塊、查重任務模塊、文件管理模塊、權限管理模塊、系統管理模塊等。系統頂層用例圖如圖1所示。
系統可為三個角色分配功能。
(1)學生
學生可以查看自己所屬的多個任務組及組員情況,查看各自任務組的所有查重任務,對于需要提交的查重任務,可以在查重任務允許提交時間段提交作業待查重。對于查重結束的任務,可以查看任務的查重結果。
(2)教師
教師可以創建任務組,為任務組創建查重任務,通過上傳Excel模板批量創建學生賬號,修改查重任務的起止時間、上傳文檔過濾、題干排除文本等,也可以查看學生的作業提交情況。查重任務結束后,可以查看任務的查重結果,篩選相似度高的作業,人工判定抄襲。教師還可以通過上傳文檔壓縮包進行壓縮包快捷查重操作,省去創建任務組的步驟。
(3)管理員
管理員擁有學生和教師的所有權限,并且可以對查重任務進一步管理,管理員可以查看文件系統中查重任務打包上傳的壓縮文件和查重結果的壓縮文件,維護所有用戶信息,對系統權限(前端、后端)進行添加、刪除,對Web端的菜單進行維護管理,設置菜單權限,為教師、學生分配角色或收回任意功能權限,同時管理員亦可查看系統的所有操作日志,監控用戶行為。
3 系統體系結構設計
通過對功能和用戶的分析,采用Web技術開發客戶端,嚴格按照MVC思想和面向對象思想設計系統,以加強系統的可擴展性。系統采用分層架構,分別由視圖層、控制層、業務層和數據持久層組成,如圖2所示。
在分層架構的基礎上,采用多模塊拆分開發方式,基于Maven構建多Module的Spring Boot項目,按照功能將系統切分為core基礎功能模塊、rmp權限校驗模塊、service業務邏輯模塊和Web客戶端模塊。視圖層為PC網頁端提供人機交互功能。控制層使用Spring MVC處理客戶端請求并進行業務邏輯的分發,使用Spring Security進行合法性、權限校驗等操作。業務層使用基于Interface的開發方式將較為復雜的業務拆分成單獨的服務,以提升代碼復用度。數據持久層使用MyBatis作為ORM框架進行服務端與數據庫間的通信,并降低服務端與數據庫間的耦合度,提高系統靈活性。系統為控制層、業務邏輯層和數據持久層都封裝了CRUD的基礎操作類,每層處理類只需繼承基礎CRUD類,即可生成對應的增刪改查接口。分層架構分模塊開發思想的引用有利于團隊合作,降低開發難度,提高系統的開發效率。
通過對用戶、功能的分析,設計系統功能E-R圖,如圖3所示。
系統將項目的四層架構拆分為多個Module,便于系統水平擴展,并將系統中最耗時的余弦相似度計算部分交由核心算法模塊進行實時計算。為優化系統性能,提高響應速度和負載能力,本文對體系結構做了如下改進。
(1)基于前后端分離的通用數據交互協議
系統前端采用Layui作為主要開發框架,與服務端通過Jquery Ajax進行JSON數據交互。為規范開發,服務端使用統一的消息響應格式。前后端分離雖然可以將部分負載從服務端轉移到瀏覽器客戶端,但也導致前端資源被完全暴露。為了實現對前端資源的細粒度操控,系統采用Thymeleaf框架進行Web頁面映射,僅將公共CSS,JS資源全部開放,Web頁面在訪問時需要先經服務端進行強權限校驗,確保在權限校驗不通過的情況下,客戶端獲取的服務器資源最低,進一步提高系統的安全性。
(2)控制層、業務邏輯層和數據持久層的基礎CRUD封裝
本系統基于Java泛型建立CommonRestController
(3)基于Redis的方法緩存機制
引入Redis對需要頻繁訪問的接口進行數據緩存,減輕數據庫負載,提高系統運行效率。本文基于Spring AOP建立了一套基于Redis的方法緩存流程,如圖4所示。
定義@CacheParam和@CacheDeleteParam注解,分別對應查詢緩存和刪除緩存操作,創建注解對應的切面操作,當客戶端請求經@CacheParam注解修飾過的Controller前,會進行Aspect Around事件處理:系統首先查詢Redis是否存在當前Key(類名+方法名+參數)對應的值,如果存在對應值,說明已緩存過當前方法、當前參數數據,直接從Redis中取出數據響應客戶端即可;如果value不存在,則需進行緩存操作,先調用切面的proceed()方法讓程序正常執行,程序執行結束后,proceed()返回當前Controller的返回值,系統將返回值存入Redis即可。在數據的更新方法上,添加@CacheDeleteParam注解、刪除對應緩存即可防止緩存與數據庫不一致的情況出現。
4 系統核心算法設計
4.1 作業的詞向量建模
為了計算作業文本之間的相似度,需先將文本轉換成詞向量。本文使用步長為1,窗長為2的詞向量切分法來分割文本字符串時,切割出的字符串作為向量基,每切割出一次基字符串,就在向量這一維上增加1,以此構成詞向量。本文未使用任何分詞詞庫,使用切割步長為1,窗長為2的分詞方法是為保證詞向量轉換后原文本信息可最大程度保留。
例如:作業文本“Hadoop是處理大量數據的平臺”中,分割后的詞向量的基集合為U = {Ha,ad,do,oo,op,p是,是處,處理,理大,大量,量數,數據,據的,的平,平臺,臺},用該集合表示的向量共有16個維度。
4.2 共同向量空間的轉換
學生A的作業文本片段經字符串分割后的詞向量記為向量a,學生B的作業文本片段經分割后的詞向量記為b。a和b由于各自的基不同,所在的向量空間不同,需要換算至相同的向量空間。模塊程序提取a和b兩向量基的并集,構成合并基,將a,b兩向量轉換到合并基所組成的新的共同向量空間中。
5 系統實現
5.1 核心算法模塊功能實現
核心算法模塊使用我院《軟件工程》和《云計算與大數據技術概論》兩門高校課程2015年至2019年4次授課過程中提交的551份學生電子作業作為數據集進行開發與驗證。
系統核心算法模塊的實現包括3個程序包,分別為數據清洗工具程序包dataClean、作業查重計算computeSim和常用封裝庫程序包lib。
數據清洗工具程序包dataClean用于提供清洗作業數據的子模塊程序;計算程序包computeSim提供字符串切割、作業詞向量建模和相似度計算模塊;常用封裝庫程序包lib提供系統I/O和比較器等常用自制程序庫。
算法模塊的輸出結果見表1所列,敏感信息已用“*”和“★”符號處理。第一列為該教學班每一位同學的作業名稱,第二列為與第一列作業相似度最高的作業名稱,第三列為2個作業的余弦相似度,數值從高至低排序。表中每一行已根據余弦相似度從高至低排序,以便教師進行人工判定。
5.2 學生端功能的實現
學生登錄后,首先可以查看自己所屬的任務組和任務信息,根據組名和負責人過濾搜索任務組信息,點擊詳情查看該任務組的詳細信息,包括組員和該任務組下屬的查重任務。對于查重任務,學生可以查看任務的詳細信息,根據任務組或任務名搜索任務。在查重任務界面,學生可根據任務組、任務名、任務說明來搜索查重任務,查看自己所有查重任務的詳細信息,也可以查看已提交的查重文件。如果任務已查重,則可查看該查重任務的查重結果,系統界面如圖5所示。
5.3 教師端功能的實現
教師可以創建任務組,根據任務組創建查重任務或通過ZIP壓縮包進行急速查重,對查重任務進行增、刪、改、查
操作。在任務查重結束后,教師可以查看所有學生的作業提交情況和相似度結果,同時也可以通過圖表方式查看最終結果。系統提供圖形化展示功能,以便教師以直觀方式篩選相似度高的作業,通過人工判定抄襲。系統界面如圖6所示。
5.4 管理員端功能的實現
在學生和教師的功能之上,管理員可以對所有教師和學生的任務組、查重任務、提交的查重文件等信息及對學生和教師的用戶信息進行增刪改查操作,同時還可對系統角色進行增刪改查和權限分配,對系統所有功能進行權限控制,包括前端頁面DOM控制和服務端接口讀寫控制,查看所有用戶的操作日志。系統界面如7所示。
6 系統測試
6.1 測試環境
硬件環境:本文使用的服務器配置為8核Intel Xeon E5-2640 V2,2.00 GHz處理器,128G內存。
軟件環境:系統使用Eclipse作為開發工具,操作系統為Ubuntu 16.04 LTS,Java平臺為JDK 1.8.0,表現層與Service服務器為Tomcat8.0,系統數據庫為MySQL5.6,用戶桌面端瀏覽器為360瀏覽器,網絡為校園網。
6.2 測試內容
(1)根據系統的需求確定系統的功能完善性,即需求中的各功能模塊在系統中是否充分體現。
(2)測試系統各模塊功能健壯性,包括系統的數據讀取、錄入是否完整,系統的數據處理、輸出是否正確;測試各功能模塊的功能是否與需求分析一致; 檢查客戶界面是否達到操作簡便及安全性的要求。
(3)對系統按照業務流程進行綜合測試,即模擬使用方的業務流程使用本系統進行數個并且在多時間段內完成數據錄入、處理及輸出的操作。
6.3 測試結果
系統主要模塊功能測試結果見表2所列,系統綜合測試結果見表3所列。
7 結 語
本文提出了一種高校作業抄襲檢測系統的設計方法,經需求分析、體系結構設計與改進、核心算法設計,運用軟件工程實踐方法實現了系統的業務功能和人機界面,服務于學生、教師和管理員。系統算法使用固定步長窗長構建詞向量、向量共同空間轉換、作業相似度計算等方法,最后由人工判定,完成以計算機為主,人工審閱為輔的作業抄襲檢測工作。下一步的工作主要考慮2個方向:第一,結合教學實際,將系統運用到教學過程中,將學生、教師和管理集中到在線統一平臺,收集數據、記錄并分析系統實際效果;第二步,將深度學習方法引入抄襲檢測模型中,進一步減少甚至代替人工審閱工作。
參考文獻
[1]劉瀟翰.教育部關于狠抓新時代全國高等學校本科教育工作會議精神落實的通知[EB/OL]. [2018-08-27]. http://www.moe.gov.cn/srcsite/A08/s7056/201809/t20180903_347079.html.
[2]李雨亭.基于深度學習的垃圾郵件文本分類方法[D].太原:中北大學,2018.
[3]易軍凱,王超,李輝.面向文本分類的深度置信網絡特征提取方法研究[J].北京化工大學學報(自然科學版),2018,45(3):92-96.
[4] FEI J,LU C. Adaptive sliding mode control of dynamic systems using double loop recurrent neural network structure. [J]. IEEE trans neural netw learn syst,2018,29(4):1275-1286.
[5] FERNANDO T,DENMAN S,MCFADYEN A,et al. Tree memory networks for modelling long-term temporal dependencies [J]. Neurocomputing,2018,304:64-81.
[6] KHRULKOV V,NOVIKOV A,OSELEDETS I. Expressive power of recurrent neural networks [J]. ICLR,2018.
[7] WANG W,GAN Z,WANG W,et al. Topic compositional neural language model [J]. AISTATS,2018.
[8] ENGELS S,LAKSHMANAN V,CRAIG M . Plagiarism detection using feature-based neural networks [J]. Acm sigcse bulletin,2007,39(1):34-38.
[9] CURRAN D. An Evolutionary Neural Network Approach to Intrinsic Plagiarism Detection [C]// Irish Conference on Artificial Intelligence & Cognitive Science. Springer-Verlag,2009.
[10] ALTMAN N S. An introduction to kernel and nearest-neighbor nonparametric regression [J]. The American statistician,1992,46 (3):175-185.
[11] DENOEUX T. A k-nearest neighbor classification rule based on Dempster-Shafer theory[J]. IEEE transactions on systems,man and cybernetics,1995,25(5):804-813.
[12] KELLER J M,GRAY M R,GIVENS J A. A fuzzy K-nearest neighbor algorithm [J]. IEEE transactions on systems man & cybernetics,2012,15(4):580-585.
[13] DING X,ZHANG Y,CHEN L,et al. Distributed k-Nearest Neighbor Queries in Metric Spaces:Second International Joint Conference [Z]. Web and Big Data. Springer,Cham,2018.
[14] PAPERNOT N,MCDANIEL P . Deep k-Nearest Neighbors: Towards Confident,Interpretable and Robust Deep Learning [Z]. arXiv preprint arXiv:1803.04765,2018.
[15] TAHA Z,RAZMAN M A M,ADNAN F A,et al. The Identification of Hunger Behaviour of Lates Calcarifer Using k-Nearest Neighbour [M]//Intelligent Manufacturing & Mechatronics. Springer,Singapore,2018:393-399.
[16]郝煒.具有抄襲檢測功能的在線作業系統的研究與實現[D].沈陽:東北大學,2006.
[17]廖興偉.文檔復制檢測方法研究與系統實現[D].哈爾濱:哈爾濱工業大學,2012.
[18]黃志紅.加強反抄襲系統建設及應用監管的若干思考[J].東華理工大學學報(社會科學版),2013,32(4):507-509.
[19] CRONAN T P,MULLINS J K,DOUGLAS D E,et al. Further understanding factors that explain freshman business students academic integrity intention and behavior: plagiarism and sharing homework [J]. Journal of business ethics,2017:1-24.
[20] NOVAK M. Review of source-code plagiarism detection in academia.[C]// International Convention on Information & Communication Technology,Electronics & Microelectronics. IEEE,2016.
作者簡介:鄒恩岑(1985—),男,江蘇蘇州人,實驗員,碩士,CCF會員,主要研究方向為大數據分析、機器學習與嵌入式軟件設計。