国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于編碼習(xí)慣的SQL語句抄襲檢測算法

2019-12-19 02:07葛文馨魏永山
軟件 2019年11期

葛文馨 魏永山

摘? 要: 為了檢測出數(shù)據(jù)庫實(shí)驗(yàn)課程中結(jié)構(gòu)化查詢語言(Structured Query Language, SQL)語句代碼的抄襲行為,發(fā)現(xiàn)因SQL語句篇幅較短,使用現(xiàn)有的技術(shù)進(jìn)行代碼檢測卻沒有得到預(yù)期的結(jié)果,于是提出了一種基于編碼習(xí)慣的SQL語句抄襲檢測算法。獲取學(xué)生歷史的編碼數(shù)據(jù)并分類,判定待檢測代碼的類別并將其與之類別相同的代碼依照學(xué)生的編碼習(xí)慣進(jìn)行特征提取,進(jìn)而得到特征矩陣并對比代碼之間的相似程度,對涉嫌抄襲的代碼進(jìn)行過濾,判斷該代碼是否為該學(xué)生編寫。實(shí)驗(yàn)結(jié)果表明,該算法能夠有效地判斷出學(xué)生的抄襲行為,同時(shí)也解決因編碼篇幅較短而帶來的難以檢測是否為抄襲代碼這一問題。

關(guān)鍵詞: 編碼習(xí)慣;代碼抄襲檢測;樸素貝葉斯;SQL

【Abstract】: In order to detect the plagiarism of the SQL statement code in the database experiment course, it is found that the SQL statement is short, and the existing technology is used to detect the code but the expected result is not obtained. Therefore, a SQL statement plagiarism detection based on coding habit is proposed. Obtaining the classification data of the student history and classifying it, determining the category of the code to be detected and extracting the code with the same category according to the coding behavior of the student, thereby obtaining the feature matrix and comparing the degree of similarity between the codes, for the suspected plagiarism. The code is filtered to determine if the code was written for the student. The experimental results show that the algorithm can effectively judge the plagiarism of students, and also solve the problem that it is difficult to detect whether it is plagiarism code due to the short length of coding.

【Key words】: Coding behavior; Code plagiarism detection; Naive bayesian; SQL

0? 引言

隨著計(jì)算機(jī)技術(shù)的蓬勃發(fā)展,當(dāng)今的教育模式也繼而發(fā)生著巨大的改變?,F(xiàn)如今的教育模式已經(jīng)不僅僅是過去那種傳統(tǒng)又單一的書本教育,而是逐漸發(fā)展成書本、互聯(lián)網(wǎng)等多元化的形式,在線教育也應(yīng)運(yùn)而生。學(xué)生可以在課程輔助網(wǎng)站上進(jìn)行相應(yīng)課程的練習(xí),以鞏固提高在課堂上學(xué)習(xí)到的知識(shí)點(diǎn)。學(xué)生在網(wǎng)站上進(jìn)行練習(xí)時(shí)會(huì)遇到需要編寫代碼才能完成的題目,該類題目設(shè)計(jì)的初衷是為了幫助學(xué)生掌握相關(guān)知識(shí)點(diǎn),提高學(xué)生的編碼技能以及熟練程度。然而,隨著代碼共享以及復(fù)制粘貼的方法越來越容易,初衷卻越來越難以實(shí)現(xiàn),反而抄襲的現(xiàn)象日益劇增,尤其是在學(xué)生和老師缺乏直接聯(lián)系的在線教育網(wǎng)站中,畢竟在網(wǎng)絡(luò)教育中難以對學(xué)生的做題過程進(jìn)行監(jiān)督,于是很難確定學(xué)生是否掌握此類知識(shí),能否熟練準(zhǔn)確地編寫出相應(yīng)的代碼。為了能夠檢查出學(xué)生在做題的過程中是否存在抄襲行為,研究代碼抄襲檢測算法的學(xué)者與日俱增。他們提出多種不同的方法來對代碼進(jìn)行分析,并開發(fā)出一些有效的代碼剽竊監(jiān)測系統(tǒng),而被廣為使用的系統(tǒng)如JPlag[1]、Moss[2]、YAP3[3]等均采用串對比算法,將源碼和執(zhí)行流程進(jìn)行處理轉(zhuǎn)換成字符,使用串對比的算法對這些轉(zhuǎn)換后的字符串進(jìn)行相似度對比。國內(nèi)外眾多學(xué)者對這些檢測系統(tǒng)中的算法進(jìn)行改進(jìn),如Pawelczak等人[4]提出了一種基于源代碼標(biāo)記的思想,使用貪婪字符串平鋪的方法對學(xué)生提交的代碼進(jìn)行抄襲檢查;衛(wèi)軍超[5]使用Jplag中的GST(Greedy String Tilling)算法,提出了一種基于屬性計(jì)數(shù)法和結(jié)構(gòu)度量技術(shù)相結(jié)合的程序相似度計(jì)算方法;Wang等人[6]則是將Moss系統(tǒng)和抽象語法樹模型進(jìn)行融合,對Verilog代碼進(jìn)行剽竊檢測;文獻(xiàn)[7-9]都對Winnowing算法進(jìn)行改進(jìn),使其能夠判定文本或程序是否存在抄襲現(xiàn)象;文獻(xiàn)[10]-[12]提出了不同的基于源碼結(jié)構(gòu)的抄襲檢測系統(tǒng),將程序源代碼轉(zhuǎn)換成帶有結(jié)構(gòu)特征的特征串并進(jìn)行匹配計(jì)算代碼之間的相似程度;文獻(xiàn)[13]則是基于文本的重復(fù)代碼的基礎(chǔ)上通過詞法分析并使用語法樹對代碼進(jìn)行對比,篩選出重復(fù)的代碼。

由于現(xiàn)有的方法在對用戶編寫的代碼進(jìn)行抄襲檢測時(shí)是將用戶所編寫的代碼與其他用戶編寫的代碼以及存在于網(wǎng)絡(luò)或書籍中的代碼進(jìn)行相似度匹配,觀察該用戶是否存在抄襲行為。但是這些檢測方法都是僅僅考慮到代碼的語法特征,從而計(jì)算出的代碼之間的相似程度,并沒有將其與代碼的編碼規(guī)范進(jìn)行結(jié)合,同時(shí)對于篇幅簡短的代碼檢測效果往往不太理想。于是本文是在現(xiàn)有的代碼抄襲檢測技術(shù)的基礎(chǔ)上,提出了一種基于編碼習(xí)慣的抄襲檢測的方法,使得抄襲檢測不再局限于檢測不同用戶在同一題目中所提交的代碼是否一致,提取該用戶的編碼習(xí)慣特征并進(jìn)行分析,判斷該用戶所作答的代碼是否存在抄襲行為。實(shí)驗(yàn)表明,本文提出的基于編碼習(xí)慣的抄襲檢測方法能夠?qū)W(xué)生提交的代碼進(jìn)行抄襲檢測,判斷出該代碼是否為該學(xué)生所編寫,進(jìn)而提高抄襲檢測的準(zhǔn)確率。

1? 基于編碼習(xí)慣的抄襲檢測算法

1.1? 編碼習(xí)慣

每個(gè)學(xué)生在編寫計(jì)算機(jī)程序源代碼時(shí)都會(huì)有一種獨(dú)有的編碼習(xí)慣。編碼習(xí)慣,又稱編碼風(fēng)格,是指學(xué)生在編寫代碼的過程中習(xí)慣使用某種特有的書寫格式或內(nèi)容。編碼習(xí)慣通常因編程語言的不同而不同,例如在編寫JAVA語言的源代碼所使用的編碼習(xí)慣和編寫SQL語言的源代碼所使用的編碼習(xí)慣會(huì)有很大的不同。

3? 結(jié)論

本文在現(xiàn)有的代碼抄襲檢測系統(tǒng)的基礎(chǔ)上,為了檢測出不同學(xué)生在編碼過程中是否存在抄襲行為而提出了一種基于編碼習(xí)慣的抄襲檢測算法,通過對學(xué)生歷史編碼的數(shù)據(jù)進(jìn)行分類,并對學(xué)生提交的待檢測代碼進(jìn)行類別判定,將同類代碼進(jìn)行特征提取,進(jìn)一步處理得到特征矩陣,并比較矩陣之間的相似程度。實(shí)驗(yàn)結(jié)果表明,使用該方法能夠有效地檢測出抄襲代碼,有助于指導(dǎo)教師對學(xué)生的學(xué)習(xí)情況進(jìn)行評估。

參考文獻(xiàn)

[1]Prechelt L, Malpohl G, Philippsen M. Finding Plagiarisms among a Set of Programs with JPlag[J]. J Universal Computer Science, 2000, 8(11): 1016-1038.

[2]Schleimer S, Wilkerson D S, Ailen A. Winnowing: local algorithms for document fingerprinting[C]//Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data, San Diego, California, June 09-12, 2003. ACM Press, 2003: 76.

[3]Wise M J. YAP3: Improved Detection of Similarities In Computer Program And Other Texts[J]. ACM SIGCSE Bulletin, 1996: 28(1).

[4]Pawelczak D. Benefits and drawbacks of source code plagiarism detection in engineering education[C]//2018 IEEE Global Engi neering Education Conference (EDUCON), Tenerife, Islas Canarias, Spain, Apr. 17-20, 2018, IEEE, 2018: 1048-1056.

[5]衛(wèi)軍超. 在線評測系統(tǒng)中代碼剽竊檢測技術(shù)的研究與實(shí)現(xiàn)[D]. 陜西: 西北農(nóng)林科技大學(xué), 2017.

[6]Lisheng Wang, Lingchao Jiang, Guofeng Qin. A Search of Verilog Code Plagiarism Detection Method[C]//2018 13th Inter national Conference on Computer Science & Education (ICCSE). Sri Lanka, Colombo, Aug. 8-11, 2018 IEEE, 2018: 1-5.

[7]趙萌萌. 基于數(shù)字指紋的文本抄襲檢測算法研究[D]. 浙江: 杭州電子科技大學(xué), 2017.

[8]殷丹平. 基于CNN的代碼相似度檢測研究與代碼查重系統(tǒng)[D]. 北京: 北京郵電大學(xué), 2018.

[9]段旭良, 楊洋, 王曼韜等. 一種擴(kuò)展Winnowing剽竊檢測算法[J]. 計(jì)算機(jī)工程與科學(xué), 2017, 39(12): 2245-2251.

[10]楊超. 基于多種技術(shù)的混合式程序代碼抄襲檢測方法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2016, 52(18): 222-227.

[11]Arabyarmohamady S, Moradi H, Asadpour M. A coding style-based plagiarism detection[C]//Proceedings of 2012 Inter national Conference on Interactive Mobile and Computer Aided Learning (IMCL). Amman, Jordan, Nov. 6-8, 2012, IEEE, 2012: 180-186.

[12]孫芬芬. 基于源碼結(jié)構(gòu)相似度檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 內(nèi)蒙古: 內(nèi)蒙古大學(xué), 2017.

[13]劉偉,賓航飛,胡志剛. 一種改進(jìn)的基于文本的重復(fù)代碼自動(dòng)識(shí)別方法[J]. 軟件, 2018, 39(10): 68-73.

[14]李航. 統(tǒng)計(jì)學(xué)習(xí)方法[M]. 北京: 清華大學(xué)出版社, 2012.

[15]周志華. 機(jī)器學(xué)習(xí)[M]. 北京: 清華大學(xué)出版社, 2016.

[16]胡燕祝, 權(quán)桁, 艾新波. 復(fù)雜網(wǎng)絡(luò)全局拓?fù)湎嗨贫扔?jì)算方法實(shí)證研究[J]. 軟件, 2015, 36(9): 16-20.

[17]劉宇帥, 高廣宇. 基于相似性判斷的廣告片段檢索[J]. 軟件, 2012, 33(10): 25-27.

[18]韓如冰, 葉得學(xué). 基于VSM的權(quán)重改進(jìn)文檔相似度算法研究[J]. 軟件, 2012, 33(10): 103-105.

兴文县| 泸州市| 新乐市| 姜堰市| 望都县| 精河县| 天长市| 遵义市| 乐清市| 潢川县| 湟中县| 西乌珠穆沁旗| 高清| 陈巴尔虎旗| 丽江市| 贵南县| 沧州市| 浦江县| 辉县市| 新安县| 海盐县| 外汇| 蒲城县| 郑州市| 浮山县| 锦屏县| 浏阳市| 侯马市| 祥云县| 临颍县| 宜兴市| 天全县| 阿荣旗| 内黄县| 镇原县| 来安县| 阿坝县| 鄢陵县| 曲阜市| 中江县| 广东省|