摘要:針對近年來社會上出現(xiàn)的一些專業(yè)論文的抄襲現(xiàn)象,設(shè)計并實現(xiàn)一種高效的論文相似匹配算法,以有效地幫助審查人員對專業(yè)論文進(jìn)行核查,從而盡可能減少或避免在專業(yè)論文領(lǐng)域中的抄襲現(xiàn)象。
關(guān)鍵詞:論文 相似度 匹配 算法
1 概述
近年來,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與普及,人們通過互聯(lián)網(wǎng)獲得信息更加便捷。而很多專業(yè)性的論文也能夠在互聯(lián)網(wǎng)上進(jìn)行檢索。在校學(xué)生或社會上的一些工作人員在發(fā)表專業(yè)論文時,往往通過互聯(lián)網(wǎng)查閱相關(guān)資料,但有些人為了能夠盡快發(fā)表論文直接抄襲或剽竊他人論文。各高校每年有大量的畢業(yè)生需要寫畢業(yè)論文,而社會上每年也會有大量的論文在公開期刊雜志上進(jìn)行發(fā)表。如此多的論文如何檢測其是否含有抄襲或剽竊現(xiàn)象呢?單單依靠人們對每一篇論文進(jìn)行審查肯定是行不通的,這就要借助于現(xiàn)代化的手段以提高相應(yīng)的審查效率。
設(shè)計和開發(fā)一種好的論文相似度算法可將待發(fā)表的論文與已有論文進(jìn)行智能比對檢查,若發(fā)現(xiàn)雷同現(xiàn)象可及時通知發(fā)表人員做進(jìn)一步修改。從而減少甚至避免在社會上出現(xiàn)的專業(yè)論文抄襲現(xiàn)象。
2 算法設(shè)計
因為每年會產(chǎn)生大量的論文,因而已有論文的數(shù)量非常巨大,這就要求比對算法要盡可能的簡單,從而達(dá)到較高的執(zhí)行效率。
首先對已有論文進(jìn)行分類整理,以建立已有論文庫。對已有論文按照發(fā)表年份、專業(yè)類別、出版社進(jìn)行分類收集和存儲。然后將論文庫中的論文與待發(fā)表論文進(jìn)行逐一比對審查。
待發(fā)表論文與已有論文進(jìn)行匹配時,具體算法步驟如下:
2.1 待審查論文文檔預(yù)處理
首先提取待審查論文的文本內(nèi)容,將其進(jìn)行段落劃分。段落劃分時,要將相鄰較小的段落合并為一個較大的段落;過大的段落也要分解為多個較小的段落。如規(guī)定有效段落中句子的數(shù)量應(yīng)大于5并小于60,那么論文中如果有兩個相鄰的段,其中一段僅有4個句子,則該段應(yīng)與另一段進(jìn)行合并,從而合并為一個有效段落;但如果論文中有一個段包含了70個句子,則該段應(yīng)分解為兩個有效段落:其中一個有效段落包含30個句子,另一個有效段落包含40個句子。段落劃分后,對有效段落進(jìn)行逐個順序編號。
2.2 有效段落匹配
將待審查論文中劃分好的有效段落與另一篇論文進(jìn)行一次匹配。匹配時按先后順序讀取有效段落中的句子,從句子中隨機(jī)抽取一定數(shù)量的連續(xù)字符,將其與另一篇論文進(jìn)行完全字符串匹配,如果完全相同則記錄該句,然后繼續(xù)讀取下一句,同樣隨機(jī)抽取相同數(shù)量的字符串與另一篇論文進(jìn)行完全字符串匹配,并記錄匹配結(jié)果。依次進(jìn)行,直至段落結(jié)束,統(tǒng)計該段落中記錄下來句子的數(shù)量,將其除以段落總的句子數(shù)量,得出該段落的匹配相似度。
2.3 論文相似度計算
段落匹配結(jié)束后,選出段落相似度最大的兩個段落,將這兩個段落中記錄下來句子的數(shù)量,除以這兩個段落總的句子的數(shù)量,視為該論文的相似度。如果該相似度值較大,則可視為論文中的段落有一定的抄襲現(xiàn)象。需相關(guān)人員做進(jìn)一步審查核實。
3 算法實現(xiàn)
算法采用面向?qū)ο蟮乃枷?,將具體的算法過程與功能封裝在相應(yīng)的類中。主要的類有:
Paper類:表示論文,含有年份、專業(yè)類別、出版社、作者名稱,文檔內(nèi)容等屬性。
PagerList
有add(Pager p)和remove(Pager p)方法可在不同類別中添加或移除論文。
Paragraph類:用于論文段落的劃分,其中List
CheckPager類:用于論文的相似度比較,其中的float check(Paper p1,Paper p2)方法負(fù)責(zé)將兩篇論文進(jìn)行匹配,匹配結(jié)束后返回相似度值。
其具體實現(xiàn)的流程如上圖所示:
4 總結(jié)
由于每年會有大量的論文得以公開發(fā)表,因此已有論文的數(shù)量逐年增多,因此在算法設(shè)計時應(yīng)著重考慮系統(tǒng)的審查匹配效率。該算法在論文匹配時主要以有效句為單位進(jìn)行字符串的完全匹配比較,雖然精度上不是很高但可滿足對大量論文進(jìn)行快速匹配的效率要求,以提供一種簡捷的輔助審查手段。在算法實現(xiàn)時還可采用多線程的機(jī)制,以能更好的被現(xiàn)今主流的多核CPU所支持,從而進(jìn)一步提高匹配算法的執(zhí)行效率和程序運(yùn)行的穩(wěn)定性。
參考文獻(xiàn):
[1]巫喜紅,凌捷.BM模式匹配算法剖析.計算機(jī)工程與設(shè)計,第28卷第1期.2007.
[2]婁正良,劉昌平,白洪亮,鄒明福.漢字串的模糊匹配算法.微電子學(xué)與計算機(jī),第21卷第4期.2004.
[3]潘群娜.基于模式匹配KMP算法的探討.科技信息(科學(xué)教研),第13期.2007.
[4]李容.Visual C# 2008開發(fā)技術(shù)詳解.電子工業(yè)出版社,2008.
作者簡介:
趙少林(1975-),男,河南新鄉(xiāng)人,碩士,講師,主要研究方向:計算機(jī)應(yīng)用。程杰(1978-),男,山東荷澤人,碩士,講師,主要研究方向:計算機(jī)軟件與理論。