網(wǎng)頁去重方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)頁去重方法及裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)成為人們獲取各種信息的重要來源,但是在互聯(lián) 網(wǎng)上,有很多信息是重復(fù)信息。目前幾十億上百億網(wǎng)頁中有大量信息重復(fù)的網(wǎng)頁,送些重復(fù) 網(wǎng)頁的存在,對于信息處理非常麻煩,因此,對網(wǎng)頁進(jìn)行去重處理是十分必要的。
[0003] 目前,可通過在網(wǎng)頁中選取特征碼,對比特征碼的方式對網(wǎng)頁進(jìn)行去重處理?,F(xiàn)有 的通過網(wǎng)頁的特征碼對網(wǎng)頁去重的過程為;首先,在網(wǎng)頁1中選取某個句號作為定位點(diǎn),并 在定位點(diǎn)兩邊選取一定數(shù)量的漢字作為特征碼。然后,在網(wǎng)頁2中采用相同的方式獲取特 征碼,并對上述兩個網(wǎng)頁的特征碼進(jìn)行比較,若上述兩個網(wǎng)頁中的特征碼相同,則判斷出網(wǎng) 頁2為重復(fù)網(wǎng)頁,并刪除重復(fù)的網(wǎng)頁2 ;若特征碼不相同,則判斷兩個網(wǎng)頁不相同,即網(wǎng)頁2 不是網(wǎng)頁1的重復(fù)網(wǎng)頁。
[0004] 現(xiàn)有的僅基于特征碼進(jìn)行網(wǎng)頁去重的方式存在的問題是,容易造成對特征碼相同 而網(wǎng)頁實(shí)際內(nèi)容不同的網(wǎng)頁的誤判,例如,網(wǎng)頁1為幾十個字的詩句,用戶轉(zhuǎn)載網(wǎng)頁1后,根 據(jù)自己的理解對該詩句進(jìn)行幾百字W上的解釋,并且解釋文字中沒有句號,若僅基于特征 碼進(jìn)行網(wǎng)頁去重,送兩個網(wǎng)頁會被判斷為相同的網(wǎng)頁,而送兩個網(wǎng)頁應(yīng)為不同的網(wǎng)頁。因 此,上述網(wǎng)頁去重的方式的網(wǎng)頁去重準(zhǔn)確率不高。另外,上述方式所提取的特征碼不準(zhǔn)確。 例如,若用戶在轉(zhuǎn)載網(wǎng)頁的題注或編輯中添加句號,當(dāng)W現(xiàn)有的方式提取網(wǎng)頁的特征碼,并 進(jìn)行網(wǎng)頁去重時,原網(wǎng)頁和轉(zhuǎn)載網(wǎng)頁的特征碼不同,原網(wǎng)頁和轉(zhuǎn)載網(wǎng)頁被判斷為不同的網(wǎng) 頁。但實(shí)際上,原網(wǎng)頁和轉(zhuǎn)載網(wǎng)頁所包含的網(wǎng)頁正文內(nèi)容可能相同。
【發(fā)明內(nèi)容】
[0005] 本申請旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0006] 為此,本申請的第一個目的在于提出一種網(wǎng)頁去重方法,該方法可大大提高網(wǎng)頁 去重的準(zhǔn)確度,減少網(wǎng)頁去重的誤判率。
[0007] 本申請的第二個目的在于提出一種網(wǎng)頁去重裝置。
[0008] 為達(dá)上述目的,本申請第一方面實(shí)施例提出了一種網(wǎng)頁去重方法,包括:獲取預(yù)定 類型的網(wǎng)頁;W及針對每個網(wǎng)頁,提取出當(dāng)前網(wǎng)頁的特征碼和當(dāng)前網(wǎng)頁正文包含的字?jǐn)?shù),并 查詢預(yù)設(shè)的數(shù)據(jù)表中是否包含所述特征碼,若包含所述特征碼,則讀取所述數(shù)據(jù)表中與所 述特征碼對應(yīng)的網(wǎng)頁正文的字?jǐn)?shù),并當(dāng)讀取到的字?jǐn)?shù)和提取出的字?jǐn)?shù)間的字?jǐn)?shù)差在預(yù)設(shè)范 圍內(nèi)時,丟棄所述當(dāng)前網(wǎng)頁。
[0009] 本申請實(shí)施例的網(wǎng)頁去重方法,通過獲取預(yù)定類型的網(wǎng)頁,并針對每個網(wǎng)頁,提取 出當(dāng)前網(wǎng)頁的特征碼和當(dāng)前網(wǎng)頁正文包含的字?jǐn)?shù),并查詢預(yù)設(shè)的數(shù)據(jù)表中是否包含特征 碼,若包含特征碼,則讀取數(shù)據(jù)表中與特征碼對應(yīng)的網(wǎng)頁正文的字?jǐn)?shù),并當(dāng)讀取到的和提取 出的字?jǐn)?shù)差在預(yù)設(shè)范圍內(nèi)時,丟棄當(dāng)前網(wǎng)頁,該實(shí)施例基于網(wǎng)頁的特征碼和網(wǎng)頁正文包含 的字?jǐn)?shù)對網(wǎng)頁進(jìn)行去重,相對于現(xiàn)有的僅基于特征碼對網(wǎng)頁去重的方式,可大大提高網(wǎng)頁 去重的準(zhǔn)確度,減少網(wǎng)頁去重的誤判率。
[0010] 為達(dá)上述目的,本申請第二方面實(shí)施例提出了一種網(wǎng)頁去重裝置,包括;獲取模 塊,用于獲取預(yù)定類型的網(wǎng)頁;W及第一處理模塊,用于針對每個網(wǎng)頁,提取出當(dāng)前網(wǎng)頁的 特征碼和當(dāng)前網(wǎng)頁正文包含的字?jǐn)?shù),并查詢預(yù)設(shè)的數(shù)據(jù)表中是否包含所述特征碼,若包含 所述特征碼,則讀取所述數(shù)據(jù)表中與所述特征碼對應(yīng)的網(wǎng)頁正文的字?jǐn)?shù),并當(dāng)讀取到的字 數(shù)和提取出的字?jǐn)?shù)間的字?jǐn)?shù)差在預(yù)設(shè)范圍內(nèi)時,丟棄所述當(dāng)前網(wǎng)頁。
[0011] 本申請實(shí)施例的網(wǎng)頁去重裝置,通過獲取模塊獲取預(yù)定類型的網(wǎng)頁,第一處理模 塊針對每個網(wǎng)頁,提取出當(dāng)前網(wǎng)頁的特征碼和當(dāng)前網(wǎng)頁正文包含的字?jǐn)?shù),并查詢預(yù)設(shè)的數(shù) 據(jù)表中是否包含特征碼,若包含特征碼,則讀取數(shù)據(jù)表中與特征碼對應(yīng)的網(wǎng)頁正文的字?jǐn)?shù), 并當(dāng)讀取到的和提取出的字?jǐn)?shù)差在預(yù)設(shè)范圍內(nèi)時,丟棄當(dāng)前網(wǎng)頁,該實(shí)施例基于網(wǎng)頁的特 征碼和網(wǎng)頁正文包含的字?jǐn)?shù)對網(wǎng)頁進(jìn)行去重,相對于現(xiàn)有的僅基于特征碼對網(wǎng)頁去重的方 式,可大大提高網(wǎng)頁去重的準(zhǔn)確度,減少網(wǎng)頁去重的誤判率。
【附圖說明】
[0012] 圖1是本申請一個實(shí)施例的網(wǎng)頁去重方法的流程圖。
[0013] 圖2是本申請一個實(shí)施例的網(wǎng)頁的示意圖一。
[0014] 圖3是本申請一個實(shí)施例的網(wǎng)頁的示意圖二。
[0015] 圖4是本申請一個實(shí)施例的網(wǎng)頁去重裝置的結(jié)構(gòu)示意圖。
[0016] 圖5是本申請另一個實(shí)施例的網(wǎng)頁去重裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017] 下面詳細(xì)描述本申請的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,旨在用于解釋本申請,而不能理解為對本申請的限制。
[0018] 下面參考附圖描述本申請實(shí)施例的網(wǎng)頁去重方法及裝置。
[0019] 圖1是本申請一個實(shí)施例的網(wǎng)頁去重方法的流程圖,如圖1所示,該網(wǎng)頁去重方法 包括:
[0020] S101,獲取預(yù)定類型的網(wǎng)頁。
[0021] 具體地,用戶在搜索引擎中W某個關(guān)鍵詞進(jìn)行搜索后,可獲得多個與該關(guān)鍵詞相 關(guān)的網(wǎng)頁,并從中選擇出預(yù)定類型的網(wǎng)頁,例如包含正文的網(wǎng)頁。
[0022] S102,針對每個網(wǎng)頁,提取出當(dāng)前網(wǎng)頁的特征碼和當(dāng)前網(wǎng)頁正文包含的字?jǐn)?shù),并查 詢預(yù)設(shè)的數(shù)據(jù)表中是否包含特征碼,若包含特征碼,則讀取數(shù)據(jù)表中與特征碼對應(yīng)的網(wǎng)頁 正文的字?jǐn)?shù),并當(dāng)讀取到的字?jǐn)?shù)和提取出的字?jǐn)?shù)間的字?jǐn)?shù)差在預(yù)設(shè)范圍內(nèi)時,丟棄當(dāng)前網(wǎng) 頁。
[0023] 具體地,在獲得預(yù)定類型例如包含正文的網(wǎng)頁后,對于每個網(wǎng)頁,可W獲取當(dāng)前網(wǎng) 頁正文包含的段落,并針對當(dāng)前網(wǎng)頁正文中的每個段落,在當(dāng)前段落的預(yù)設(shè)位置選取第一 預(yù)設(shè)數(shù)量的字符,W及將選取的所有段落的字符拼接成字符串,并對字符串進(jìn)行運(yùn)算,W生 成特征碼。
[0024] 優(yōu)選地,針對每個段落,可WW當(dāng)前段落的中間位置為中必,并從中必的左側(cè)和右 側(cè)選取第二預(yù)設(shè)數(shù)量的字符,其中,第二預(yù)設(shè)數(shù)量為第一預(yù)設(shè)數(shù)量的二分之一,且第二預(yù)設(shè) 數(shù)量可W為3-8個,為了提高網(wǎng)頁去重的能力,減少特征碼所占的存儲空間,優(yōu)選地,第二 預(yù)設(shè)數(shù)量可W為5個,相應(yīng)地,第一預(yù)設(shè)數(shù)量可W為10個。
[00巧]例如,某個網(wǎng)頁中僅有一個段落,并且該段落中包含1000個漢字字符,則在該段 落的中間位置處,向左和向右各取5個漢字字符,共取10個漢字字符。如果按照信息論中 多元文法(N-Gram)的定義,送10漢字字符相當(dāng)于一個10階的文字(10-Gram),按照6753 個漢字計(jì)算,送10個漢字字符重復(fù)的概率大約為1/化763) 1°,也就是說,該網(wǎng)頁的特征碼重 復(fù)的概率大約為1/化763) 1°。由此可W看出,從每個段落中的中間位置各取10個字符的方 式,可W有效地保證網(wǎng)頁特征碼各不相同,可提高網(wǎng)頁特征碼的計(jì)算準(zhǔn)確率。
[0026] 需要說明的是,若網(wǎng)頁中的某個段落中的字符數(shù)量小于第一預(yù)設(shè)數(shù)量,可通過特 定的字符進(jìn)行補(bǔ)充。
[0027] 另外,在獲得當(dāng)前網(wǎng)頁的每個段落中的第一預(yù)定數(shù)量例如10個字符后,可按照段 落順序?qū)⑺@得的字符拼接為一個字符串,為了可W高效地通過該字符串進(jìn)行快速的查 找,W確定出內(nèi)容重復(fù)的網(wǎng)頁,可對每個網(wǎng)頁對應(yīng)的字符串進(jìn)行運(yùn)算,生成對應(yīng)的特征碼。 具體而言,可通過哈?;痑sh)函數(shù),即散列函數(shù),將每個網(wǎng)頁對應(yīng)的字符串轉(zhuǎn)換為對應(yīng)的 散列值,并將散列值作為該網(wǎng)頁的特征碼。
[0028] 例如,在JAVA編程中,將字符串轉(zhuǎn)換為對應(yīng)的散列值的哈希函數(shù)的代碼如下:
[0029] public int hashCode () {
[0030] int h = hash ;
[0031] if 化==0) {
[0032] int off = offset ;
[0033] char val [] = value ;
[0034] int len = count ;for(int i = 0 ;i<len ;i++) {
[0035] h = 31*h+val[off++];
[0036] }
[0037] hash = h ;
[0038] }
[0039] ren1:u;rn h ;
[0040] }
[0041] 通過上述代碼可W看出,該例子中使用的哈希函數(shù)為字符串的高位