摘 要:抄襲檢測從根本上說是一個文本相似度的計算問題,需要迅速準確的在海量文集中對文本的原創(chuàng)性進行檢測,耗費大量時間和資源,是計算密集和數(shù)據(jù)密集的復雜過程。采用分布式計算是是提高檢測效率的有有效手段之一。本文提出了一套基于Spark的分布式抄襲檢測云計算框架,該框架使用由集群資源管理器Apache Mesos,支持內(nèi)存駐留的MapReduce計算框架,分布式Hadooop文件系統(tǒng)構成的分布式計算集群。測試結果表明,此框架比Hadooop傳統(tǒng)分布式計算框架在效率上有較大提升。
關鍵詞:抄襲檢測;云計算;Spark
中圖分類號:TP18
隨著互聯(lián)網(wǎng)的高速發(fā)展,包括搜索引擎、文獻資源庫、翻譯軟件的大量涌現(xiàn),使得諸如學術、學位論文、著作、項目申請書、項目結題報告等文本的抄襲剽竊更易于實現(xiàn),從而,使得快速準確的判定文本的抄襲剽竊變得尤為重要,已成為一個迫切需要解決的問題。
伴隨著云計算技術的快速興起和大數(shù)據(jù)時代的來臨,抄襲檢測將數(shù)據(jù)處理轉移到云計算上去是一種必然的趨勢。因此,本文抄襲檢測采用了云計算框架MapReduce算法思想,把本來由單個主機單獨進行的對海量數(shù)據(jù)檢索的過程,變成由若干臺主機分別進行的對部分并行進行處理,并在每個主機完成后再統(tǒng)一收回檢測結果。相比傳統(tǒng)集群,基于MapReduce抄襲檢測云計算框架復雜度較低,成本減少,具有良好的可伸縮性。Spark MapReduce是MapReduce模型的實現(xiàn)之一,它提供的框架自動執(zhí)行了任務的分解、發(fā)送、執(zhí)行、歸并、容錯工作,免去了二次開發(fā)和定制專用的分布式調度系統(tǒng)。此外Spark相比Hadooop框架,它能夠提供支持數(shù)據(jù)內(nèi)存駐留功能,能夠顯著提高需要迭代計算或者反復讀取數(shù)據(jù)的計算速度。實驗結果表明,基于Spark的抄襲檢測云計算框架能顯著提高檢測速度。
1 Spark分布式框架簡介
Spark是一個基于內(nèi)存計算的開源的集群計算系統(tǒng),雖然Spark與Hadoop有相似之處,但它提供了具有有用差異的一個新的集群計算框架。Spark引進了內(nèi)存集群計算的概念,可在內(nèi)存集群計算中將數(shù)據(jù)集緩存在內(nèi)存中,以縮短訪問延遲。Hadoop MapReduce框架反復從磁盤讀取數(shù)據(jù),效率低下。Spark旨在解決上述Hadoop MapReduce反復讀寫文件系統(tǒng)從而效率低下的問題。Spark通過構建彈性分布式數(shù)據(jù)集RDD結構,支持數(shù)據(jù)內(nèi)存駐留,RDD是分布在一組節(jié)點中的只讀對象集合。這些集合是彈性的,如果數(shù)據(jù)集一部分丟失,則可以對它們進行重建。重建部分數(shù)據(jù)集的過程依賴于容錯機制??梢?,通過引入RDD,MapReduce過程無需將處理結果寫回HDFS文件系統(tǒng),避免多次訪問磁盤,大大提高了迭代算法的運行效率。
2 基于Spark的抄襲檢測框架
本文設計的抄襲檢測框架是在Spark分布式系統(tǒng)的基礎上,加入了工具組件層,主要內(nèi)容是一些針對于抄襲檢測的自然語言處理工具包,為抄襲檢測提供基礎技術和工具,在自然語言處理工具包和Spark分布式系統(tǒng)的支持下提供抄襲檢測云服務,框架圖如下圖所示:
圖1
框架由以下幾個部分組成:
2.1 彈性分布式數(shù)據(jù)集(RDD):RDD是分布在一組節(jié)點中的只讀對象集合。這些集合是彈性的,如果數(shù)據(jù)集一部分丟失,則可以對它們進行重建。重建部分數(shù)據(jù)集的過程依賴于容錯機制。
2.2 Mesos集群管理器:Spark支持單節(jié)點集群或多節(jié)點集群。Mesos為分布式應用程序的資源共享和隔離提供了一個有效平臺。該設置充許Spark與Hadoop共存于節(jié)點的一個共享池中。
2.3 Yarn:MapReduce在Hadoop 0.23時已經(jīng)經(jīng)歷了一次大規(guī)模更新,新版本的MapReduce2.0被稱為YARN,YARN根本上解決舊MapReduce框架的性能瓶頸,YARN是一個真正的Hadoop資源管理器,允許多個應用程序同時、高效地運行在一個的集群上。
2.4 MLlib:是Spark對常用的機器學習算法的實現(xiàn)庫,同時包括相關的測試和數(shù)據(jù)生成器。MLlib目前支持四種常見的機器學習問題:二元分類,回歸,聚類以及協(xié)同過濾,同時也包括一個底層的梯度下降優(yōu)化基礎算法。
2.5 工具組件層:工具組件層整合了自然語言大數(shù)據(jù)采集、處理需要使用的基礎技術和工具,包括網(wǎng)絡爬蟲、中文分詞、詞性標注、可視化等。
3 系統(tǒng)測試
通過部署Spark平臺與傳統(tǒng)的Hadoop平臺進行對比,數(shù)據(jù)量級為10.6GB,在兩個平臺上進行同一篇文章的抄襲檢測,Spark平臺的速度比傳統(tǒng)的Hadoop平臺提升了10倍左右。實驗表明,基于Spark的抄襲檢測框架在大數(shù)據(jù)處理速度上具有明顯的優(yōu)勢。
4 結束語
本文設計了一個基于Spark框架的抄襲檢測計算框架,下一步工作將在引框架基礎上研發(fā)基于互聯(lián)網(wǎng)的抄襲檢測云服務,充分發(fā)揮Spark對于迭代算法數(shù)據(jù)內(nèi)存駐留支持的特性,提高檢測速度。
參考文獻:
[1]Jan Kasprzak and Michal Brandejs.Improving the Reliability of the Plagiarism Detection System:Lab Report for PAN at CLEF 2010.In Braschler et al.[2].ISBN 978-88-904810-0-0.
[2]Ján Grman and Rudolf Ravas.Improved Implementation for Finding Text Similarities in Large Collections of Data:Notebook for PAN at CLEF 2011.In Notebook Papers of CLEF 2011 LABs and Workshops,19-22 September,Amsterdam,The Netherlands,September 2011.
[3]許云,樊孝忠,張鋒.基于知網(wǎng)的語義相關度計算[J].北京理工大學學報,2005(05):411-414.
[4]易麗萍,竹勇,雷小春.知網(wǎng)在詞語相似度計算方面的應用[J].人工智能與知識工程,2005(01):24,26.
[5]劉群,李素建.基于《知網(wǎng)》的詞匯語義相似度計算[C].第三屆漢語詞匯語義學研討會論文集,2002:59-76.
[6]李素建.基于語義計算的語句相關度研究[J].計算機工程與應用,2002(07):75-78.
[7]金博,史彥軍,滕弘飛.基于篇章結構相似度的復制檢測算法[J].大連理工大學學報,2007(01):125-130.
作者單位:黑龍江工程學院 網(wǎng)絡中心,哈爾濱 150050