本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種相似文本判定方法和裝置。
背景技術(shù):
在處理來自各種資源的文本時(shí),經(jīng)常需要對(duì)這些文本進(jìn)行去重或統(tǒng)計(jì)相似文本的相關(guān)信息。實(shí)際情況中,同一文本經(jīng)過不同網(wǎng)站或是投放地址進(jìn)行發(fā)布時(shí),往往會(huì)對(duì)該文本進(jìn)行一些細(xì)微的修改,導(dǎo)致相似文本無法通過簡(jiǎn)單的字符串匹配進(jìn)行判定,例如,SimHash、TF-IDF等相似文本聚類算法,雖然這些算法計(jì)算速度快,聚類效果也不錯(cuò),但由于文本的修改,這些算法的準(zhǔn)確率卻并不高。而基于分詞的相似文本判定算法計(jì)算繁瑣,參與計(jì)算的關(guān)鍵詞數(shù)量龐大,導(dǎo)致計(jì)算速度較慢,此外,對(duì)主題相同的文本容易誤判。
針對(duì)相關(guān)技術(shù)中進(jìn)行相似文本判定時(shí)準(zhǔn)確性較低的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的主要目的在于提供一種相似文本判定方法和裝置,以解決相關(guān)技術(shù)中進(jìn)行相似文本判定時(shí)準(zhǔn)確性較低的問題。
為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種相似文本判定方法。該方法包括:分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
進(jìn)一步地,判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值包括:分別從第三內(nèi)容塊集合和第四內(nèi)容塊集合中獲取第二預(yù)設(shè)數(shù)量的內(nèi)容塊,得到第五內(nèi)容塊集合和第六內(nèi)容塊集合,其中,第五內(nèi)容塊集合為從第三內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合,第六內(nèi)容塊集合為從第四內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合;統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量;以及判斷第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
進(jìn)一步地,統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量包括:分別計(jì)算第五內(nèi)容塊集合中各個(gè)內(nèi)容塊和第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值,得到第一哈希值集合和第二哈希值集合,其中,第一哈希值集合為第五內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合,第二哈希值集合為第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合;以及根據(jù)第一哈希值集合和第二哈希值集合統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量。
進(jìn)一步地,分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合包括:分別統(tǒng)計(jì)第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù);分別判斷第一內(nèi)容塊集合和第二內(nèi)容塊集合中是否存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊;如果判斷出第一內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合,如果判斷出第一內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取第一內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合;以及如果判斷出第二內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合,如果判斷出第二內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合。
進(jìn)一步地,在分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合之后,該方法還包括:分別判斷第三內(nèi)容塊集合中各個(gè)內(nèi)容塊和第四內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù)是否處于預(yù)設(shè)范圍內(nèi);以及如果判斷出第三內(nèi)容塊集合中存在內(nèi)容塊的字符數(shù)未處于預(yù)設(shè)范圍內(nèi),則從第三內(nèi)容塊集合中剔除字符數(shù)未處于預(yù)設(shè)范圍內(nèi)的內(nèi)容塊,如 果判斷出第四內(nèi)容塊集合中存在內(nèi)容塊的字符數(shù)未處于預(yù)設(shè)范圍內(nèi),則從第四內(nèi)容塊集合中剔除字符數(shù)未處于預(yù)設(shè)范圍內(nèi)的內(nèi)容塊。
進(jìn)一步地,在分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合之前,該方法還包括:分別對(duì)第一文本和第二文本進(jìn)行預(yù)處理,其中,基于預(yù)處理后第一文本和第二文本進(jìn)行分塊。
為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的另一方面,提供了一種相似文本判定裝置。該裝置包括:分塊單元,用于分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;獲取單元,用于分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;以及判斷單元,用于判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
進(jìn)一步地,判斷單元包括:第一獲取模塊,用于分別從第三內(nèi)容塊集合和第四內(nèi)容塊集合中獲取第二預(yù)設(shè)數(shù)量的內(nèi)容塊,得到第五內(nèi)容塊集合和第六內(nèi)容塊集合,其中,第五內(nèi)容塊集合為從第三內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合,第六內(nèi)容塊集合為從第四內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合;第一統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量;以及第一判斷模塊,用于判斷第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
進(jìn)一步地,第一統(tǒng)計(jì)模塊包括:計(jì)算子模塊,用于分別計(jì)算第五內(nèi)容塊集合中各個(gè)內(nèi)容塊和第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值,得到第一哈希值集合和第二哈希值集合,其中,第一哈希值集合為第五內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合,第二哈希值集合為第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合;以及統(tǒng)計(jì)子模塊,用于根據(jù)第一哈希值集合和第二哈希值集合統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集 合中相同的內(nèi)容塊的數(shù)量。
進(jìn)一步地,獲取單元包括:第二統(tǒng)計(jì)模塊,用于分別統(tǒng)計(jì)第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù);第二判斷模塊,用于分別判斷第一內(nèi)容塊集合和第二內(nèi)容塊集合中是否存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊;第二獲取模塊,用于在判斷出第一內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合,在判斷出第一內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取第一內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合;以及第三獲取模塊,用于在判斷出第二內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合,在判斷出第二內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合。
本申請(qǐng)通過分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。本申請(qǐng)通過對(duì)文本中的句子進(jìn)行取樣,可以減少文本的細(xì)微修改對(duì)相似文本判定的影響,解決了相關(guān)技術(shù)中進(jìn)行相似文本判定時(shí)準(zhǔn)確性較低的問題,進(jìn)而達(dá)到了提高相似文本判定的準(zhǔn)確性的效果。
附圖說明
構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請(qǐng)實(shí)施例的相似文本判定方法的流程圖;
圖2是根據(jù)本申請(qǐng)實(shí)施例的文本取樣的流程圖;以及
圖3是根據(jù)本申請(qǐng)實(shí)施例的相似文本判定裝置的示意圖。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
需要說明的是,本申請(qǐng)的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
為了便于描述,以下對(duì)本申請(qǐng)涉及的一些術(shù)語或概念進(jìn)行說明:
哈希算法:是指將任意長(zhǎng)度的輸入映射為固定長(zhǎng)度的輸出,該輸出即稱為哈希值。
SimHash算法:一種相似文本聚類算法,對(duì)每個(gè)文本計(jì)算SimHash值,SimHash值差異小的兩個(gè)文本判定為相似文本。需要說明的是,SimHash算法速度很快。
TF-IDF:一種相似文本判定算法,通過計(jì)算文本關(guān)鍵詞與詞頻來計(jì)算兩個(gè)文本相似度的方法。
編輯距離:是指兩個(gè)字符串之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù),其中,允許的編輯操作包括將一個(gè)字符替換成另一個(gè)字符、插入一個(gè)字符和刪除一個(gè)字符。
根據(jù)本申請(qǐng)實(shí)施例,提供了一種相似文本判定方法。圖1是根據(jù)本申請(qǐng)實(shí)施例的相似文本判定方法的流程圖,如圖1所示,該方法包括如下的步驟S102至步驟S106:
步驟S102,分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合。
本申請(qǐng)實(shí)施例的第一文本和第二文本可以是眾多文本中任意兩個(gè)文本,具體地,按照斷句符(例如,逗號(hào)、句號(hào)、分號(hào)等)對(duì)第一文本和第二文本進(jìn)行分塊,將第一文本和第二文本劃分成多個(gè)句子。優(yōu)選地,在對(duì)第一文本和第二文本劃分成多個(gè)內(nèi)容塊后,可以去除每個(gè)內(nèi)容塊內(nèi)的無效字符(例如,引號(hào)、空格等),并基于去除了無效字符的內(nèi)容塊得到第一內(nèi)容塊集合和第二內(nèi)容塊集合。
優(yōu)選地,為了提高相似文本判定結(jié)果的準(zhǔn)確性,在分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合之前,該方法還包括:分別對(duì)第一文本和第二文本進(jìn)行預(yù)處理,其中,基于預(yù)處理后第一文本和第二文本進(jìn)行分塊。
本申請(qǐng)的預(yù)處理可以包括將全角字符轉(zhuǎn)為半角字符、將繁體字字轉(zhuǎn)換為簡(jiǎn)體字等,通過分別對(duì)第一文本和第二文本進(jìn)行全角字符轉(zhuǎn)為半角字符、將繁體字字轉(zhuǎn)換為簡(jiǎn)體字等預(yù)處理,從而可以避免相同文本內(nèi)容因?yàn)楦袷讲煌慌卸椴幌嗤谋緝?nèi)容。
步驟S104,分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合。
本申請(qǐng)實(shí)施例的第一預(yù)設(shè)數(shù)量可以根據(jù)文本句子特點(diǎn)進(jìn)行設(shè)置,例如,如果多數(shù)文本的句子均較長(zhǎng),則可以將第一預(yù)設(shè)數(shù)量設(shè)置的大一些,例如,設(shè)置第一預(yù)設(shè)數(shù)量為20,如果多數(shù)文本的句子均較短,則可以將第一預(yù)設(shè)數(shù)量設(shè)置的小一些,例如,設(shè)置第一預(yù)設(shè)數(shù)量為10。具體地,本申請(qǐng)實(shí)施例通過分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊中取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合,通過分別從第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中取第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合??蛇x地,可以取各個(gè)內(nèi)容塊中前第一預(yù)設(shè)數(shù)量的字符組成各個(gè)新的內(nèi)容塊,并將同一文本對(duì)應(yīng)的所有新的內(nèi)容塊組成一個(gè)新的內(nèi)容塊集合(即上述第三內(nèi)容塊集合和第四內(nèi)容塊集合),例如,取內(nèi)容塊1中前10個(gè)字符組成新的內(nèi)容塊1,取內(nèi)容塊2中前10個(gè)字符組成新的內(nèi)容塊2,以此類推。本申請(qǐng)實(shí)施例通過對(duì)步驟S102得到內(nèi)容塊進(jìn)行采樣,從而可以減少那些細(xì)微修改對(duì)相似文本判定的影響。
步驟S106,判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
可選地,可以通過計(jì)算第三內(nèi)容塊集合和第四內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值、SimHash值、編輯距離等來判斷第三內(nèi)容塊集合中的內(nèi)容塊是否與第四內(nèi)容塊集合中的內(nèi)容塊相同。以下以第一內(nèi)容塊和第二內(nèi)容塊為例對(duì)本申請(qǐng)實(shí)施例進(jìn)行說明,其中,第一內(nèi)容塊為第三內(nèi)容塊集合中任意一個(gè)內(nèi)容塊,第二內(nèi)容塊為第四內(nèi)容塊集合中任意一個(gè)內(nèi)容塊,包括如下步驟:
步驟S1,分別計(jì)算第一內(nèi)容塊和第二內(nèi)容塊的哈希值,得到第一哈希值和第二哈希值。
步驟S2,判斷第一哈希值和第二哈希值是否相同。
步驟S3,如果第一哈希值和第二哈希值相同,則說明第一內(nèi)容塊和第二內(nèi)容塊相同,如果第一哈希值和第二哈希值不相同,則說明第一內(nèi)容塊和第二內(nèi)容塊不相同。
通過上述步驟S1至步驟S3可以快速判斷第三內(nèi)容塊集合中各個(gè)內(nèi)容塊是否與第四內(nèi)容塊集合中各個(gè)內(nèi)容塊相同,并可以統(tǒng)計(jì)第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量。
在得到第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量之后,即可以判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值。具體地,本申請(qǐng)實(shí)施例的預(yù)設(shè)值可以根據(jù)文本長(zhǎng)度自適應(yīng)進(jìn)行調(diào)整,例如,如果文本長(zhǎng)度較長(zhǎng)(即文本字符數(shù))(例如,文本長(zhǎng)度大于2000),則預(yù)設(shè)值可以取大一些,如果文本長(zhǎng)度較短(例如,文本長(zhǎng)度小于500),則預(yù)設(shè)值可以取小一些。
需要說明的是,本申請(qǐng)實(shí)施例也可以是通過將第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量占總內(nèi)容塊數(shù)的比率與預(yù)設(shè)值進(jìn)行比較以判斷第一文本和第二文本是否相似。
本申請(qǐng)實(shí)施例通過分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。本申請(qǐng)通過對(duì)文本 中的句子進(jìn)行取樣,可以減少文本的細(xì)微修改對(duì)相似文本判定的影響,解決了相關(guān)技術(shù)中進(jìn)行相似文本判定時(shí)準(zhǔn)確性較低的問題,進(jìn)而達(dá)到了提高相似文本判定的準(zhǔn)確性的效果。
優(yōu)選地,為了避免取樣數(shù)對(duì)相似文本的判定結(jié)果的影響,判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值包括:分別從第三內(nèi)容塊集合和第四內(nèi)容塊集合中獲取第二預(yù)設(shè)數(shù)量的內(nèi)容塊,得到第五內(nèi)容塊集合和第六內(nèi)容塊集合,其中,第五內(nèi)容塊集合為從第三內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合,第六內(nèi)容塊集合為從第四內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合;統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量;以及判斷第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
由于取樣數(shù)多的文本更容易與取樣數(shù)少的文本匹配,為了防止取樣數(shù)對(duì)結(jié)果造成影響,本申請(qǐng)實(shí)施例對(duì)每個(gè)文本的取樣數(shù)進(jìn)行限制。具體地,本申請(qǐng)實(shí)施例分別從第三內(nèi)容塊集合和第四內(nèi)容塊集合中獲取第二預(yù)設(shè)數(shù)量的內(nèi)容塊,需要說明的是,第三內(nèi)容塊集合和第四內(nèi)容塊集合中各個(gè)內(nèi)容塊按照在文本的位置順序進(jìn)行存儲(chǔ),本申請(qǐng)實(shí)施例可以取各個(gè)文本前第二預(yù)設(shè)數(shù)量的內(nèi)容塊,例如,取第三內(nèi)容塊集合中前20個(gè)內(nèi)容塊組成第五內(nèi)容塊集合,取第四內(nèi)容塊集合中前20個(gè)內(nèi)容塊組成第六內(nèi)容塊集合,并基于取樣后得到的第五內(nèi)容塊集合和第六內(nèi)容塊集合統(tǒng)計(jì)相同內(nèi)容塊的數(shù)量。
優(yōu)選地,為了提高統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量的速度,并減少內(nèi)存空間的占用,統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量包括:分別計(jì)算第五內(nèi)容塊集合中各個(gè)內(nèi)容塊和第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值,得到第一哈希值集合和第二哈希值集合,其中,第一哈希值集合為第五內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合,第二哈希值集合為第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合;以及根據(jù)第一哈希值集合和第二哈希值集合統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量。
本申請(qǐng)實(shí)施例通過分別計(jì)算第五內(nèi)容塊集合中各個(gè)內(nèi)容塊和第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值,并基于兩個(gè)內(nèi)容塊對(duì)應(yīng)的哈希值判斷這兩個(gè)內(nèi)容塊是否相同,具體地,如果兩個(gè)內(nèi)容塊對(duì)應(yīng)的哈希值相同,則這兩個(gè)內(nèi)容塊相同,如果這兩個(gè)內(nèi)容塊的哈希值不相同,則說明這兩個(gè)內(nèi)容塊不相同。
優(yōu)選地,分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合包括:分別統(tǒng)計(jì)第 一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù);分別判斷第一內(nèi)容塊集合和第二內(nèi)容塊集合中是否存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊;如果判斷出第一內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合,如果判斷出第一內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取第一內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合;以及如果判斷出第二內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合,如果判斷出第二內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合。
實(shí)際情況中,文本中會(huì)存在一些句子(內(nèi)容塊)的長(zhǎng)度小于第一預(yù)設(shè)數(shù)量,因此,本申請(qǐng)實(shí)施例對(duì)于那些長(zhǎng)度小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,直接獲取其全部字符,而對(duì)于那些長(zhǎng)度不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊,則獲取其前第一預(yù)設(shè)數(shù)量的字符。
優(yōu)選地,在分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合之后,該方法還包括:分別判斷第三內(nèi)容塊集合中各個(gè)內(nèi)容塊和第四內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù)是否處于預(yù)設(shè)范圍內(nèi);以及如果判斷出第三內(nèi)容塊集合中存在內(nèi)容塊的字符數(shù)未處于預(yù)設(shè)范圍內(nèi),則從第三內(nèi)容塊集合中剔除字符數(shù)未處于預(yù)設(shè)范圍內(nèi)的內(nèi)容塊,如果判斷出第四內(nèi)容塊集合中存在內(nèi)容塊的字符數(shù)未處于預(yù)設(shè)范圍內(nèi),則從第四內(nèi)容塊集合中剔除字符數(shù)未處于預(yù)設(shè)范圍內(nèi)的內(nèi)容塊。
實(shí)際情況中,文本中存在一些句子過短,例如,但是、因此等銜接詞,為了避免這些過短的句子對(duì)相似文本判定結(jié)果的影響,本申請(qǐng)實(shí)施例設(shè)置了一個(gè)預(yù)設(shè)范圍,如果某個(gè)內(nèi)容塊的長(zhǎng)度未處于該預(yù)設(shè)范圍內(nèi),則直接剔除掉該內(nèi)容塊。
由上述描述可知,本申請(qǐng)實(shí)施例通過對(duì)文本的句子進(jìn)行取樣,大大減少了這些細(xì)微修改對(duì)相似文章判定結(jié)果的影響;此外,本申請(qǐng)實(shí)施例的計(jì)算速度快,樣本數(shù)據(jù)少,便于存儲(chǔ),且準(zhǔn)確度高。
圖2是根據(jù)本申請(qǐng)實(shí)施例的文本取樣的流程圖,如圖2所示,包括如下步驟:
步驟S202,文章整理,進(jìn)行半角/全角字符轉(zhuǎn)換與繁體/簡(jiǎn)體轉(zhuǎn)換。
上述文章即文本,本申請(qǐng)實(shí)施例通過對(duì)文本進(jìn)行半角/全角字符轉(zhuǎn)換與繁體/簡(jiǎn)體轉(zhuǎn)換等預(yù)處理,從而可以避免相同文本內(nèi)容因?yàn)楦袷讲煌慌卸椴幌嗤谋緝?nèi)容。
步驟S204,將文章按標(biāo)點(diǎn)符號(hào)拆分成句子。
即將文本按照斷句符進(jìn)行分塊,得到多個(gè)內(nèi)容塊。
步驟S206,樣本數(shù)Cnt=0。
樣本數(shù)即從文本中獲取的樣本數(shù)量,本申請(qǐng)實(shí)施例將最大取樣數(shù)(即上述第二預(yù)設(shè)數(shù)量)設(shè)置為20,即從各個(gè)文本中取前20個(gè)內(nèi)容塊作為樣本,初始時(shí)將樣本數(shù)設(shè)置為0。
步驟S208,樣本數(shù)Cnt<20?
由于取樣數(shù)多的文本更容易與取樣數(shù)少的文本匹配,為了防止取樣數(shù)對(duì)判定結(jié)果造成影響,需要對(duì)每個(gè)文本的取樣數(shù)進(jìn)行限定。一般情況下,如果兩個(gè)文本前面部分相似,則可以認(rèn)為這兩個(gè)文本相似。
具體地,判斷當(dāng)前樣本數(shù)Cnt是否小于20(即上述第二預(yù)設(shè)數(shù)量),如果當(dāng)前樣本數(shù)Cnt小于20,則執(zhí)行步驟S210,如果當(dāng)前樣本數(shù)Cnt不小于20,則結(jié)束流程。
步驟S210,判斷是否存在下一個(gè)句子。
即判斷文本中是否存在下一個(gè)句子(即內(nèi)容塊),如果文本中存在下一個(gè)句子,則繼續(xù)取樣,執(zhí)行步驟S212,如果文本中不存在下一個(gè)句子,則當(dāng)前計(jì)算失敗,結(jié)束流程。
步驟S212,取下一個(gè)句子。
步驟S214,截取句子前10個(gè)字符作為樣本。
本申請(qǐng)實(shí)施例獲取該句子前10個(gè)字符作為樣本,其中,10即上述第一預(yù)設(shè)數(shù)量。
實(shí)際情況中,由于太長(zhǎng)的樣本會(huì)大大提高細(xì)微修改的影響,而太短的樣本則無法作為句子的特征,因此,本申請(qǐng)實(shí)施例對(duì)樣本長(zhǎng)度進(jìn)行了限定,可選地,可以將樣本長(zhǎng)度設(shè)置為6到10之間,即區(qū)間[6,10]之間,其中,區(qū)間[6,10]即上述預(yù)設(shè)范圍。
步驟S216,判斷樣本長(zhǎng)度是否大于或等于6。
如果樣本長(zhǎng)度大于或等于6,則執(zhí)行步驟S218,否則剔除掉該樣本,并執(zhí)行步驟S208。
步驟S218,樣本數(shù)Cnt加1。
步驟S220,計(jì)算樣本的哈希值作為一個(gè)特征值。
需要說明的是,本申請(qǐng)實(shí)施例可以在取樣本的同時(shí)計(jì)算樣本的哈希值,也可以在樣本取完后,計(jì)算每個(gè)樣本的哈希值,作為文本的特征值。由于本申請(qǐng)實(shí)施例中的樣 本數(shù)作了限定,因此可以對(duì)樣本的特征值進(jìn)行存儲(chǔ),便于后續(xù)重復(fù)使用。
具體地,本申請(qǐng)實(shí)施例在判定兩個(gè)文本是否相似時(shí),只需要統(tǒng)計(jì)兩個(gè)文本相等的特征值的個(gè)數(shù),兩個(gè)文本相等的特征值的個(gè)數(shù)達(dá)到一定閾值則認(rèn)為這兩個(gè)文本相似,其中,該閾值可以根據(jù)不同情況變換,優(yōu)選將該閾值設(shè)為樣本數(shù)的50%。
需要說明的是,本申請(qǐng)實(shí)施例是基于句子取樣進(jìn)行相似文本判定,因此只適用于對(duì)比較長(zhǎng)的文本進(jìn)行取樣。由于不同來源對(duì)文本的修改,使用整句對(duì)相似文本匹配的效果并不會(huì)特別好,尤其是某些文章特意在每個(gè)句子中添加或修改一些語氣詞的情況下。而本申請(qǐng)實(shí)施例通過對(duì)文本的句子進(jìn)行取樣,大大減少了這些細(xì)微修改對(duì)相似文章判定結(jié)果的影響;此外,本申請(qǐng)實(shí)施例的計(jì)算速度快,樣本數(shù)據(jù)少,便于存儲(chǔ),且準(zhǔn)確度高。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
根據(jù)本申請(qǐng)實(shí)施例的另一方面,提供了一種相似文本判定裝置,該相似文本判定裝置可以用于執(zhí)行本申請(qǐng)實(shí)施例的相似文本判定方法,本申請(qǐng)實(shí)施例的相似文本判定方法也可以通過本申請(qǐng)實(shí)施例的相似文本判定裝置來執(zhí)行。
圖3是根據(jù)本申請(qǐng)實(shí)施例的相似文本判定裝置的示意圖,如圖3所示,該裝置包括:分塊單元10、獲取單元20和判定單元30。
分塊單元10,用于分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合。
獲取單元20,用于分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合。
判定單元30,用于判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
本申請(qǐng)通過分塊單元10分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;獲取單元20分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;以及判定單元30判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。本申請(qǐng)通過對(duì)文本中的句子進(jìn)行取樣,可以減少文本的細(xì)微修改對(duì)相似文本判定的影響,解決了相關(guān)技術(shù)中進(jìn)行相似文本判定時(shí)準(zhǔn)確性較低的問題,進(jìn)而達(dá)到了提高相似文本判定的準(zhǔn)確性的效果。
優(yōu)選地,判定單元30包括:第一獲取模塊,用于分別從第三內(nèi)容塊集合和第四內(nèi)容塊集合中獲取第二預(yù)設(shè)數(shù)量的內(nèi)容塊,得到第五內(nèi)容塊集合和第六內(nèi)容塊集合,其中,第五內(nèi)容塊集合為從第三內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合,第六內(nèi)容塊集合為從第四內(nèi)容塊集合中獲取的第二預(yù)設(shè)數(shù)量的內(nèi)容塊組成的內(nèi)容塊集合;第一統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量;以及第一判斷模塊,用于判斷第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值。
可選地,第一統(tǒng)計(jì)模塊包括:計(jì)算子模塊,用于分別計(jì)算第五內(nèi)容塊集合中各個(gè)內(nèi)容塊和第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值,得到第一哈希值集合和第二哈希值集合,其中,第一哈希值集合為第五內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合,第二哈希值集合為第六內(nèi)容塊集合中各個(gè)內(nèi)容塊的哈希值組成的集合;以及統(tǒng)計(jì)子模塊,用于根據(jù)第一哈希值集合和第二哈希值集合統(tǒng)計(jì)第五內(nèi)容塊集合和第六內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量。
可選地,獲取單元20包括:第二統(tǒng)計(jì)模塊,用于分別統(tǒng)計(jì)第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的字符數(shù);第二判斷模塊,用于分別判斷第一內(nèi)容塊集合和第二內(nèi)容塊集合中是否存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊;第二獲取模塊,用于在判斷出第一內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合,在判斷出第一內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取第一內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù) 設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合;以及第三獲取模塊,用于在判斷出第二內(nèi)容塊集合中存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的全部字符和字符數(shù)不小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合,在判斷出第二內(nèi)容塊集合中不存在字符數(shù)小于第一預(yù)設(shè)數(shù)量的內(nèi)容塊時(shí),獲取第二內(nèi)容塊集合中各個(gè)內(nèi)容塊的第一預(yù)設(shè)數(shù)量的字符,得到第四內(nèi)容塊集合。
所述相似文本判定裝置包括處理器和存儲(chǔ)器,上述分塊單元、獲取單元和判定單元等均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元來實(shí)現(xiàn)相應(yīng)的功能。
處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過調(diào)整內(nèi)核參數(shù)來進(jìn)行相似文本判定。
存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。
本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:分別按照斷句符對(duì)第一文本和第二文本進(jìn)行分塊,得到第一內(nèi)容塊集合和第二內(nèi)容塊集合,其中,第一內(nèi)容塊集合為第一文本分塊后得到的內(nèi)容塊集合,第二內(nèi)容塊集合為第二文本分塊后得到的內(nèi)容塊集合;分別從第一內(nèi)容塊集合中各個(gè)內(nèi)容塊和第二內(nèi)容塊集合中各個(gè)內(nèi)容塊中獲取第一預(yù)設(shè)數(shù)量的字符,得到第三內(nèi)容塊集合和第四內(nèi)容塊集合,其中,第三內(nèi)容塊集合為從第一內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合,第四內(nèi)容塊集合為從第二內(nèi)容塊集合的各個(gè)內(nèi)容塊中獲取的第一預(yù)設(shè)數(shù)量的字符組成的內(nèi)容塊集合;判斷第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量是否大于預(yù)設(shè)值,其中,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同內(nèi)容塊的數(shù)量大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為相似文本,在判斷出第三內(nèi)容塊集合和第四內(nèi)容塊集合中相同的內(nèi)容塊的數(shù)量不大于預(yù)設(shè)值時(shí),則判定第一文本和第二文本為不相似文本。
上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件 可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請(qǐng)?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。