亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

確定相似字符串的方法、文件查重的方法及系統(tǒng)與流程

文檔序號(hào):12786428閱讀:395來(lái)源:國(guó)知局
確定相似字符串的方法、文件查重的方法及系統(tǒng)與流程

本發(fā)明涉及論文查重技術(shù)領(lǐng)域,尤其涉及一種基于分詞模糊匹配的文件查重的方法和系統(tǒng)。



背景技術(shù):

目前,論文/文件的重復(fù)率檢測(cè)主要是采用PaperPass、萬(wàn)方、知網(wǎng)等論文檢測(cè)系統(tǒng),通過(guò)字符串匹配算法來(lái)計(jì)算待檢測(cè)的文件相對(duì)于文件庫(kù)中的目標(biāo)文件的相似比。

字符串匹配算法是以一段文字完全一致作為衡量論文重復(fù)的標(biāo)準(zhǔn),然而,由于中文語(yǔ)言的復(fù)雜性和表達(dá)方式的多樣性,對(duì)于實(shí)質(zhì)內(nèi)容相同的兩段文字,往往會(huì)因?yàn)橹虚g出現(xiàn)一些無(wú)意義的“停詞”或虛詞或者主謂賓順序不一致等情況,而將其錯(cuò)誤地判斷為不屬于重復(fù)內(nèi)容,因此,采用現(xiàn)有技術(shù)中的字符串匹配算法可能會(huì)導(dǎo)致查全率和查準(zhǔn)率不高。而且,字符串匹配算法對(duì)字符串的選取要求嚴(yán)格,算法本身復(fù)雜度較高,需要相對(duì)大的資源開(kāi)銷和較長(zhǎng)的計(jì)算時(shí)間,因此,查重的效率也不高。

此外,近年來(lái),隨著科技項(xiàng)目申報(bào)、學(xué)術(shù)論文和學(xué)位論文等的數(shù)量大幅增長(zhǎng),迫切需要支持大數(shù)據(jù)量下,查重結(jié)果準(zhǔn)確、高效的文本數(shù)據(jù)查重的方法。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,提供一種基于分詞模糊匹配的方法來(lái)確定相似字符串,從而確定文件相對(duì)于樣本文件的重復(fù)率。

根據(jù)本發(fā)明的第一方面,提供了一種用于確定相似字符串的方法。該方法包括:

步驟1:獲取樣本文件的字符數(shù)組和待檢測(cè)的目標(biāo)文件的字符數(shù)組;

步驟2:構(gòu)建矩陣M,其中,矩陣M的行和列分別對(duì)應(yīng)所述樣本文件的字符數(shù)組和所述目標(biāo)文件的字符數(shù)組;

步驟3:在所述矩陣M中查找滿足相似字符串條件的子方陣,其中,所述相似字符串條件設(shè)置為:如果該子方陣中的元素a1j1、a2j2、a3j3…akjk對(duì)應(yīng)的行和列的字符相同,則a1j1、a2j2、a3j3…akjk所映射的字符串被確定為相似字符串,其中,k表示該子方陣的階數(shù),j1、j2、j3、…jk是1、2、…、k的一個(gè)排列。

優(yōu)選地,所述樣本文件的字符數(shù)組和所述目標(biāo)文件的字符數(shù)組中的每個(gè)元素對(duì)應(yīng)對(duì)文件內(nèi)容進(jìn)行分詞處理之后的字符。

優(yōu)選地,步驟2包括:對(duì)于所述矩陣M中的每個(gè)元素,如果行對(duì)應(yīng)的字符和列對(duì)應(yīng)的字符相等,則將該元素設(shè)置為1,否則設(shè)置為0。

優(yōu)選地,所述在矩陣M中查找滿足相似字符串條件的子方陣的步驟包括:

步驟11:設(shè)置待查找的子方陣A1的階數(shù)k;

步驟12:遍歷矩陣M,以查找符合所述相似字符串條件子方陣A1,其中,子方陣A1中的元素滿足不為0;

步驟13:基于所找到的子方陣A1進(jìn)一步查找滿足所述相似字符串條件的子方陣A2,其中,A1是子方陣A2的子集;

步驟14:確定所述子方陣A2映射的相似字符串和該相似字符串在所述目標(biāo)文件中的位置。

優(yōu)選地,所述子方陣A1的階數(shù)k大于預(yù)定的閾值。

根據(jù)本發(fā)明的第二方面,提供了一種用于文件查重的方法。該方法包括:

步驟21:利用本發(fā)明的確定相似字符串的方法查找所述目標(biāo)文件和所述樣本文件中的相似字符串;

步驟22:根據(jù)所述相似字符串計(jì)算所述樣本文件和所述目標(biāo)文件的相似比。

根據(jù)本發(fā)明的第三方面,提供了一種利用hadoop集群進(jìn)行文件查重的方法,包括以下步驟:

步驟31:利用map函數(shù)將查找一個(gè)目標(biāo)文件相對(duì)于多個(gè)樣本文件的查重任務(wù)分解為多個(gè)查找一個(gè)目標(biāo)文件相對(duì)于一個(gè)樣本文件的子任務(wù);

步驟32:利用reduce函數(shù)根據(jù)本發(fā)明的用于文件查重的方法并行查找對(duì)應(yīng)每個(gè)子任務(wù)的相似比。

優(yōu)選地,在步驟32之后,還包括當(dāng)所述相似比超過(guò)相似比閾值時(shí),輸出所述目標(biāo)文件與每個(gè)樣本文件的相似比列表。

優(yōu)選地,所述相似比列表包括章節(jié)相似比和全文相似比。

根據(jù)本發(fā)明的第四方面提供了一種用于文件查重的系統(tǒng),包括:用于利用本發(fā)明的確定相似字符串的方法查找所述目標(biāo)文件和所述樣本文件中的相似字符串的模塊;用于根據(jù)所述相似字符串計(jì)算所述樣本文件和所述目標(biāo)文件的相似比的模塊。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:本發(fā)明的確定相似字符串的方法是通過(guò)模糊分詞匹配的方式來(lái)查找相似字符串,可以提高確定相似字符串或者文件重復(fù)的準(zhǔn)確率;通過(guò)采用map/reduce模型計(jì)算一個(gè)目標(biāo)文件相對(duì)于多個(gè)樣本文件的相似比可以高效、快速地完成文件查重的任務(wù)。

附圖說(shuō)明

以下參照附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說(shuō)明,其中:

圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的確定相似字符串的方法的示意流程圖。

圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于文件查重的方法的示意流程圖。

圖3示意性示出了使用hadoop集群系統(tǒng)進(jìn)行論文/文件查重的信息交互過(guò)程。

圖4示出了根據(jù)本發(fā)明的另一實(shí)施例利用hadoop集群進(jìn)行論文查重的方法的流程圖。

具體實(shí)施方式

為了對(duì)本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)參照附圖對(duì)本發(fā)明提出的基于模糊匹配方法確定相似字符串的過(guò)程作進(jìn)一步詳細(xì)說(shuō)明。

圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的確定相似字符串的方法的示意流程圖。具體包括以下步驟:

1)步驟S110,獲取樣本文件和待檢測(cè)的目標(biāo)文件的字符數(shù)組。

在本說(shuō)明書(shū)中,將待檢測(cè)的文件稱為目標(biāo)文件,與該目標(biāo)文件進(jìn)行比對(duì)的文件稱為樣本文件。文件類型可以包括多種形式,例如,PDF文件、WORD文件或文本類型文件等。

文件的字符數(shù)組是通過(guò)將文件的文字內(nèi)容進(jìn)行分詞處理而獲得。分詞處理的具體過(guò)程是,分別提取樣本文件和目標(biāo)文件中的文字內(nèi)容并進(jìn)行分詞,例如,根據(jù)自然語(yǔ)言的特點(diǎn)或常用的表達(dá)習(xí)慣進(jìn)行分詞,將提取的文字內(nèi)容轉(zhuǎn)換成字符型的數(shù)組,并且記錄每個(gè)詞語(yǔ)在文件中的開(kāi)始位置。通過(guò)這種方式,可以獲得兩個(gè)開(kāi)始位置由小到大排列的字符數(shù)組。

例如,對(duì)于文字內(nèi)容“這是一個(gè)中文分詞的例子,我愛(ài)北京動(dòng)物園!IKAnalyer can analysis english text too”,分詞處理以后的結(jié)果是“這是/一個(gè)/中文/分詞/例子/我/愛(ài)/北京/動(dòng)物園/IKAnalyer/can/analysis/English/text/too”。

在實(shí)際的應(yīng)用中,可以采用現(xiàn)有的分詞軟件或?qū)ζ涓倪M(jìn)來(lái)進(jìn)行分詞,例如,可以采用開(kāi)源的基于java語(yǔ)言的分詞工具包IKAnalyer。

為了便于分析和處理,可以將分詞結(jié)果按照下表1的形式保存,即保存每個(gè)詞語(yǔ)和其對(duì)應(yīng)的類型以及其在字符數(shù)組中的位置,其中,類型例如包括中文詞匯、中文字符、英文字母、數(shù)字等,分詞的位置是指在上述例句中的實(shí)際位置,標(biāo)點(diǎn)符號(hào)和“停詞”也占位置。

表1分詞結(jié)果

2)步驟S120,構(gòu)造用于描述字符數(shù)組的矩陣

為了便于將樣本文件和目標(biāo)文件進(jìn)行對(duì)比,構(gòu)造矩陣來(lái)描述分詞結(jié)果。

例如,分詞之后樣本文件和目標(biāo)文件的字符數(shù)組的長(zhǎng)度分別是m和n,則將兩個(gè)數(shù)組分別作為橫軸和縱軸,形成m*n維的矩陣M。

例如,如果分詞以后的結(jié)果分別是BDCABA和ABCBDAB,其中,每個(gè)字母代表分詞后的中文或英文詞語(yǔ),對(duì)于矩陣中的每一個(gè)元素,如果滿足“行對(duì)應(yīng)的詞”與“列對(duì)應(yīng)的詞”相同,將該元素置為1,否則置為0,因此,構(gòu)造的矩陣M是:

3)步驟S130,設(shè)置相似字符串的判決條件。

本發(fā)明將判斷字符串的相似條件規(guī)定為:如果矩陣M中的子方陣的元素對(duì)應(yīng)的行和列的分詞相同,則,所映射的字符串確定是相似字符串,其中,k表示所述子方陣的階數(shù),j1、j2、j3、…jk是1、2、…、k的一個(gè)排列。如果按照上述規(guī)則設(shè)置矩陣M中元素的取值,即相似條件是不為零。其中,k表示所述子方陣的階數(shù),j1、j2、j3、…jk是1、2、…、k的一個(gè)排列。

例如,如果子方陣A是4×4維的矩陣,如下:

由于存在一個(gè)乘積a13*a22*a34*a41=1,而j1、j2、…、jk表示的排列是{3、2、4、1},因此,子方陣A滿足相似條件,其映射的字符串被確定是相似的字符串。

又如,如果子方陣A是4×4維的矩陣,形式如下:

由于存在一個(gè)乘積a11*a22*a34*a43=1,而j1、j2、…、jk表示的排列是{1、2、4、3},所以子方陣A滿足相似條件。

又如,如果子方陣A是一個(gè)4×4維的矩陣,形式如下:

由于在所有j1、j2、j3、j4的排列中,由于第4列的元素均是0,即在中必有一個(gè)元素是0,因此,不存在乘積不為零的情況,子方陣A必定不滿足相似條件。

為了盡可能的找出最長(zhǎng)的相似字符串,在同一范圍內(nèi)存在多個(gè)滿足相似條件的子方陣的情況下,選擇階數(shù)最大的子方陣對(duì)應(yīng)的相似字符串。

例如,如果M矩陣中存在以下兩個(gè)滿足相似條件的子方陣:

由于A2包含A1,處于同一范圍內(nèi),而A2的階數(shù)k=4,A1的階數(shù)k=3,因此,選擇A2對(duì)應(yīng)的相似字符串。通過(guò)這種方式,可以盡可能的查找出最長(zhǎng)的相似字符串,從而提高查重結(jié)果的精確度。

為了避免將實(shí)際上不相似的字符串被誤判為相似的字符串,在實(shí)際應(yīng)用中,可以設(shè)置相似性字符串的判決閾值,例如,定義將相似字符串的長(zhǎng)度大于3個(gè)詞語(yǔ)時(shí),認(rèn)為是相似字符串或重復(fù)字符串。

4)步驟S140,遍歷矩陣M以查找符合相似字符串判決條件的子方陣。

掃描m*n維矩陣M以查找滿足相似條件的子方陣。例如,可以采用行遍歷或列遍歷的方式來(lái)掃描矩陣。

下面仍以字符串BDCAB和CBDAB為例,以行遍歷的掃描方式來(lái)介紹查找子方陣的過(guò)程。即矩陣M是:

行遍歷的掃描矩陣M的具體步驟包括:

步驟a:遍歷行標(biāo)0到m;

步驟b:用begin表示行標(biāo)的上界,用end表示行標(biāo)的下界,將begin初始化為0,并且設(shè)置end為begin+len-1,其中,len表示設(shè)定的判斷是相似字符串的閾值,在本實(shí)施例中,以len取值為3為例;

上式從begin=1,end=3掃描至begin=2,end=4時(shí)的示意。

步驟c:遍歷列標(biāo),從0~n截取長(zhǎng)度為end-begin的兩個(gè)列標(biāo)i和j。即選取第begin行到第end行與第i列與第j列之間圍成的子方陣,判斷這個(gè)子方陣是否滿足相似條件,如果不滿足,則增加i、j繼續(xù)判斷,直到找到滿足條件的子方陣,則記錄i位置并進(jìn)行步驟d,如果沒(méi)有子方陣滿足條件,則進(jìn)行步驟e;

步驟d:將begin減一(或減更多,例如減五),end不變,重新進(jìn)行步驟c,并且將i位置記錄傳入,僅在i附近去進(jìn)一步尋找滿足條件的子方陣,提高遍歷的時(shí)間效率,由此可以找到相似字符串開(kāi)始下標(biāo)的最小值,進(jìn)行步驟e;

步驟e:將begin不變,end加一(或加更多,可以最多加到m),重新進(jìn)行步驟c,并且將i位置記錄傳入,只在i附近去尋找滿足條件的子方陣,提高遍歷的時(shí)間效率,由此可以找到結(jié)束下標(biāo)的最大值。由此,每次找到一個(gè)子方陣A既可以對(duì)應(yīng)一個(gè)橫軸的詞的子集合與一個(gè)縱軸的詞的子集合。

步驟d和步驟e目的在于,在找到滿足條件子方陣的基礎(chǔ)上,通過(guò)改變begin和/或end的值在該子方陣的周圍進(jìn)一步查找更大維數(shù)的子方陣,即盡量查找最大長(zhǎng)度的相似文字。

根據(jù)上述步驟找出的子方陣可以映射為原樣本文件和目標(biāo)文件中的一段字符串和該字符串的位置,即找到的相似文字,并將中間結(jié)果進(jìn)行保存。

例如,對(duì)于本實(shí)施例中的文字,根據(jù)本發(fā)明的方法找到的相似文字為BDCAB和CBDAB。

步驟f:如果begin與end之間沒(méi)有滿足條件的子方陣,則將begin=end+1,執(zhí)行步驟b。

根據(jù)本發(fā)明的基于模糊匹配的規(guī)則查找相似字符串的方式,可以提高文件查重的精確性,避免因?qū)嵸|(zhì)上屬于重復(fù)語(yǔ)句的字符串因中間出現(xiàn)“停詞”而遺漏。此外,將分詞后的結(jié)果存儲(chǔ)為矩陣形式,通過(guò)合適的掃描方法來(lái)查找滿足相似條件的子矩陣,可以提高查找的效率和速度。

本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的查找相似字符串的方法,不僅僅可以應(yīng)用在論文查重領(lǐng)域,也可以用于檢索,例如,將某段文字作為關(guān)鍵字,根據(jù)本發(fā)明的方法從文件數(shù)據(jù)庫(kù)中查找出包含該關(guān)鍵字的所有文件從而可以提高檢索的全面性。

圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于文件查重的方法流程圖。

11)步驟S210、對(duì)樣本文件和目標(biāo)文件進(jìn)行分詞預(yù)處理。

此步驟的目的是,對(duì)樣本文件和目標(biāo)文件進(jìn)行分詞預(yù)處理,以獲得分詞之后的字符數(shù)組。

預(yù)處理的過(guò)程包括:將樣本文件和目標(biāo)文件的每一個(gè)文件的內(nèi)容讀取出來(lái),進(jìn)行分詞預(yù)處理;將分詞之后的字符數(shù)組、每個(gè)詞語(yǔ)的位置、樣本文件的原文以及樣本文件的基本信息等預(yù)處理結(jié)果進(jìn)行存儲(chǔ)。

12)步驟S220、將經(jīng)過(guò)分詞處理后的樣本文件和目標(biāo)文件進(jìn)行查重比對(duì)。

步驟S220包括:利用樣本文件和目標(biāo)文件的預(yù)處理結(jié)果,基于本發(fā)明上述實(shí)施例的分詞模糊匹配方法來(lái)構(gòu)建矩陣和查找相似片段(相似字符串);找到相似片段之后,將相似片段、相似片段的冗余、相似片段的位置、相似片段的長(zhǎng)度、樣本文件的基本信息等進(jìn)行存儲(chǔ);計(jì)算樣本文件和目標(biāo)文件的相似比。

本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以首先計(jì)算目標(biāo)文件的每個(gè)章節(jié)的相似比,再進(jìn)行疊加,也可以直接獲得全文的相似比。

其中,計(jì)算章節(jié)相似比的公式如下:

其中,BFB表示章節(jié)相似比,TXTLEN表示章節(jié)長(zhǎng)度,n是章節(jié)中關(guān)鍵字的個(gè)數(shù),KEYLEN表示關(guān)鍵字的長(zhǎng)度(即查找出的相似片度的長(zhǎng)度)。在本說(shuō)明書(shū)中,關(guān)鍵字是指查出的相似片度或相似字符串。

進(jìn)一步地,可以根據(jù)各個(gè)章節(jié)的相似比,計(jì)算目標(biāo)文件全文的相似比。

本領(lǐng)域的技術(shù)人員還應(yīng)理解的是,為了保證文件查重的準(zhǔn)確率,在進(jìn)行相似比計(jì)算之前可以剔除不參與對(duì)比的內(nèi)容和某些重復(fù)數(shù)據(jù)。例如,在進(jìn)行相似比計(jì)算之前,需要首先將相似內(nèi)容所包含的模板的數(shù)據(jù)去除。例如,去掉重復(fù)記錄,以防止重復(fù)數(shù)據(jù)被計(jì)算多次,相似比超過(guò)100%的情況。

13)步驟S230、生成檢測(cè)報(bào)告。

目標(biāo)文件和樣本文件的比對(duì)結(jié)果可以以PDF格式和/或HTML的格式顯示給用戶。例如,生成的PDF可以包含全文相似比、章節(jié)相似比、相似樣本的列表以及相似的字符串的列表等。

圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例應(yīng)用hadoop集群進(jìn)行論文查重的交互過(guò)程。

Hadoop集群是分布式系統(tǒng)基礎(chǔ)架構(gòu),是實(shí)現(xiàn)云計(jì)算的開(kāi)源平臺(tái),其主要包括核心處理模塊Map/Reduce、用于存儲(chǔ)集群中的文件的分布式文件系統(tǒng)HDFS以及分布式數(shù)據(jù)庫(kù)HBase。為了清楚示意信息交互的過(guò)程,在圖3中,將HBase數(shù)據(jù)庫(kù)以獨(dú)立于hadoop集群的方式示出。

如圖3所示,論文查重的基本過(guò)程是:文件查重系統(tǒng)(web)接收來(lái)自于客戶端的樣本文件、目標(biāo)文件以及論文查重任務(wù);文件查重系統(tǒng)對(duì)樣本文件、目標(biāo)文件進(jìn)行處理并控制hadoop集群來(lái)完成目標(biāo)文件和樣本文件的相似性的比對(duì)的任務(wù);文件查重系統(tǒng)基于hadoop集群返回的比對(duì)結(jié)果生成最終的查重報(bào)告并返回給客戶端。在此過(guò)程中,產(chǎn)生的結(jié)果數(shù)據(jù)、記錄等均可以存儲(chǔ)到Hase數(shù)據(jù)庫(kù)。應(yīng)理解的是,圖3中的標(biāo)號(hào)僅用于示意論文查重的整體過(guò)程,其中,某些步驟可以并行進(jìn)行。

本領(lǐng)域的技術(shù)人員應(yīng)理解,文本數(shù)據(jù)查重系統(tǒng)的web頁(yè)面上提供有供用戶操作或選擇的選項(xiàng)。在進(jìn)行論文查重時(shí),用戶可以通過(guò)web界面進(jìn)行相關(guān)的操作。例如,通過(guò)web界面上的不同按鈕選擇進(jìn)行同批相似比還是非同批相似比,兩者間的區(qū)別是文本庫(kù)不同。例如,可以通過(guò)歷史記錄頁(yè)面查看提交作業(yè)的基本信息、完成信息等,也可以查詢記錄、重新生成報(bào)告、導(dǎo)出excel等。在此,不再作具體介紹。

利用Hadoop集群,可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序,以提高運(yùn)算和存儲(chǔ)的速度和效率。例如,在文本數(shù)據(jù)查重系統(tǒng)上可以開(kāi)發(fā)計(jì)算機(jī)程序來(lái)實(shí)現(xiàn)基于本發(fā)明的分詞模糊匹配方法。該程序?qū)崿F(xiàn)的基本功能是:對(duì)樣本文件和目標(biāo)文件進(jìn)行預(yù)處理;實(shí)現(xiàn)基于本發(fā)明的分詞模糊匹配算法;向hadoop集群提交相似性比對(duì)任務(wù)以控制其利用MapReduce(MR)模型來(lái)查找相似性字符串;生成查重結(jié)果報(bào)告等。

圖4示出了示出了根據(jù)本發(fā)明的另一實(shí)施例利用hadoop集群進(jìn)行論文查重的示意流程圖。

31)步驟S410、預(yù)處理樣本文件和目標(biāo)文件。

預(yù)處理過(guò)程即是對(duì)樣本文件和目標(biāo)文件進(jìn)行分詞預(yù)處理的過(guò)程。

以樣本文件為例,預(yù)處理的過(guò)程包括:首先,建立HDFS的樣本庫(kù),將一批一批的樣本文件上傳到Hadoop分布式文件系統(tǒng)上;上傳完成后,獲取HDFS上傳的文件名稱和路徑,將每一個(gè)文件的內(nèi)容讀取出來(lái),進(jìn)行分詞預(yù)處理;將分詞之后的字符數(shù)組、每個(gè)詞語(yǔ)的位置信息、樣本文件的原文以及樣本文件的基本信息等預(yù)處理結(jié)果存儲(chǔ)到HBase中,并將這些樣本文件的路徑也存儲(chǔ)到HBase之上,使得文本數(shù)據(jù)查重系統(tǒng)可以根據(jù)HDFS的路徑就可以獲取關(guān)于這些樣本的全部信息以及預(yù)處理的結(jié)果。

上述樣本文件預(yù)處理的過(guò)程,可以極大的提高文件查重的效率。這是由于可以將數(shù)以萬(wàn)計(jì)的樣本文件進(jìn)行預(yù)處理,因此,在需要進(jìn)行查重的時(shí)候可以很快的取出預(yù)處理的結(jié)果。預(yù)處理過(guò)程可以與查重過(guò)程相互獨(dú)立,并行執(zhí)行,因此,可以節(jié)省時(shí)間,提高效率。

32)步驟S420、配置Map/Reduce相關(guān)參數(shù)。

在此實(shí)施例中,通過(guò)Map/Reduce來(lái)查找相似字符串以及計(jì)算目標(biāo)文件和多個(gè)樣本文件的相似比?!癕ap(映射)”就是將一個(gè)任務(wù)分解成為多個(gè)子任務(wù)并行的執(zhí)行,“Reduce”就是將分解后的多個(gè)子任務(wù)的處理的結(jié)果匯總起來(lái),輸出最后的分析結(jié)果。

在步驟S420中,需要配置Map/Reduce相關(guān)的一些參數(shù)以及與待查重的目標(biāo)文件相關(guān)的屬性。

與Map/Reduce相關(guān)的參數(shù)包括:指定任務(wù)的地址;設(shè)置Map任務(wù)的數(shù)量;設(shè)置Reduce任務(wù)的數(shù)量;指定所有樣本文件的路徑;添加jar包,jar包中包含了本發(fā)明的查重算法。

與待查重的目標(biāo)文件相關(guān)的屬性包括:待查重的目標(biāo)文件的文本字符串;目標(biāo)文件的文件標(biāo)號(hào);冗余長(zhǎng)度的數(shù)值(顯示查到結(jié)果以后,相似片段的前后多少個(gè)詞一并作為相似結(jié)果進(jìn)行展示);查詢結(jié)果片段的最小值(即一段相似文本中,需要至少多少個(gè)詞才認(rèn)定其是相似的);詞語(yǔ)數(shù)組(每個(gè)文本段分詞后的結(jié)果數(shù)組);起始位置數(shù)組(即分詞結(jié)果的每個(gè)單詞在原文的位置)。

33)步驟S430、Map任務(wù)處理

文件查重的目標(biāo)是將待對(duì)比的一段文本段與HDFS上的所有文本段進(jìn)行對(duì)比,其中,出現(xiàn)的相同的文本片段數(shù)據(jù)在HBase數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ)。HDFS上的全部的樣本文件,都需與目標(biāo)文件進(jìn)行對(duì)比。

在map任務(wù)中,讀取所有樣本文件的路徑,并將樣本文件的路徑作為map的輸出,即map的輸出鍵值對(duì)應(yīng)一個(gè)樣本文件的路徑。假設(shè)所有的樣本文件的路徑都存儲(chǔ)于數(shù)組中,作為map的輸出結(jié)果(例如,path[i]代表數(shù)組path中的第i個(gè)元素),也就是說(shuō),map任務(wù)處理過(guò)程是將“一個(gè)目標(biāo)文件對(duì)應(yīng)多個(gè)樣本文件”的查重任務(wù)分解為多個(gè)子任務(wù),其中,每個(gè)子任務(wù)是“一個(gè)目標(biāo)文件對(duì)應(yīng)一個(gè)樣本文件”的重復(fù)性。

34)步驟S440、Reduce任務(wù)處理:

Reduce任務(wù)處理包括:根據(jù)map的輸出數(shù)組中的路徑從HBase上查找單個(gè)樣本文件的預(yù)處理結(jié)果;在查到樣本文件的預(yù)處理結(jié)果之后,再通過(guò)context上下文,獲取HBase中存儲(chǔ)的目標(biāo)文件的預(yù)處理結(jié)果(分詞結(jié)果);利用樣本文件和目標(biāo)文件的預(yù)處理結(jié)果,基于本發(fā)明的分詞模糊匹配方法來(lái)構(gòu)建矩陣和查找相似片段(相似字符串);找到相似片段之后,將相似片段、相似片段的冗余、相似片段的位置、相似片段的長(zhǎng)度、樣本文件的基本信息等存儲(chǔ)到HBase中。

因此,有多少樣本文件就有多少reduce任務(wù),然而,由于是分布式的并行計(jì)算,計(jì)算之間相互獨(dú)立、互不影響,再加上HBase的高吞吐率,采用map/reduce模型可以極大的提高論文查重的效率。

35)步驟S450、計(jì)算相似比:

在reduce任務(wù)查找出相似片段以后,可以存儲(chǔ)樣本文件編號(hào)、每個(gè)樣本文件對(duì)應(yīng)的相似片段以及目標(biāo)文件的相似片度等信息,并進(jìn)一步根據(jù)這些信息來(lái)計(jì)算相似比,其中,計(jì)算相似比的過(guò)程與基于圖2描述的過(guò)程相同,在此不再贅述。

在上述計(jì)算相似比的過(guò)程中,所有的比對(duì)結(jié)果也都可以保存在HBASE中,以便于之后進(jìn)行分析和查詢。

36)步驟S460、生成檢測(cè)報(bào)告。

目標(biāo)文件和樣本文件的比對(duì)結(jié)果可以以PDF格式和/或HTML的格式顯示給用戶。

此外,還可以將PDF或HTML結(jié)果集分類處理,例如,顯示同批文件和非同批文件的相似比、同一單位和非同一單位文件的相似比、修正章節(jié)的相似比,獲取關(guān)鍵目錄下的所有子目錄,并且如果有子目錄時(shí),疊加相關(guān)子目錄下的相似內(nèi)容長(zhǎng)度和章節(jié)長(zhǎng)度等,遍歷子目錄集合,避免模板目錄文件中的取出的目錄不在結(jié)果集合而取到,然后修正含有子目錄章節(jié)的相似比,最后保存修正值。生成的PDF報(bào)告分為標(biāo)題,章節(jié)相似比,相似比列表,相似比詳細(xì)數(shù)據(jù)等。

37)步驟S470、對(duì)查重比對(duì)后的結(jié)果進(jìn)行整理記錄。

該步驟主要包括記錄歷史操作、記錄篩選以及導(dǎo)出Excel三種功能。

記錄歷史操作是將檢測(cè)的結(jié)果數(shù)據(jù)儲(chǔ)存到HBase數(shù)據(jù)庫(kù)中,例如,編號(hào)、名稱、類型、年份、提交時(shí)間、檢測(cè)時(shí)間、相似比、報(bào)告路徑、比對(duì)范圍、目錄匹配、錯(cuò)誤信息、目前狀態(tài)等。通過(guò)采用HBase可以提高并發(fā)寫(xiě)入龐大數(shù)據(jù)量的效率。

記錄篩選是指允許用戶在Web端通過(guò)選擇提交時(shí)間、計(jì)劃類型、數(shù)據(jù)類型、目錄匹配、比對(duì)范圍、完成狀態(tài)等篩選操作記錄。例如,按提交時(shí)間查詢每一批次的結(jié)果,查詢出結(jié)果后,可以根據(jù)每條記錄的復(fù)選框選擇記錄,并且選擇批量刪除選中記錄、導(dǎo)出選中部分為Excel以及重新生成PDF報(bào)告等選項(xiàng);頁(yè)面會(huì)定時(shí)刷新,以獲取當(dāng)前執(zhí)行過(guò)程中文件的狀態(tài)。用戶可以根據(jù)需要選擇刷新頻率為15秒、30秒、或者一分鐘;頁(yè)面可以根據(jù)需要進(jìn)行顯示全部或者顯示指定的部分內(nèi)容,自動(dòng)刷新會(huì)根據(jù)用戶上一次的選擇,進(jìn)行已顯示的內(nèi)容的刷新。

導(dǎo)出為excel形式是指用戶可在Web端將篩選出的操作記錄信息,并保存為Excel格式。例如,客戶端將選擇的記錄的主鍵封裝成一個(gè)數(shù)組,并傳到服務(wù)器端;服務(wù)器端根據(jù)所傳的主鍵,在數(shù)據(jù)庫(kù)中找到全部數(shù)據(jù),并將查詢到的對(duì)象生成Excel文件,供客戶端下載。

以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1