王鵬
摘要
隨著計(jì)算機(jī)時代的到來,我國很多院校都開展了計(jì)算機(jī)編程課程,由于程序設(shè)計(jì)技能培養(yǎng)的重要性,教師會布置編程作業(yè)作為學(xué)生的課后作業(yè)。為了解決此專業(yè)課程老師們在對學(xué)生編程作業(yè)檢查時,需要花很多心思來檢查抄襲率,所以研究計(jì)算機(jī)程序抄襲檢測系統(tǒng)的設(shè)計(jì)方案尤為必要。檢測系統(tǒng)的核心技術(shù)是通過對學(xué)生們所提交的程序?qū)嵺`作業(yè)進(jìn)行程序相似度的計(jì)算,這種全自動的抄襲檢測可以找到相似度較高的程序文檔對,從而方便快捷地從大量程序作業(yè)中篩選出疑似抄襲的作業(yè)。抄襲檢測系統(tǒng)的應(yīng)用,可以幫助老師減輕負(fù)擔(dān),高效完成工作。本文就著重分析了計(jì)算機(jī)程序抄襲檢測系統(tǒng)的基本功能需求。
【關(guān)鍵詞】計(jì)算機(jī)程序 抄襲檢測 設(shè)計(jì)
1計(jì)算機(jī)程序檢測系統(tǒng)基本功能的實(shí)現(xiàn)
計(jì)算機(jī)程序檢測系統(tǒng)的核心技術(shù)是程序代碼相似度的計(jì)算,既是通過計(jì)算機(jī)將兩個程序代碼文檔的相似程度自動數(shù)值化。而這種程序相似度計(jì)算技術(shù)己經(jīng)廣泛應(yīng)用到軟件工程程序代碼的重用管理或?qū)?shù)字信息類知識產(chǎn)權(quán)中的程序代碼抄襲或復(fù)制的檢測等等。
在學(xué)生所提交的大量程序文檔作業(yè)當(dāng)中,在沒有用檢測系統(tǒng)進(jìn)行檢測以前,均無法準(zhǔn)確判斷其中哪些程序作業(yè)之間存在互相抄襲的嫌疑。為了保證檢測系統(tǒng)的檢測結(jié)果與實(shí)際情況充分符合,需要抄襲監(jiān)測系統(tǒng)可以對輸入的所有程序文檔進(jìn)行“一對一”的自動抄襲檢測。然后將它們的相似程度自動數(shù)值化,相似數(shù)值以“XX%”表示。并且相似數(shù)值輸出后可以按照從從低到高或者是高到低的方式排列出來,這樣方便檢測者結(jié)合相似數(shù)值和實(shí)際情況設(shè)定一個值,超過這個值得程序文檔即為具有抄襲性的作業(yè)。
2計(jì)算機(jī)程序抄襲檢測系統(tǒng)設(shè)計(jì)方案研究
2.1應(yīng)當(dāng)具備陳列和選取待檢測程序文檔的路徑和文件名
這個過程最重要的是要求檢測系統(tǒng)具有可以陳列和選取電子文檔的存儲路徑與文件名稱的功能。同時,為了提高檢測系統(tǒng)的工作效率,增強(qiáng)可行性,要求檢測系統(tǒng)能能夠直接在己經(jīng)陳列好的程序文檔列表中實(shí)現(xiàn)新建和增設(shè)新程序文檔和文件的功能。另外,要求檢測系統(tǒng)具有對整個檢測文檔清空、批量處理、重命名等操作功能。
2.2程序文檔“一對一”相似度檢測的應(yīng)用功能
相似度檢測這是整個計(jì)算機(jī)程序抄襲檢測系統(tǒng)最為關(guān)鍵的一步。具體步驟為:
(1)所謂“一對一”,需要檢測者對待檢測的程序文檔列表中的所有文件進(jìn)行配對,要求每個文檔都與其他文檔兩兩配對。需要說明的是,進(jìn)行單個文件的兩兩匹配時,如文檔列表為1#、2#、3#、4#、5#,需要以1#配對2#、1#配對3#、1#配對4#、1#配對5#、2#配對3#、2#配對4#、2#配對5#、3#配對4#、3#配對5#、4#配對5#為準(zhǔn),不是1#對應(yīng)2#、3#對應(yīng)4#……這樣。
(2)配對好的程序文檔對自動進(jìn)行相似度數(shù)值的計(jì)算。
(3)計(jì)算結(jié)果按照從高到低或者從低到高進(jìn)行排列出來。文檔中往往存在很多不重要信息會影響系統(tǒng)的檢測準(zhǔn)確性,為了保證整個抄襲檢測系統(tǒng)的科學(xué)有效性,應(yīng)當(dāng)避免這些不重要信息對系統(tǒng)的不利影響。其中不重要信息主要包括:換行、空格或者標(biāo)點(diǎn)符號等等。不僅如此,還應(yīng)該將那些對程序文檔內(nèi)容和結(jié)構(gòu)影響非常低的詞語(比如:的、得、地等)進(jìn)行篩除,從而保證抄襲檢測結(jié)果的真實(shí)性。
2.3相似度較高的程序文檔進(jìn)行深度詳細(xì)比對
當(dāng)計(jì)算機(jī)程序抄襲檢測系統(tǒng)對大量程序文檔進(jìn)行“一對一”檢測后得出較高相似度數(shù)值就表明這些程序文檔對有很大的抄襲嫌疑,這個時候,就需要對這些相似度較高的程序文檔進(jìn)行深度詳細(xì)比對進(jìn)一步排除和確定抄襲。這一步驟可以同時顯示程序文檔對,主要觀察文檔對相同部分得以實(shí)現(xiàn)。如果計(jì)算出程序文檔對相似度較低,則可以直接排除它們之間的抄襲嫌疑。
從上述方法操作,計(jì)算機(jī)程序抄襲檢測系統(tǒng)基本操作流程圖如圖1。
2.4抄襲檢測系統(tǒng)的關(guān)鍵技術(shù)及其應(yīng)用
(1)首先,需要分析計(jì)算機(jī)程序編碼的專業(yè)用語,即用各種標(biāo)點(diǎn)符號來合理轉(zhuǎn)換程序文檔內(nèi)容,把通俗意義上的文檔語句轉(zhuǎn)變?yōu)樘囟ǖ恼Z句序列。然后,利用此法分析的方法再將它們劃分成適用于這個程序文檔的語句序列。因此,程序文檔當(dāng)中的每個語句都能夠用下面的結(jié)構(gòu)方法加以呈現(xiàn):
Para=[句子對應(yīng)數(shù)值,(語詞單元數(shù)值)]
通過這一專業(yè)方法將一般通俗含義的文檔語句變成特定語句序列,可以使每個獨(dú)立文本之間的比較速度大大提高,同時利用最大公共序列求解的辦法,從而明確出兩個相對獨(dú)立語句中的相似程度,如下式:
Sim(A,B)=A,B最大公共序列長度/max(A關(guān)鍵編碼數(shù)量,b關(guān)鍵編碼數(shù)量)
(2)然后,從提取計(jì)算機(jī)程序文檔的特征部分來看,需要滿足具有一定長度的待提取編碼,這樣避免過短句的干擾,對整體的文檔檢測結(jié)果造成失真后果。在檢測過程當(dāng)中,待提取的程序內(nèi)容必須含一定數(shù)量的有效關(guān)鍵詞,方可進(jìn)行抄襲率的有效檢測。
(3)最后,分析計(jì)算機(jī)程序文檔的相似度計(jì)算,要求程序代碼之間具有一定的相似度,相互文檔之間存在的相似度量按照下式定義:
Sim(A,B)=文檔A、文檔B有效編程代碼相似數(shù)量/文檔A、文檔B含有編程代碼數(shù)量較少的程序文檔中的代碼綜述。
通常情況下,Sim(A,B)越低,就表明文檔A、B之間的相似度越低,反之越高。
3總結(jié)
綜上所述,計(jì)算機(jī)程序抄襲檢測系統(tǒng)的廣泛應(yīng)用,實(shí)現(xiàn)了對程序文件抄襲結(jié)果的有效處理,這使得電子文檔中抄襲檢測質(zhì)量和水平有了很大的飛躍。本文對計(jì)算機(jī)程序抄襲檢測系統(tǒng)的設(shè)計(jì)方案進(jìn)行了較詳細(xì)的研究闡述,在計(jì)算機(jī)程序抄襲檢測系統(tǒng)的更為完善的建立上面具有極其重要的意義。
參考文獻(xiàn)
[1]張淑娟.計(jì)算機(jī)程序抄襲檢測系統(tǒng)的設(shè)計(jì)方案研究[J].吉林廣播電視大學(xué)學(xué)報,2014(04):75-76.
[2]李旭東.程序相似度計(jì)算技術(shù)及其在教學(xué)中的應(yīng)用[J].軟件導(dǎo)刊·教育技術(shù),2010,9(04):85-86.
[3]房德安.計(jì)算機(jī)程序抄襲檢測系統(tǒng)的設(shè)計(jì)方案分析[J].黑龍江科技信息,2013(06):94.endprint