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