本發(fā)明涉及信息過濾技術(shù)領(lǐng)域,特別涉及一種基于動(dòng)態(tài)詞庫的敏感詞過濾方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,便利了人與人之間的信息傳播,但是一些低俗、色情、暴力、反動(dòng)的詞匯也通過互聯(lián)網(wǎng)進(jìn)行擴(kuò)散,不利于互聯(lián)網(wǎng)的健康發(fā)展,為了克服這種現(xiàn)狀,目前市場上針對(duì)敏感詞過濾主要有以下幾種方法:
字符串匹配:優(yōu)點(diǎn)是實(shí)現(xiàn)簡單。存在的問題是效率低,需要將所有詞庫中的詞循環(huán)在給定的字符串中查找,對(duì)于詞庫非常大的商業(yè)應(yīng)用,這個(gè)效率是非常低的,基本行不通。
正則表達(dá)式匹配:存在的問題是靈活性差,需要將所有詞庫拼裝成為一個(gè)正則表達(dá)式,拼裝這個(gè)表達(dá)式本身的難度就很高,而且正則表達(dá)式的效率也很低下,如果后期要增加新的詞匯,將要修改表達(dá)式,且非常難以維護(hù)。
字典樹(Trie)方式的實(shí)現(xiàn):字典樹的本質(zhì)是確定有窮自動(dòng)機(jī)(DFA)即Deterministic Finite Automaton,也就是確定有窮自動(dòng)機(jī),它是通過event和當(dāng)前的state得到下一個(gè)state,即event+state=nextstate。字典樹是一種樹形結(jié)構(gòu),它的優(yōu)點(diǎn)是:利用字符串的公共前綴來節(jié)約存儲(chǔ)空間,最大限度地減少無謂的字符串比較,查詢效率比哈希表高。它的主要步驟如下:
(1)、創(chuàng)建字典樹,
(2)、將待分詞的內(nèi)容進(jìn)行切字,將內(nèi)容打散成為單字,
(3)、對(duì)每一個(gè)字開始進(jìn)行查找,每次從根節(jié)點(diǎn)開始一次查找,取得該字對(duì)應(yīng)的子樹繼續(xù)進(jìn)行查找,在相應(yīng)的子樹上取得要要查找的第二個(gè)字,并進(jìn)一步對(duì)相應(yīng)的子樹進(jìn)行查找,如果查找到的節(jié)點(diǎn)是一個(gè)末級(jí)節(jié)點(diǎn),也就是該節(jié)點(diǎn)下沒有子節(jié)點(diǎn),這該節(jié)點(diǎn)的所有父級(jí)節(jié)點(diǎn)構(gòu)成一個(gè)我們需要查找的關(guān)鍵詞。
目前常用方案是一個(gè)分詞服務(wù)公用一個(gè)詞典文件,這樣做的缺點(diǎn)是分詞結(jié)果比較單一,無法進(jìn)行自定義,無法滿足靈活的業(yè)務(wù)需求。如果需要修改詞庫必須要中斷服務(wù)進(jìn)行詞典的重新構(gòu)建,分詞的精準(zhǔn)化和差異化程度不高。
特別是在電商領(lǐng)域,商品錄入時(shí)避免商品描述或標(biāo)題中有一些敏感詞,導(dǎo)致虛假宣傳和惡意內(nèi)容。因?yàn)椴煌惸肯碌纳唐反嬖诘拿舾性~是不一樣的,例如在某些類目下“最大”就屬于敏感詞,但是在電器這個(gè)類目下,商品一般有“最大功率”的描述,因此當(dāng)描述中“最大功率”是在電器類目下“最大”就不是敏感詞。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提出一種能夠避免由于不同類目的商品分詞結(jié)果都一致造成誤判的基于動(dòng)態(tài)詞庫的敏感詞過濾方法及系統(tǒng)。
一種基于動(dòng)態(tài)詞庫的敏感詞過濾方法,其包括如下步驟:
S1、獲取不同商品類目的不同敏感詞,生成不同商品類目對(duì)應(yīng)的敏感詞列表,并存儲(chǔ)于數(shù)據(jù)庫中;
S2、從數(shù)據(jù)庫中讀取敏感詞列表,并根據(jù)不同的商品類目以及商品類目下的敏感詞生成不同商品類目對(duì)應(yīng)的唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,所有唯一的字典樹構(gòu)成一用于分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池;
S3、接收待處理數(shù)據(jù),并根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的待處理商品的類目對(duì)應(yīng)基礎(chǔ)字典樹對(duì)象池中字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞;根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S1中不同商品類目的不同敏感詞由用戶通過一web界面維護(hù)到數(shù)據(jù)庫。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S2還包括:
敏感詞列表,按照一個(gè)商品類目對(duì)應(yīng)一個(gè)詞庫的方式構(gòu)建不同的詞庫;所述詞庫的格式為X.dic,其中X為詞庫名稱。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S3包括如下子步驟:
S31、接收待處理數(shù)據(jù),判斷待處理數(shù)據(jù)對(duì)應(yīng)的商品類目,并跳轉(zhuǎn)到步驟S32;
S32、根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目從基礎(chǔ)字典樹對(duì)象池中檢索與該商品類目對(duì)應(yīng)的字典樹;在存在時(shí)跳轉(zhuǎn)到步驟S33;否則跳轉(zhuǎn)到步驟S34;
S33、通過該字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
S34、判斷是否存在與待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫,在存在時(shí)跳轉(zhuǎn)到步驟S35,否則跳轉(zhuǎn)到步驟S36;
S35、根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫動(dòng)態(tài)構(gòu)建字典樹,并根據(jù)構(gòu)建的字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
S36、調(diào)用預(yù)先設(shè)置的通用詞庫,并根據(jù)通用詞庫構(gòu)建通用字典樹,并根據(jù)構(gòu)建的通用字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束。
本發(fā)明還提供一種基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng),其包括如下單元:
敏感詞配置單元,用于獲取不同商品類目的不同敏感詞,生成不同商品類目對(duì)應(yīng)的敏感詞列表,并存儲(chǔ)于數(shù)據(jù)庫中;
字典樹對(duì)象池生成單元,用于從數(shù)據(jù)庫中讀取敏感詞列表,并根據(jù)不同的商品類目以及商品類目下的敏感詞生成不同商品類目對(duì)應(yīng)的唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,所有唯一的字典樹構(gòu)成一用于分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池;
分詞過濾單元,用于接收待處理數(shù)據(jù),并根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的待處理商品的類目對(duì)應(yīng)基礎(chǔ)字典樹對(duì)象池中字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞;根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述敏感詞配置單元中不同商品類目的不同敏感詞由用戶通過一web界面維護(hù)到數(shù)據(jù)庫。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述字典樹對(duì)象池生成單元還包括:
敏感詞列表,按照一個(gè)商品類目對(duì)應(yīng)一個(gè)詞庫的方式構(gòu)建不同的詞庫;所述詞庫的格式為X.dic,其中X為詞庫名稱。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述分詞過濾單元包括如下子單元:
數(shù)據(jù)接收子單元,用于接收待處理數(shù)據(jù),判斷待處理數(shù)據(jù)對(duì)應(yīng)的商品類目,并跳轉(zhuǎn)到字典樹檢索子單元;
字典樹檢索子單元,用于根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目從基礎(chǔ)字典樹對(duì)象池中檢索與該商品類目對(duì)應(yīng)的字典樹;在存在時(shí)跳轉(zhuǎn)到第一分詞過濾子單元;否則跳轉(zhuǎn)到詞庫判斷子單元;
第一分詞過濾子單元,用于通過該字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
詞庫判斷子單元,用于判斷是否存在與待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫,在存在時(shí)跳轉(zhuǎn)到第二分詞過濾子單元,否則跳轉(zhuǎn)到第三分詞過濾子單元;
第二分詞過濾子單元,用于根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫動(dòng)態(tài)構(gòu)建字典樹,并根據(jù)構(gòu)建的字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
第三分詞過濾子單元,用于調(diào)用預(yù)先設(shè)置的通用詞庫,并根據(jù)通用詞庫構(gòu)建通用字典樹,并根據(jù)構(gòu)建的通用字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束。
實(shí)施本發(fā)明提供的基于動(dòng)態(tài)詞庫的敏感詞過濾方法及系統(tǒng)與現(xiàn)有技術(shù)相比具有以下有益效果:通過構(gòu)建了一個(gè)分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池。根據(jù)不同的商品類目以及該商品類目下的敏感詞生成一個(gè)唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,當(dāng)進(jìn)行商品描述分詞時(shí)根據(jù)該商品所屬類目從字典樹對(duì)象池中找到對(duì)應(yīng)的字典樹來進(jìn)行精確的分詞,避免由于不同類目的商品分詞結(jié)果都一致造成誤判。
附圖說明
圖1是本發(fā)明實(shí)施例的基于動(dòng)態(tài)詞庫的敏感詞過濾方法流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明提供一種基于動(dòng)態(tài)詞庫的敏感詞過濾方法,其包括如下步驟:
S1、獲取不同商品類目的不同敏感詞,生成不同商品類目對(duì)應(yīng)的敏感詞列表,并存儲(chǔ)于數(shù)據(jù)庫中;
S2、從數(shù)據(jù)庫中讀取敏感詞列表,并根據(jù)不同的商品類目以及商品類目下的敏感詞生成不同商品類目對(duì)應(yīng)的唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,所有唯一的字典樹構(gòu)成一用于分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池;
S3、接收待處理數(shù)據(jù),并根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的待處理商品的類目對(duì)應(yīng)基礎(chǔ)字典樹對(duì)象池中字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞;根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S1中不同商品類目的不同敏感詞由用戶通過一web界面維護(hù)到數(shù)據(jù)庫。在本發(fā)明實(shí)施例中,不同商品類目的不同敏感詞可以用業(yè)務(wù)人員自主靈活配置。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S2還包括:
敏感詞列表,按照一個(gè)商品類目對(duì)應(yīng)一個(gè)詞庫的方式構(gòu)建不同的詞庫;所述詞庫的格式為X.dic,其中X為詞庫名稱。例如有以下分類的敏感詞:
a:免檢....
b:最大功率....
c:最大...
那么將創(chuàng)建三個(gè)詞庫文件a.dic b.dic c.dic。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾方法中,
所述步驟S3包括如下子步驟:
S31、接收待處理數(shù)據(jù),判斷待處理數(shù)據(jù)對(duì)應(yīng)的商品類目,并跳轉(zhuǎn)到步驟S32;
S32、根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目從基礎(chǔ)字典樹對(duì)象池中檢索與該商品類目對(duì)應(yīng)的字典樹;在存在時(shí)跳轉(zhuǎn)到步驟S33;否則跳轉(zhuǎn)到步驟S34;
S33、通過該字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
S34、判斷是否存在與待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫,在存在時(shí)跳轉(zhuǎn)到步驟S35,否則跳轉(zhuǎn)到步驟S36;
S35、根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫動(dòng)態(tài)構(gòu)建字典樹,并根據(jù)構(gòu)建的字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
S36、調(diào)用預(yù)先設(shè)置的通用詞庫,并根據(jù)通用詞庫構(gòu)建通用字典樹,并根據(jù)構(gòu)建的通用字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束。
例如“根據(jù)待處理商品的類目,調(diào)用專有字典樹對(duì)其進(jìn)行分詞。例如商品的類目是a_b,那么首先查找目前是否已經(jīng)有了一個(gè)名為a_b的字典樹對(duì)象,如果有直接通過該字典樹進(jìn)行分詞,否則讀取詞庫文件a.dic和b.dic動(dòng)態(tài)構(gòu)建一個(gè)字典樹對(duì)象并開始進(jìn)行分詞。
同時(shí)由于并不是每個(gè)類目下都有不同的敏感詞,可能大部分類目的敏感詞都是相同的,因?yàn)槲覀兙S護(hù)了一個(gè)通用的敏感詞庫,即所有類目都有的敏感詞庫common.dic。這樣可以有效減少詞庫的數(shù)量,當(dāng)商品的類目不同但實(shí)際敏感詞相同時(shí)可以使用同一個(gè)字典樹。
例如有以下分類敏感詞:
分類a:免檢
分類b:最大功率
分類c:最大
對(duì)應(yīng)的3個(gè)詞庫文件:a.dic b.dic c.dic
商品A所屬分類為a、b、e、f,則從字典樹對(duì)象池中讀取a_b_e_f字典樹,字典樹對(duì)象池首先判斷a、b、e、f是否都有特殊的敏感詞,通過讀取詞庫文件發(fā)現(xiàn),只有a、b兩個(gè)類目下有特殊自定的敏感詞,因此生成唯一標(biāo)識(shí)符a_b,并根據(jù)a_b查找當(dāng)前有沒有敏感詞字典樹,如果沒有,則讀取讀取a.dic和b.dic的詞庫文件和通用的common.dic文件生成標(biāo)識(shí)為a_b詞典樹進(jìn)行分詞。商品B所屬分類為a、b、f、g。則對(duì)象池根據(jù)上面的判斷發(fā)現(xiàn)只有a、b的類目下有特殊敏感詞,因此生成a_b標(biāo)識(shí)符進(jìn)行查找,發(fā)現(xiàn)已經(jīng)有一個(gè)a_b的字典樹。因此直接使用詞典樹a_b進(jìn)行分詞即可,而不需要重新加載詞庫文件生成詞典樹。這樣在保證分詞結(jié)果精準(zhǔn)的同時(shí)也極大的降低了冗余的字典樹?!?/p>
商品A的描述包含字符串‘該免檢產(chǎn)品最大功率’。采用雙向詞典樹方式進(jìn)行分詞,結(jié)果為:該/免/檢/免檢/產(chǎn)/品/最/大/功/率/最大功率,則匹配到‘免檢’和‘最大’。
本發(fā)明還提供一種基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng),其包括如下單元:
敏感詞配置單元,用于獲取不同商品類目的不同敏感詞,生成不同商品類目對(duì)應(yīng)的敏感詞列表,并存儲(chǔ)于數(shù)據(jù)庫中;
字典樹對(duì)象池生成單元,用于從數(shù)據(jù)庫中讀取敏感詞列表,并根據(jù)不同的商品類目以及商品類目下的敏感詞生成不同商品類目對(duì)應(yīng)的唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,所有唯一的字典樹構(gòu)成一用于分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池;
分詞過濾單元,用于接收待處理數(shù)據(jù),并根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的待處理商品的類目對(duì)應(yīng)基礎(chǔ)字典樹對(duì)象池中字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞;根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述敏感詞配置單元中不同商品類目的不同敏感詞由用戶通過一web界面維護(hù)到數(shù)據(jù)庫。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述字典樹對(duì)象池生成單元還包括:
敏感詞列表,按照一個(gè)商品類目對(duì)應(yīng)一個(gè)詞庫的方式構(gòu)建不同的詞庫;所述詞庫的格式為X.dic,其中X為詞庫名稱。
在本發(fā)明所述的基于動(dòng)態(tài)詞庫的敏感詞過濾系統(tǒng)中,
所述分詞過濾單元包括如下子單元:
數(shù)據(jù)接收子單元,用于接收待處理數(shù)據(jù),判斷待處理數(shù)據(jù)對(duì)應(yīng)的商品類目,并跳轉(zhuǎn)到字典樹檢索子單元;
字典樹檢索子單元,用于根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目從基礎(chǔ)字典樹對(duì)象池中檢索與該商品類目對(duì)應(yīng)的字典樹;在存在時(shí)跳轉(zhuǎn)到第一分詞過濾子單元;否則跳轉(zhuǎn)到詞庫判斷子單元;
第一分詞過濾子單元,用于通過該字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
詞庫判斷子單元,用于判斷是否存在與待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫,在存在時(shí)跳轉(zhuǎn)到第二分詞過濾子單元,否則跳轉(zhuǎn)到第三分詞過濾子單元;
第二分詞過濾子單元,用于根據(jù)待處理數(shù)據(jù)對(duì)應(yīng)的商品類目對(duì)應(yīng)的詞庫動(dòng)態(tài)構(gòu)建字典樹,并根據(jù)構(gòu)建的字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束;
第三分詞過濾子單元,用于調(diào)用預(yù)先設(shè)置的通用詞庫,并根據(jù)通用詞庫構(gòu)建通用字典樹,并根據(jù)構(gòu)建的通用字典樹對(duì)待處理數(shù)據(jù)進(jìn)行分詞,根據(jù)分詞結(jié)果實(shí)現(xiàn)敏感詞過濾,結(jié)束。
實(shí)施本發(fā)明提供的基于動(dòng)態(tài)詞庫的敏感詞過濾方法及系統(tǒng)與現(xiàn)有技術(shù)相比具有以下有益效果:通過構(gòu)建了一個(gè)分詞服務(wù)的基礎(chǔ)字典樹對(duì)象池。根據(jù)不同的商品類目以及該商品類目下的敏感詞生成一個(gè)唯一識(shí)別符,并根據(jù)該唯一識(shí)別符構(gòu)建一個(gè)唯一的字典樹,當(dāng)進(jìn)行商品描述分詞時(shí)根據(jù)該商品所屬類目從字典樹對(duì)象池中找到對(duì)應(yīng)的字典樹來進(jìn)行精確的分詞,避免由于不同類目的商品分詞結(jié)果都一致造成誤判。
可以理解的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)構(gòu)思做出其它各種相應(yīng)的改變與變形,而所有這些改變與變形都應(yīng)屬于本發(fā)明權(quán)利要求的保護(hù)范圍。