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