本發(fā)明涉及一種文本重復(fù)檢測方法,尤其涉及一種基于語義分析與多重Simhash的文本近似重復(fù)檢測方法。
背景技術(shù):
在數(shù)據(jù)挖掘和知識信息發(fā)現(xiàn)領(lǐng)域,隨著大規(guī)模數(shù)據(jù)噴涌而出而來的一大挑戰(zhàn)就是過多的重復(fù)信息。國外有關(guān)研究表明,有1.7%~7%的重復(fù)網(wǎng)頁充斥在互聯(lián)網(wǎng)環(huán)境中。這種問題在中國互聯(lián)網(wǎng)環(huán)境中更為突出,中國互聯(lián)網(wǎng)環(huán)境尚未成熟,版權(quán)保護機制與網(wǎng)民素養(yǎng)尚未完善,很多信息都被大量的剽竊和轉(zhuǎn)載,據(jù)有關(guān)統(tǒng)計,中國互聯(lián)網(wǎng)絡(luò)中有超過30%的重復(fù)頁面。而重復(fù)信息太多也是互聯(lián)網(wǎng)信息檢索中遇到的主要問題之一。
與網(wǎng)頁重復(fù)檢測相比,文本重復(fù)檢測更加困難,這是由于語法、句式以及詞語含義的多變性,而中文的復(fù)雜語言結(jié)構(gòu)更是給重復(fù)檢測增加了困難。近似重復(fù)的相關(guān)研究,已經(jīng)有十余年的歷史,其大多數(shù)是針對英文網(wǎng)頁重復(fù)設(shè)計的。根據(jù)其相似匹配位于的階段不同,可以簡單分為兩類,一類是單純兩兩根據(jù)文本信息直接進行相似匹配,另一種是將每個文檔的信息生成一個指定長度的編碼(一般是64位),只通過這個編碼來進行相似匹配,這種方式稱為指紋算法。
然而目前絕大多數(shù)算法均是針對幾乎完全相同的文章,而對于詞的替換、句式的變換、或者保證原文含義不變的情況下重寫等近似重復(fù)問題效果一般。因此在實際應(yīng)用上具有一定的局限性。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的局限和不足,提供一種基于語義分析與多重Simhash的文本近似重復(fù)檢測方法。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種基于語義分析與多重Simhash的文本近似重復(fù)檢測方法,利用詞語的詞性和統(tǒng)計特征選擇文本的關(guān)鍵詞,在關(guān)鍵詞周圍選取詞作為文本特征,對同義詞進行編碼,消除同義詞,利用文本特征和全文分別計算Simhash,利用多重Simhash檢測文檔重復(fù);具體包括以下步驟:
(1)對中文文章進行預(yù)處理:將原始文本進行分詞、去除停用詞處理,余下的詞稱為文章的實義詞;
(2)選取關(guān)鍵詞:以tfidf、詞性、詞長、詞首次出現(xiàn)的位置計算每個實義詞的權(quán)重,選取權(quán)重最高的N1個詞作為關(guān)鍵詞。N1的取值范圍為[5,15]。
詞的權(quán)重計算方式為:
其中wi表示文檔中第i個詞,tfidfi表示這個詞的tfidf,len(x)表示x(文檔或詞)的長度,posi表示詞首次出現(xiàn)的位置,proi表示詞性的權(quán)重指標(biāo),proi的取值范圍為[0,1]。λ1~λ4為不同指標(biāo)的權(quán)重,且滿足λ1>λ2<λ4>λ3。
表示詞性的權(quán)重指標(biāo)。為不同指標(biāo)的權(quán)重的取值范圍為(3)選取關(guān)鍵詞每次出現(xiàn)位置前后各N2個詞作為文本特征,若關(guān)鍵詞出現(xiàn)位置前或后不足N2個詞,則取到文首或文尾為止。N2的取值范圍為[6,14]。
(4)預(yù)先統(tǒng)計好常用的同義詞,并對詞進行編碼,同一個含義的詞編碼相同,不同含義的詞編碼不同,但編碼長度相同。找到特征中所有有同義詞的詞,并將其替換為對應(yīng)的編碼。
(5)根據(jù)文章的全部實義詞計算Simhash記為simhash_1,根據(jù)文本特征計算Simhash記為simhash_2。
(6)計算兩篇文章的simhash_1的海明距離,記為D1,計算兩篇文章的simhash_2的海明距離記為D2。若D1≤k1,或k1<D1≤k2且D2≤k1,則認為兩篇文章近似重復(fù)。其中k1的取值范圍為[1,3],k2的取值范圍為[5,7]。
進一步地,所述步驟2中,對于不同詞性的詞對應(yīng)的proi滿足:
a.若wi為名詞,則proi>0.5
b.若wi為名詞,wj為形容詞,則proi>=1.5proj
c.若wi為名詞,wj為動詞,則proi>=2proj
d.若wi為形容詞,wj為動詞,則proi>proj
e.若wi為動詞,wj為其它詞性的詞,則proi>2proj。
本發(fā)明的有益效果是:本發(fā)明引入了語法、句法、語義等信息,首先根據(jù)多因素綜合考慮詞的重要性而獲得文章的關(guān)鍵詞,然后創(chuàng)新地提出以關(guān)鍵詞前后一定數(shù)目的詞為文章特征,并以此計算SimHash,在處理語義的問題上,我們通過同義詞替換的方法來消除同義詞,然而這種方法比較激進,因此一定程度上降低了準(zhǔn)確率,因此我們采用二重SimHash的方法,即只有在一定范圍內(nèi)才會使用這種激進的計算方式,結(jié)果表明改進的檢測方法要比傳統(tǒng)的SimHash、Shingling等方法效果更優(yōu)。
附圖說明
圖1是原始文章預(yù)處理的示意圖;
圖2是選取文章關(guān)鍵詞的示意圖;
圖3是文章特征選取以及計算Simhash的示意圖;
圖4是判斷兩篇文章是否近似重復(fù)的示意圖;
圖5是本發(fā)明方法與傳統(tǒng)的SimHash、Shingling方法的比較結(jié)果示意圖。
具體實施方式
下面結(jié)合附圖詳細描述本發(fā)明,本發(fā)明的目的和效果將變得更加明顯。
本發(fā)明提供的一種基于語義分析與多重Simhash的文本近似重復(fù)檢測方法,包括以下步驟:
(1)對中文文章進行預(yù)處理:將原始文本進行分詞、去除停用詞處理,余下的詞稱為文章的實義詞;
(2)選取關(guān)鍵詞:以tfidf、詞性、詞長、詞首次出現(xiàn)的位置計算每個實義詞的權(quán)重,選取權(quán)重最高的N1個詞作為關(guān)鍵詞。N1的取值范圍為[5,15]。
詞的權(quán)重計算方式為:
其中wi表示文檔中第i個詞,tfidfi表示這個詞的tfidf,len(x)表示x(文檔或詞)的長度,posi表示詞首次出現(xiàn)的位置,proi表示詞性的權(quán)重指標(biāo)。λ1~λ4為不同指標(biāo)的權(quán)重。
proi的取值范圍為[0,1],對于不同詞性的詞對應(yīng)的proi滿足:
a.若wi為名詞,則proi>0.5
b.若wi為名詞,wj為形容詞,則proi>=1.5proj
c.若wi為名詞,wj為動詞,則proi>=2proj
d.若wi為形容詞,wj為動詞,則proi>proj
e.若wi為動詞,wj為其它詞性的詞,則proi>2proj。
不同指標(biāo)的權(quán)重滿足λ1>λ2>λ4>λ3。
(3)選取關(guān)鍵詞每次出現(xiàn)位置前后各N2個詞作為文本特征,若關(guān)鍵詞出現(xiàn)位置前或后不足N2個詞,則取到文首或文尾為止。N2的取值范圍為[6,14]。
(4)預(yù)先統(tǒng)計好常用的同義詞,并對詞進行編碼,同一個含義的詞編碼相同,不同含義的詞編碼不同,但編碼長度相同。找到特征中所有有同義詞的詞,并將其替換為對應(yīng)的編碼。
(5)根據(jù)文章的全部實義詞計算Simhash記為simhash_1,根據(jù)文本特征計算Simhash記為simhash_2。
(6)計算兩篇文章的simhash_1的海明距離,記為D1,計算兩篇文章的simhash_2的海明距離記為D2。若D1≤k1,或k1<D1≤k2且D2≤k1,則認為兩篇文章近似重復(fù)。其中k1的取值范圍為[1,3],k2的取值范圍為[5,7]。
實施例
本實施例以2162篇IT新聞文章作為原始文本,具體實施方式如下:
(1)對中文文章進行預(yù)處理:如圖1所示,將原始文本進行分詞、去除停用詞處理,余下的詞為實義詞。
(2)選取關(guān)鍵詞:如圖2所示,以tfidf、詞性、詞長、詞首次出現(xiàn)的位置計算每個實義詞的權(quán)重,選取權(quán)重最高的10個詞作為關(guān)鍵詞。詞的權(quán)重通過如下公式計算:
參數(shù)選取如下:
若wi為名詞,則proi取0.6,若wi為形容詞,則proi取0.4,若wi為動詞,則proi取0.3,若wi為其他詞性的詞,則proi取0.1;
tfidf權(quán)重λ1取0.8;
詞性權(quán)重λ2取0.5;
詞長權(quán)重λ3取0.05;
首次出現(xiàn)位置權(quán)重λ4取0.1;
(3)如圖3所示,選取關(guān)鍵詞每次出現(xiàn)位置前后各10個詞作為文本特征。預(yù)先統(tǒng)計好常用的同義詞,并對詞進行編碼,同一個含義的詞編碼相同,不同含義的詞編碼不同,但長度相同。之后根據(jù)文章的全部實義詞計算Simhash記為simhash_1,根據(jù)文本特征計算Simhash記為simhash_2。
(4)判斷兩篇文章是否重復(fù)的方法如圖4所示,計算兩篇文章的simhash_1的海明距離,記為D1,計算兩篇文章的simhash_2的海明距離記為D2。若0≤D1≤2,或2<D1≤6且0≤D2≤2,則認為兩篇文章近似重復(fù)。
本實施例中按照上述參數(shù)設(shè)定實施,稱為Simhash_New,其重復(fù)檢測結(jié)果與Simhash、Shingling兩種方法的檢測結(jié)果對比如圖5所示,結(jié)果表明,本發(fā)明方法在準(zhǔn)確率、召回率、f值三個指標(biāo)上均顯著高于Simhash、Shingling方法。證明了本發(fā)明方法在中文文本近似重復(fù)檢測問題上具有更好的效果。