創(chuàng)作背景
大家好,我是老馬。
敏感詞初期在實現(xiàn)的時候,為了用戶開箱即用將詞庫與核心算法庫放在一起。
有一些用戶希望只用自己的詞庫,于是內(nèi)置了各種自定義的策略方法。
但是還是不夠,比如有些 andriod 研發(fā)希望內(nèi)置包的信息是干凈的,不要有任何敏感信息。
為了保障開箱即用+支持將文件排除,我們在將敏感詞庫獨(dú)立為另外一個項目。
系統(tǒng)內(nèi)置詞庫及如何排除
內(nèi)置詞庫文件說明
v0.27.0 將詞庫和當(dāng)前項目拆分開,詞庫可以在 https://github.com/houbb/sensitive-word-data 項目查看。
對應(yīng)的資源文件在 https://github.com/houbb/sensitive-word-data/tree/main/src/main/resources 目錄下
| 文件 | 說明 | 默認(rèn)加載類 |
|---|---|---|
sensitive_word_allow.txt |
內(nèi)置自定義白名單詞庫 | WordAllowSystem |
sensitive_word_deny.txt |
內(nèi)置自定義黑名單詞庫 | WordDenySystem |
sensitive_word_dict.txt |
內(nèi)置黑名單詞庫 | WordDenySystem |
sensitive_word_dict_en.txt |
內(nèi)置黑名單英文詞庫 | WordDenySystem |
sensitive_word_tags.txt |
內(nèi)置敏感詞標(biāo)簽詞庫 | WordTagSystem |
如何排除
比如一些 android app 引入時不希望包中內(nèi)置敏感的信息,希望對詞庫加解密或者是放在服務(wù)端初始化加載。
系統(tǒng)的內(nèi)置詞庫通過下面的 maven 依賴導(dǎo)入
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word-data</artifactId>
<version>${sensitive-word-data.version}</version>
</dependency>
依賴排除
所以可以按照 maven 排除規(guī)范,如下將其排除
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word</artifactId>
<version>${sensitive-word.version}</version>
<exclusions>
<exclusion>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word-data</artifactId>
</exclusion>
</exclusions>
</dependency>
排除后自定義
不希望使用內(nèi)置詞庫,那就需要將原來內(nèi)置的詞庫依賴改為自己的依賴
默認(rèn)配置項:
SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
.wordAllow(WordAllows.defaults())
.wordDeny(WordDenys.defaults())
.wordTag(WordTags.defaults())
.init();
你可以將用到的這3個配置,改為自己的實現(xiàn)。
可以通過加解密,或者加載遠(yuǎn)程服務(wù)的文件信息都可以。
開源項目
小結(jié)
希望本文對你有所幫助,如果喜歡,歡迎點(diǎn)贊收藏轉(zhuǎn)發(fā)一波。
我是老馬,期待與你的下次相遇。
敏感詞系列
sensitive-word-admin 敏感詞控臺 v1.2.0 版本開源
sensitive-word-admin v1.3.0 發(fā)布 如何支持分布式部署?
02-如何實現(xiàn)一個敏感詞工具?違禁詞實現(xiàn)思路梳理
03-敏感詞之 StopWord 停止詞優(yōu)化與特殊符號
05-敏感詞之 DFA 算法(Trie Tree 算法)詳解
06-敏感詞(臟詞) 如何忽略無意義的字符?達(dá)到更好的過濾效果
v0.11.0-敏感詞新特性:忽略無意義的字符,詞標(biāo)簽字典
v0.12.0-敏感詞/臟詞詞標(biāo)簽?zāi)芰M(jìn)一步增強(qiáng)
v0.13.0-敏感詞特性版本發(fā)布 支持英文單詞全詞匹配
v0.19.0-敏感詞新特性之敏感詞單個編輯,不必重復(fù)初始化
v0.20.0 敏感詞新特性之?dāng)?shù)字全部匹配,而不是部分匹配
v0.21.0 敏感詞新特性之白名單支持單個編輯,修正白名單包含黑名單時的問題
v0.23.0 敏感詞新特性之結(jié)果條件拓展,內(nèi)置支持鏈?zhǔn)?單詞標(biāo)簽
v0.24.0 新特性支持標(biāo)簽分類,內(nèi)置實現(xiàn)多種策略
v0.25.0 新特性之 wordCheck 策略支持用戶自定義