本申請涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種文本檢測方法及裝置。
背景技術(shù):
當(dāng)今時(shí)代是大數(shù)據(jù)時(shí)代,數(shù)據(jù)量的增長速度非常迅猛。為了避免數(shù)據(jù)重復(fù),在聚類分析、數(shù)據(jù)去重、信息檢索等很多領(lǐng)域通常會(huì)檢測獲取到的待檢測文本是否是重復(fù)文本。
按照現(xiàn)有的文本檢測方法,首先采用貝葉斯算法對已檢測出的重復(fù)文本集合進(jìn)行訓(xùn)練得出文本相似度計(jì)算模型;然后以詞語為單位分割待檢測文本,得到待檢測文本包括的詞語,統(tǒng)計(jì)每個(gè)詞語的出現(xiàn)頻率,將待檢測文本包括的詞語及其出現(xiàn)頻率帶入文本相似度計(jì)算模型中,得到待檢測文本的相似度;最后將待檢測文本的相似度與設(shè)定閥值進(jìn)行比較,若待檢測文本的相似度大于設(shè)定閾值,則確定待檢測文本是重復(fù)文本。
上述文本檢測方法中,需要將每個(gè)待檢測文本包括的詞語及其出現(xiàn)頻率帶入文本相似度模型計(jì)算待檢測文本的相似度,通常每個(gè)待檢測文本包括的詞語數(shù)量非常大,因此,上述文本檢測方法的計(jì)算量非常大,對計(jì)算資源要求很高。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種文本檢測方法及裝置,用以解決相關(guān)技術(shù)中存在的計(jì)算量非常大,對計(jì)算資源要求很高的問題。
根據(jù)本申請實(shí)施例,提供一種文本檢測方法,包括:
生成待檢測文本的摘要信息;
確定摘要信息集合中是否保存所述摘要信息;
若所述摘要信息集合中保存所述摘要信息,則根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本;
若所述摘要信息集合中未保存所述摘要信息,則根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本。
具體的,生成待檢測文本的摘要信息,具體包括:
獲取待檢測文本;
將所述待檢測文本以詞語為單位進(jìn)行分割,得到所述待檢測文本包括的原始詞語;
根據(jù)設(shè)定規(guī)則篩選所述待檢測文本包括的原始詞語,得到所述待檢測文本包括的候選詞語;
統(tǒng)計(jì)所述候選詞語在所述待檢測文本的出現(xiàn)頻率;
選取出現(xiàn)頻率大于預(yù)設(shè)頻率的候選詞語作為所述待檢測文本包括的選定詞語;
根據(jù)所述選定詞語生成所述待檢測文本的摘要信息。
具體的,根據(jù)所述選定詞語生成所述待檢測文本的摘要信息,具體包括:
組合所述選定詞語得到所述待檢測文本的摘要信息;或者,
將所述待檢測文本以語句為單位進(jìn)行分割,得到所述待檢測文本包括的原始語句;從所述原始語句中選取包括所述選定詞語的語句作為所述待檢測文本包括的選定語句;將所述選定語句按照在所述待檢測文本中出現(xiàn)的先后順序進(jìn)行排序,得到所述待檢測文本的摘要信息。
具體的,確定摘要信息集合中是否保存所述摘要信息,具體包括:
將所述摘要信息進(jìn)行至少兩次哈希處理,得到一組哈希值;
從所述摘要信息集合中查找所述一組哈希值;
若查找到所述一組哈希值,則確定所述摘要信息集合中保存所述摘要信息;
若未查找到所述一組哈希值,則確定所述摘要信息集合中未保存所述摘要信息。
可選的,在確定所述摘要信息集合中未保存所述摘要信息之后,還包括:
將所述一組哈希值與所述摘要信息對應(yīng)保存在所述摘要信息集合中;
在文本數(shù)據(jù)庫中建立所述摘要信息對應(yīng)的歷史文本集合;
將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本,具體包括:
從文本數(shù)據(jù)庫中獲取所述摘要信息對應(yīng)的歷史文本集合;
確定所述歷史文本集合中是否保存與所述待檢測文本相同的歷史文本;
若確定所述歷史文本集合中保存與所述待檢測文本相同的歷史文本,則確定所述待檢測文本是重復(fù)文本;
若確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本,則逐一計(jì)算所述待檢測文本與所述歷史文本集合中每個(gè)歷史文本的相似度,確定計(jì)算出的每個(gè)相似度是否大于第一設(shè)定閾值,若計(jì)算出的至少一個(gè)相似度大于所述第一設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本,若計(jì)算出的所有相似度均小于或等于所述第一設(shè)定閾值,則確定所述待檢測文本不是重復(fù)文本。
可選的,確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本之后,還包括:
將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本,具體包括:
獲取文本相似度計(jì)算模型;
根據(jù)所述文本相似度計(jì)算模型計(jì)算所述待檢測文本的相似度;
確定所述待檢測文本的相似度是否大于第二設(shè)定閾值;
若所述待檢測文本的相似度大于所述第二設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本;若所述待檢測文本的相似度小于或等于所述第二設(shè)定閾值,則確定所述待檢測文本不是重復(fù)文本。
根據(jù)本申請實(shí)施例,還提供一種文本檢測裝置,包括:
生成單元,用于生成待檢測文本的摘要信息;
確定單元,用于確定摘要信息集合中是否保存所述摘要信息;
檢測單元,用于若所述確定單元確定所述摘要信息集合中保存所述摘要信息,則根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本;若所述確定單元確定所述摘要信息集合中未保存所述摘要信息,則根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本。
具體的,所述生成單元,用于生成待檢測文本的摘要信息,具體用于:
獲取待檢測文本;
將所述待檢測文本以詞語為單位進(jìn)行分割,得到所述待檢測文本包括的原始詞語;
根據(jù)設(shè)定規(guī)則篩選所述待檢測文本包括的原始詞語,得到所述待檢測文本包括的候選詞語;
統(tǒng)計(jì)所述候選詞語在所述待檢測文本的出現(xiàn)頻率;
選取出現(xiàn)頻率大于預(yù)設(shè)頻率的候選詞語作為所述待檢測文本包括的選定詞語;
根據(jù)所述選定詞語生成所述待檢測文本的摘要信息。
具體的,所述生成單元,用于根據(jù)所述選定詞語生成所述待檢測文本的摘要信息,具體用于:
組合所述選定詞語得到所述待檢測文本的摘要信息;或者,
將所述待檢測文本以語句為單位進(jìn)行分割,得到所述待檢測文本包括的原始語句;從所述原始語句中選取包括所述選定詞語的語句作為所述待檢測文本包括的選定語句;將所述選定語句按照在所述待檢測文本中出現(xiàn)的先后順序進(jìn)行排序,得到所述待檢測文本的摘要信息。
具體的,所述確定單元,用于確定摘要信息集合中是否保存所述摘要信息,具體用于:
將所述摘要信息進(jìn)行至少兩次哈希處理,得到一組哈希值;
從所述摘要信息集合中查找所述一組哈希值;
若查找到所述一組哈希值,則確定所述摘要信息集合中保存所述摘要信息;
若未查找到所述一組哈希值,則確定所述摘要信息集合中未保存所述摘要信息。
可選的,所述確定單元,還用于:
在確定所述摘要信息集合中未保存所述摘要信息之后,將所述一組哈希值與所述摘要信息對應(yīng)保存在所述摘要信息集合中;
在文本數(shù)據(jù)庫中建立所述摘要信息對應(yīng)的歷史文本集合;
將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,所述檢測單元,用于根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本,具體用于:
從文本數(shù)據(jù)庫中獲取所述摘要信息對應(yīng)的歷史文本集合;
確定所述歷史文本集合中是否保存與所述待檢測文本相同的歷史文本;
若確定所述歷史文本集合中保存與所述待檢測文本相同的歷史文本,則確定所述待檢測文本是重復(fù)文本;
若確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本,則逐一計(jì)算所述待檢測文本與所述歷史文本集合中每個(gè)歷史文本的相似度,確定計(jì)算出的每個(gè)相似度是否大于第一設(shè)定閾值,若計(jì)算出的至少一個(gè)相似度大于所述第一設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本,若計(jì)算出的所有相似度均小于或等于所述第一設(shè)定閾值,則確定所述待檢測文本不是重復(fù)文本。
可選的,所述檢測單元,還用于:
在確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本之后,將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,所述檢測單元,用于根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本,具體用于:
獲取文本相似度計(jì)算模型;
根據(jù)所述文本相似度計(jì)算模型計(jì)算所述待檢測文本的相似度;
確定所述待檢測文本的相似度是否大于第二設(shè)定閾值;
若所述待檢測文本的相似度大于所述第二設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本;若所述待檢測文本的相似度小于或等于所述第二設(shè)定閾值,則確定所述待檢測文本不是重復(fù)文本。
本申請實(shí)施例提供一種文本檢測方法及裝置,生成待檢測文本的摘要信息;確定摘要信息集合中是否保存所述摘要信息;若所述摘要信息集合中保存所述摘要信息,則根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本;若所述摘要信息集合中未保存所述摘要信息,則根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本。該方案中,首先生成待檢測文本的摘要信息,然后確定摘要信息集合中是否保存該摘要信息,若保存則根據(jù)該摘要信息對應(yīng)的歷史文本集合檢測待檢測文本是否是重復(fù)文本,若未保存才會(huì)根據(jù)文本相似度計(jì)算模型檢測待檢測文本是否是重復(fù)文本,并不是直接根據(jù)文本相似度計(jì)算模型對待檢測文本進(jìn)行檢測,避免了根據(jù)文本相似度計(jì)算模型計(jì)算每個(gè)待檢測文本的相似度,從而有效縮減了需要計(jì)算相似度的待檢測文本的數(shù)量,減少了計(jì)算量,降低了對計(jì)算資源的要求。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例中一種文本檢測方法的流程圖;
圖2為本申請實(shí)施例中S11的流程圖;
圖3為本申請實(shí)施例中S12的流程圖;
圖4為本申請實(shí)施例中S13的流程圖;
圖5為本申請實(shí)施例中S14的流程圖;
圖6為本申請實(shí)施例中另一種文本檢測方法的流程圖;
圖7為本申請實(shí)施例中一種文本檢測裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本申請所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對本申請進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本申請,并不用于限定本申請。
為了解決相關(guān)技術(shù)中存在的計(jì)算量非常大,對計(jì)算資源要求很高的問題,本申請實(shí)施例提供一種文本檢測方法,該方法的流程如圖1所示,具體包括如下步驟:
S11:生成待檢測文本的摘要信息。
為了避免數(shù)據(jù)重復(fù),在聚類分析、數(shù)據(jù)去重、信息檢索等很多領(lǐng)域都需要檢測獲取到的每個(gè)文本是否是重復(fù)文本,當(dāng)前獲取到的文本作為待檢測文本,待檢測文本可以是郵件、短信、論文、推廣信息、評論、新聞等等。
待檢測文本的摘要信息描述的是待檢測文本的概要,可以根據(jù)待檢測文本生成。
S12:確定摘要信息集合中是否保存待檢測文本的摘要信息,若摘要信息集合中保存待檢測文本的摘要信息,則執(zhí)行S13;若摘要信息集合中未保存待檢測文本的摘要信息,則執(zhí)行S14。
可以預(yù)先將歷史文本的摘要信息或者摘要信息的相關(guān)信息保存在摘要信息集合中,以便于后續(xù)對待檢測文本進(jìn)行檢查時(shí)進(jìn)行比對。
S13:根據(jù)待檢測文本的摘要信息對應(yīng)的歷史文本集合檢測待檢測文本是否是重復(fù)文本。
可以預(yù)先建立每個(gè)摘要信息對應(yīng)的歷史文本集合,若確定摘要集合中保存待檢測文本的摘要信息,則根據(jù)該摘要信息對應(yīng)的歷史文本集合來檢測待檢測文本是否是重復(fù)文本,由于每個(gè)摘要信息對應(yīng)的歷史文本集合中包括的歷史文本個(gè)數(shù)有限,因此,該步驟的計(jì)算量很小,對計(jì)算資源的要求不高。
S14:根據(jù)文本相似度計(jì)算模型檢測待檢測文本是否是重復(fù)文本。
文本相似度計(jì)算模型可以是預(yù)先根據(jù)已有的重復(fù)文本訓(xùn)練得到的,隨著時(shí)間的推移,重復(fù)文本不斷變化,因此為了保證計(jì)算精度需要按照設(shè)定周期訓(xùn)練已有的重復(fù)文本得到更 為準(zhǔn)確的文本相似度計(jì)算模型。由于通過S11和S12對待檢測文本進(jìn)行了篩選,在該步驟中只需對于摘要信息未保存在摘要信息集合中的待檢測文本進(jìn)行檢測即可。
該方案中,首先生成待檢測文本的摘要信息,然后確定摘要信息集合中是否保存該摘要信息,若保存則根據(jù)該摘要信息對應(yīng)的歷史文本集合檢測待檢測文本是否是重復(fù)文本,若未保存才會(huì)根據(jù)文本相似度計(jì)算模型檢測待檢測文本是否是重復(fù)文本,并不是直接根據(jù)文本相似度計(jì)算模型對待檢測文本進(jìn)行檢測,避免了根據(jù)文本相似度計(jì)算模型計(jì)算每個(gè)待檢測文本的相似度,從而有效縮減了需要計(jì)算相似度的待檢測文本的數(shù)量,減少了計(jì)算量,降低了對計(jì)算資源的要求。
下面詳細(xì)介紹上述方法的各個(gè)步驟。
具體的,上述S11中的生成待檢測文本的摘要信息的實(shí)現(xiàn)過程如圖2所示,具體包括以下步驟:
S111:獲取待檢測文本。
獲取的方式可以是用戶輸入、主動(dòng)搜索、自動(dòng)上傳等等。
S112:將待檢測文本以詞語為單位進(jìn)行分割,得到待檢測文本包括的原始詞語。
該步驟中,詞語可以中文、英文、法文、拉丁文等等,分割待檢測文本后,得到的是待檢測文本包括的原始詞語。
S113:根據(jù)設(shè)定規(guī)則篩選待檢測文本包括的原始詞語,得到待檢測文本包括的候選詞語。
待檢測文本包括的原始詞語中,很多并不適合出現(xiàn)在摘要信息中,因此可以根據(jù)設(shè)定規(guī)則對這些原始詞語進(jìn)行篩選,得到待檢測文本包括的候選詞語。
設(shè)定規(guī)則可以包括過濾掉停用詞、歧義詞、非法詞、人稱代詞、助詞等等。
S114:統(tǒng)計(jì)待檢測文本包括的候選詞語在待檢測文本的出現(xiàn)頻率。
例如:待檢測文本包括的原始詞語共10000個(gè),待檢測文本包括的候選詞語為“假期”、“家人”、“旅游”和“出國”,其中,“假期”共出現(xiàn)310次,“家人”共出現(xiàn)520次,“旅游”共出現(xiàn)450次,“出國”共出現(xiàn)150次,那么,“假期”的出現(xiàn)頻率為310/10000,“家人”的出現(xiàn)頻率為520/10000,“旅游”的出現(xiàn)頻率為450/10000,“出國”的出現(xiàn)頻率為150/10000。
S115:選取出現(xiàn)頻率大于預(yù)設(shè)頻率的候選詞語作為待檢測文本包括的選定詞語。
預(yù)設(shè)頻率可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。
繼續(xù)沿用上例,若預(yù)設(shè)頻率為30/1000,則待檢測文本包括的選定詞語為“假期”、“家人”“旅游”。
S116:根據(jù)待檢測文本包括的選定詞語生成待檢測文本的摘要信息。
該步驟的實(shí)現(xiàn)方式有很多種,下面列舉兩種方式進(jìn)行說明:
第一種實(shí)現(xiàn)方式,組合待檢測文本包括的選定詞語得到待檢測文本的摘要信息。
繼續(xù)沿用上例,最終生成的待檢測文本的摘要信息可以為“假期家人旅游”。
第二種實(shí)現(xiàn)方式,將待檢測文本以語句為單位進(jìn)行分割,得到待檢測文本包括的原始語句;從待檢測文本包括的原始語句中選取包括選定詞語的語句作為待檢測文本包括的選定語句;將待檢測文本包括的選定語句按照在待檢測文本中出現(xiàn)的先后順序進(jìn)行排序,得到待檢測文本的摘要信息。
可以將標(biāo)點(diǎn)符號作為分割語句的標(biāo)志,兩個(gè)標(biāo)點(diǎn)符號之間的內(nèi)容作為一個(gè)原始語句,然后通過待檢測文本包括的選定詞語確定待檢測文本包括的選定語句,再組合待檢測文本包括的選定語句得到待檢測文本的摘要信息。
通過步驟S111-S116,可以生成待檢測文本的摘要信息,由于只是對待檢測文本進(jìn)行了分詞、篩選就可以生成待檢測文本的摘要信息,計(jì)算量非常小,需要的計(jì)算資源也很少,從而可以有效避免相關(guān)技術(shù)中的問題。
具體的,上述S12中的確定摘要信息集合中是否保存待檢測文本的摘要信息的實(shí)現(xiàn)方式如圖3所示,具體包括如下步驟:
S121:將待檢測文本的摘要信息進(jìn)行至少兩次哈希處理,得到一組哈希值。
為了減少誤差、提高準(zhǔn)確性,可以對待檢測文本的摘要信息進(jìn)行至少兩次哈希處理,得到的至少兩個(gè)哈希值作為一組哈希值,用于進(jìn)一步確定摘要信息集合中是否保存待檢測文本的摘要信息??蛇x的,可以進(jìn)行四次、五次、六次等等哈希處理。
S122:從摘要信息集合中查找一組哈希值,若查找到一組哈希值,則執(zhí)行S123;若未查找到一組哈希值,則執(zhí)行S124。
在該實(shí)施例中,摘要信息集合中保存的是每個(gè)摘要信息對應(yīng)的一組哈希值,因此可以通過確定摘要信息集合中是否保存S121中得到的一組哈希值確定摘要信息集合中是否保存待檢測文本的摘要信息。
S123:確定摘要信息集合中保存待檢測文本的摘要信息。
S124:確定摘要信息集合中未保存待檢測文本的摘要信息。
S12的實(shí)現(xiàn)方式有很多種,根據(jù)摘要信息集合中保存的信息不同而不同。例如,當(dāng)摘要信息集合中保存的是各個(gè)摘要信息對應(yīng)的一組哈希值的實(shí)現(xiàn)方式,可以通過S121-S124來實(shí)現(xiàn);當(dāng)摘要信息集合中保存的是各個(gè)摘要信息的具體內(nèi)容時(shí),還可以直接將待檢測文本的摘要信息與摘要信息集合中的集合信息逐一比對來實(shí)現(xiàn)。
一種可選的實(shí)施方式,在確定摘要信息集合中未保存待檢測文本的摘要信息之后,還包括:將一組哈希值與待檢測文本的摘要信息對應(yīng)保存在摘要信息集合中;在文本數(shù)據(jù)庫中建立待檢測文本的摘要信息對應(yīng)的歷史文本集合;將待檢測文本保存在待檢測文本的摘要信息對應(yīng)的歷史文本集合中。
待檢測文本的摘要信息對應(yīng)的歷史文本集合可以但不限于保存在文本數(shù)據(jù)庫中。
由于摘要信息集合中未保存待檢測文本的摘要信息,為了便于后續(xù)檢測文本,可以將一組哈希值與待檢測文本的摘要信息對應(yīng)保存在摘要信息集合中,并在文本數(shù)據(jù)中保存待檢測文本。
具體的,上述S13的根據(jù)待檢測文本的摘要信息對應(yīng)的歷史文本集合檢測待檢測文本是否是重復(fù)文本的實(shí)現(xiàn)方式如圖4所示,具體包括步驟:
S131:從文本數(shù)據(jù)庫中獲取待檢測文本的摘要信息對應(yīng)的歷史文本集合。
該歷史文本集合中保存的是與待檢測文本的摘要信息對應(yīng)的歷史文本,因此,需要首先獲取該摘要信息對應(yīng)的歷史文本集合。
S132:確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中是否保存與待檢測文本相同的歷史文本,若確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中保存與待檢測文本相同的歷史文本,則執(zhí)行S133;若確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中未保存與待檢測文本相同的歷史文本,則執(zhí)行S134。
S133:確定待檢測文本是重復(fù)文本。
若確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中保存與待檢測文本相同的歷史文本,則可以直接確定待檢測文本是重復(fù)文本。
S134:逐一計(jì)算待檢測文本與歷史文本集合中每個(gè)歷史文本的相似度,執(zhí)行S135。
若確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中未保存與待檢測文本相同的歷史文本,還需要逐一計(jì)算待檢測文本的摘要信息對應(yīng)的歷史文本集合中每個(gè)歷史文本與待檢測文本的相似度,進(jìn)而來確定待檢測文本是否是重復(fù)文本。
S135:確定計(jì)算出的每個(gè)相似度是否大于第一設(shè)定閾值,若計(jì)算出的至少一個(gè)相似度大于第一設(shè)定閾值,則執(zhí)行S136;若計(jì)算出的所有相似度均小于或等于第一設(shè)定閾值,則 執(zhí)行S137。
第一設(shè)定閾值可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。
S136:確定待檢測文本是重復(fù)文本。
若計(jì)算出的至少一個(gè)相似度大于第一設(shè)定閾值,說明待檢測文本與其摘要信息對應(yīng)的歷史文本集合中的多個(gè)歷史文本相似度極高,則可以直接確定該檢測文本是重復(fù)文本。
S137:確定待檢測文本不是重復(fù)文本。
若計(jì)算出的所有相似度均小于或等于第一設(shè)定閾值,說明待檢測文本與其摘要信息對應(yīng)的歷史文本集合中的所有歷史文本均不相似,則可以直接確定待檢測文本不是重復(fù)文本。
S134中計(jì)算待檢測文本的摘要信息對應(yīng)的歷史文本集合中每個(gè)歷史文本與待檢測文本的相似度,相對于根據(jù)文本相似度計(jì)算模型來計(jì)算待檢測文本的相似度的計(jì)算量要小的多,因此,本實(shí)施例中的文本檢測方法相對于相關(guān)技術(shù)中的方法,減少了計(jì)算量,節(jié)省了計(jì)算資源。
一種可選的實(shí)施方式,確定待檢測文本的摘要信息對應(yīng)的歷史文本集合中未保存與待檢測文本相同的歷史文本之后,還包括:將待檢測文本保存在待檢測文本的摘要信息對應(yīng)的歷史文本集合中。從而可以便于后續(xù)進(jìn)行文本檢測。
具體的,上述S14中的根據(jù)文本相似度計(jì)算模型檢測待檢測文本是否是重復(fù)文本的實(shí)現(xiàn)方式如圖5所示,具體包括如下步驟:
S141:獲取文本相似度計(jì)算模型。
文本相似度計(jì)算模型可以是預(yù)先根據(jù)已有的重復(fù)文本訓(xùn)練得到的,隨著時(shí)間的推移,重復(fù)文本不斷變化,因此為了保證計(jì)算精度需要按照設(shè)定周期訓(xùn)練已有的重復(fù)文本得到更為準(zhǔn)確的文本相似度計(jì)算模型。具體可以但不限于采用貝葉斯算法訓(xùn)練已有的重復(fù)文本集合得到文本相似度計(jì)算模型。
S142:根據(jù)文本相似度計(jì)算模型計(jì)算待檢測文本的相似度。
具體過程可以是,以詞語為單位分割待檢測文本,得到待檢測文本包括的原始詞語,統(tǒng)計(jì)每個(gè)原始詞語的出現(xiàn)頻率,將待檢測文本包括的原始詞語及其出現(xiàn)頻率帶入文本相似度計(jì)算模型中,得到待檢測文本的相似度。
S143:確定待檢測文本的相似度是否大于第二設(shè)定閾值,若待檢測文本的相似度大于第二設(shè)定閾值,則執(zhí)行S144;若待檢測文本的相似度小于或等于第二設(shè)定閾值,則執(zhí)行S145。
第二設(shè)定閾值可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。
S144:確定待檢測文本是重復(fù)文本。
若待檢測文本的相似度大于第二設(shè)定閾值,說明待檢測文本與已有的重復(fù)文本非常相似,則直接確定待檢測文本是重復(fù)文本。
S145:確定待檢測文本不是重復(fù)文本。
若待檢測文本的相似度小于或等于第二設(shè)定閾值,則說明待檢測文本與已有的重復(fù)文本均不相似,則直接確定待檢測文本不是重復(fù)文本。
上述S133、S136和S144在確定待檢測文本是重復(fù)文本后,還可以在待檢測文本上添加重復(fù)文本標(biāo)識,用于后續(xù)訓(xùn)練得到文本相似度計(jì)算模型。
本申請實(shí)施例還提供另一種文本檢測方法,該方法的應(yīng)用場景是服務(wù)器檢測接收到的郵件是否為重復(fù)郵件(通常認(rèn)為重復(fù)郵件就是垃圾郵件),若服務(wù)器檢測出接收到的郵件不是重復(fù)郵件,則將該郵件發(fā)送給用戶,若服務(wù)器檢測出接收到的郵件為重復(fù)郵件,則直接攔截該郵件或者發(fā)送給用戶并且給予提醒。該方法的流程如圖6所示,具體包括如下步驟:
S601:接收待檢測郵件。
S602:將待檢測郵件以詞語為單位進(jìn)行分割,得到待檢測郵件包括的原始詞語。
該步驟中,詞語可以中文、英文、法文、拉丁文等等,分割待檢測郵件后,得到的是待檢測郵件包括的原始詞語。
S603:根據(jù)設(shè)定規(guī)則篩選待檢測郵件包括的原始詞語,得到待檢測郵件包括的候選詞語。
待檢測郵件包括的原始詞語中,很多并不適合出現(xiàn)在摘要信息中,因此可以根據(jù)設(shè)定規(guī)則對這些原始詞語進(jìn)行篩選,得到待檢測郵件包括候選詞語。
設(shè)定規(guī)則可以包括過濾掉停用詞、歧義詞、非法詞、人稱代詞、助詞等等。
S604:統(tǒng)計(jì)待檢測郵件包括的候選詞語在待檢測郵件的出現(xiàn)頻率。
例如:待檢測郵件包括的原始詞語共1000個(gè),待檢測郵件包括的候選詞語為“公司”、“招標(biāo)”、“設(shè)備”和“產(chǎn)品”,其中,“公司”共出現(xiàn)30次,招標(biāo)”共出現(xiàn)50次,“設(shè)備”共出現(xiàn)40次,“產(chǎn)品”共出現(xiàn)10次,那么,“公司”的出現(xiàn)頻率為30/1000,“招標(biāo)”的出現(xiàn)頻率為50/1000,“產(chǎn)品”的出現(xiàn)頻率為40/1000,“產(chǎn)品”的出現(xiàn)頻率為10/1000。
S605:選取出現(xiàn)頻率大于預(yù)設(shè)頻率的候選詞語作為待檢測郵件包括的選定詞語。
繼續(xù)沿用上例,若預(yù)設(shè)頻率為29/1000,則待檢測郵件包括的選定詞語為“公司”、“招標(biāo)”“設(shè)備”。
S606:將待檢測郵件以語句為單位進(jìn)行分割,得到待檢測郵件包括的原始語句;從待檢測郵件包括的原始語句中選取包括選定詞語的語句作為待檢測郵件包括的選定語句;將待檢測郵件包括的選定語句按照在待檢測郵件中出現(xiàn)的先后順序進(jìn)行排序,得到待檢測郵件的摘要信息。
可以將標(biāo)點(diǎn)符號作為分割語句的標(biāo)志,兩個(gè)標(biāo)點(diǎn)符號之間的內(nèi)容作為一個(gè)原始語句,然后通過待檢測郵件包括的選定詞語確定待檢測郵件包括的選定語句,再組合待檢測郵件包括的選定語句得到待檢測郵件的摘要信息。
S607:將待檢測郵件的摘要信息進(jìn)行五次哈希處理,得到一組哈希值。
得到的一組哈希值中包括五次哈希處理的結(jié)果。
S608:從摘要信息集合中查找一組哈希值,若查找到一組哈希值,則執(zhí)行S609;若未查找到一組哈希值,則執(zhí)行S610。
可以預(yù)先將歷史郵件的摘要信息或者摘要信息的相關(guān)信息保存在摘要信息集合中,以便于后續(xù)對待檢測郵件進(jìn)行檢查時(shí)進(jìn)行比對。
S609:確定摘要信息集合中保存待檢測郵件的摘要信息,執(zhí)行S611。
S610:確定摘要信息集合中未保存待檢測郵件的摘要信息,執(zhí)行S618。
S611:從文本數(shù)據(jù)庫中獲取待檢測郵件的摘要信息對應(yīng)的歷史郵件集合。
該歷史郵件集合中保存的是與待檢測郵件的摘要信息對應(yīng)的歷史郵件,因此,需要首先獲取該摘要信息對應(yīng)的歷史郵件集合。
S612:確定待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中是否保存與待檢測郵件相同的歷史郵件,若確定待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中保存與待檢測郵件相同的歷史郵件,則執(zhí)行S613;若確定待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中未保存與待檢測郵件相同的歷史郵件,則執(zhí)行S614。
S613:確定待檢測郵件是重復(fù)郵件。
若確定待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中保存與待檢測郵件相同的歷史郵件,則可以直接確定待檢測郵件是重復(fù)郵件。
S614:將待檢測郵件保存在待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中,逐一計(jì)算待檢測郵件與歷史郵件集合中每個(gè)歷史郵件的相似度,執(zhí)行S615。
若確定待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中未保存與待檢測郵件相同的歷史郵件,還需要逐一計(jì)算待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中每個(gè)歷史郵件與待檢測郵件的相似度,進(jìn)而來確定待檢測郵件是否是重復(fù)郵件。
S615:確定計(jì)算出的每個(gè)相似度是否大于第一設(shè)定閾值,若計(jì)算出的至少一個(gè)相似度大于第一設(shè)定閾值,則執(zhí)行S616;若計(jì)算出的所有相似度均小于或等于第一設(shè)定閾值,則執(zhí)行S617。
第一設(shè)定閾值可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。
S616:確定待檢測郵件是重復(fù)郵件。
若計(jì)算出的至少一個(gè)相似度大于第一設(shè)定閾值,說明待檢測郵件與其摘要信息對應(yīng)的歷史郵件集合中的多個(gè)歷史郵件相似度極高,則可以直接確定該檢測郵件是重復(fù)郵件。
S617:確定待檢測郵件不是重復(fù)郵件。
若計(jì)算出的所有相似度均小于或等于第一設(shè)定閾值,說明待檢測郵件與其摘要信息對應(yīng)的歷史郵件集合中的所有歷史郵件均不相似,則可以直接確定待檢測郵件不是重復(fù)郵件。
S618:將一組哈希值與待檢測郵件的摘要信息對應(yīng)保存在摘要信息集合中;在文本數(shù)據(jù)庫中建立待檢測郵件的摘要信息對應(yīng)的歷史郵件集合;將待檢測郵件保存在待檢測郵件的摘要信息對應(yīng)的歷史郵件集合中。
由于摘要信息集合中未保存待檢測郵件的摘要信息,為了便于后續(xù)檢測郵件,可以將一組哈希值與待檢測郵件的摘要信息對應(yīng)保存在摘要信息集合中,并在郵件數(shù)據(jù)中保存待檢測郵件。
S619:獲取文本相似度計(jì)算模型。
文本相似度計(jì)算模型可以是預(yù)先根據(jù)已有的重復(fù)郵件訓(xùn)練得到的,隨著時(shí)間的推移,重復(fù)郵件不斷變化,因此為了保證計(jì)算精度需要按照設(shè)定周期訓(xùn)練已有的重復(fù)郵件得到更為準(zhǔn)確的文本相似度計(jì)算模型。具體可以但不限于采用貝葉斯算法訓(xùn)練已有的重復(fù)郵件集合得到文本相似度計(jì)算模型。
S620:以詞語為單位分割待檢測郵件,得到待檢測郵件包括的原始詞語,統(tǒng)計(jì)每個(gè)原始詞語的出現(xiàn)頻率,將待檢測郵件包括的原始詞語及其出現(xiàn)頻率帶入文本相似度計(jì)算模型中,得到待檢測郵件的相似度。
S621:確定待檢測郵件的相似度是否大于第二設(shè)定閾值,若待檢測郵件的相似度大于第二設(shè)定閾值,則執(zhí)行S622;若待檢測郵件的相似度小于或等于第二設(shè)定閾值,則執(zhí)行S623。
第二設(shè)定閾值可以根據(jù)實(shí)際需要進(jìn)行設(shè)定。
S622:確定待檢測郵件是重復(fù)郵件。
若待檢測郵件的相似度大于第二設(shè)定閾值,說明待檢測郵件與已有的重復(fù)郵件非常相似,則直接確定待檢測郵件是重復(fù)郵件。
S623:確定待檢測郵件不是重復(fù)郵件。
若待檢測郵件的相似度小于或等于第二設(shè)定閾值,則說明待檢測郵件與已有的重復(fù)郵件均不相似,則直接確定待檢測郵件不是重復(fù)郵件。
上述S613、S616和S622在確定待檢測郵件是重復(fù)郵件后,還可以在待檢測郵件上添加重復(fù)郵件標(biāo)識,用于后續(xù)訓(xùn)練得到文本相似度計(jì)算模型
該方案中,無需直接根據(jù)文本相似度計(jì)算模型對待檢測文本進(jìn)行檢測,避免了根據(jù)文本相似度計(jì)算模型計(jì)算每個(gè)待檢測文本的相似度,從而有效縮減了需要計(jì)算相似度的待檢測文本的數(shù)量,減少了計(jì)算量,降低了對計(jì)算資源的要求。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例還提供一種文本檢測裝置,該裝置與如圖1所示的文本檢測方法相對應(yīng),該裝置的結(jié)構(gòu)如7圖所示,包括生成單元71、確定單元72和檢測單元73,其中:
所述生成單元71,用于生成待檢測文本的摘要信息;
所述確定單元72,用于確定摘要信息集合中是否保存所述摘要信息;
所述檢測單元73,用于若所述確定單元71確定所述摘要信息集合中保存所述摘要信息,則根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本;若所述確定單元71確定所述摘要信息集合中未保存所述摘要信息,則根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本。
該方案中,首先生成待檢測文本的摘要信息,然后確定摘要信息集合中是否保存該摘要信息,若保存則根據(jù)該摘要信息對應(yīng)的歷史文本集合檢測待檢測文本是否是重復(fù)文本,若未保存才會(huì)根據(jù)文本相似度計(jì)算模型檢測待檢測文本是否是重復(fù)文本,并不是直接根據(jù)文本相似度計(jì)算模型對待檢測文本進(jìn)行檢測,避免了根據(jù)文本相似度計(jì)算模型計(jì)算每個(gè)待檢測文本的相似度,從而有效縮減了需要計(jì)算相似度的待檢測文本的數(shù)量,減少了計(jì)算量,降低了對計(jì)算資源的要求。
具體的,所述生成單元71,用于生成待檢測文本的摘要信息,具體用于:
獲取待檢測文本;
將所述待檢測文本以詞語為單位進(jìn)行分割,得到所述待檢測文本包括的原始詞語;
根據(jù)設(shè)定規(guī)則篩選所述待檢測文本包括的原始詞語,得到所述待檢測文本包括的候選詞語;
統(tǒng)計(jì)所述候選詞語在所述待檢測文本的出現(xiàn)頻率;
選取出現(xiàn)頻率大于預(yù)設(shè)頻率的候選詞語作為所述待檢測文本包括的選定詞語;
根據(jù)所述選定詞語生成所述待檢測文本的摘要信息。
具體的,所述生成單元71,用于根據(jù)所述選定詞語生成所述待檢測文本的摘要信息,具體用于:
組合所述選定詞語得到所述待檢測文本的摘要信息;或者,
將所述待檢測文本以語句為單位進(jìn)行分割,得到所述待檢測文本包括的原始語句;從所述原始語句中選取包括所述選定詞語的語句作為所述待檢測文本包括的選定語句;將所述選定語句按照在所述待檢測文本中出現(xiàn)的先后順序進(jìn)行排序,得到所述待檢測文本的摘要信息。
具體的,所述確定單元72,用于確定摘要信息集合中是否保存所述摘要信息,具體用于:
將所述摘要信息進(jìn)行至少兩次哈希處理,得到一組哈希值;
從所述摘要信息集合中查找所述一組哈希值;
若查找到所述一組哈希值,則確定所述摘要信息集合中保存所述摘要信息;
若未查找到所述一組哈希值,則確定所述摘要信息集合中未保存所述摘要信息。
可選的,所述確定單元72,還用于:
在確定所述摘要信息集合中未保存所述摘要信息之后,將所述一組哈希值與所述摘要信息對應(yīng)保存在所述摘要信息集合中;
在文本數(shù)據(jù)庫中建立所述摘要信息對應(yīng)的歷史文本集合;
將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,所述檢測單元73,用于根據(jù)所述摘要信息對應(yīng)的歷史文本集合檢測所述待檢測文本是否是重復(fù)文本,具體用于:
從文本數(shù)據(jù)庫中獲取所述摘要信息對應(yīng)的歷史文本集合;
確定所述歷史文本集合中是否保存與所述待檢測文本相同的歷史文本;
若確定所述歷史文本集合中保存與所述待檢測文本相同的歷史文本,則確定所述待檢測文本是重復(fù)文本;
若確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本,則逐一計(jì)算所述待檢測文本與所述歷史文本集合中每個(gè)歷史文本的相似度,確定計(jì)算出的每個(gè)相似度是否大于第一設(shè)定閾值,若計(jì)算出的至少一個(gè)相似度大于所述第一設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本,若計(jì)算出的所有相似度均小于或等于所述第一設(shè)定閾值,則確定所 述待檢測文本不是重復(fù)文本。
可選的,所述檢測單元73,還用于:
在確定所述歷史文本集合中未保存與所述待檢測文本相同的歷史文本之后,將所述待檢測文本保存在所述摘要信息對應(yīng)的歷史文本集合中。
具體的,所述檢測單元73,用于根據(jù)文本相似度計(jì)算模型檢測所述待檢測文本是否是重復(fù)文本,具體用于:
獲取文本相似度計(jì)算模型;
根據(jù)所述文本相似度計(jì)算模型計(jì)算所述待檢測文本的相似度;
確定所述待檢測文本的相似度是否大于第二設(shè)定閾值;
若所述待檢測文本的相似度大于所述第二設(shè)定閾值,則確定所述待檢測文本是重復(fù)文本;若所述待檢測文本的相似度小于或等于所述第二設(shè)定閾值,則確定所述待檢測文本不是重復(fù)文本。
上述說明示出并描述了本申請的優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護(hù)范圍內(nèi)。