敏感詞系列
sensitive-word-admin 敏感詞控臺 v1.2.0 版本開源
sensitive-word-admin v1.3.0 釋出 如何支援分散式部署?
01-開源敏感詞工具入門使用
02-如何實現一個敏感詞工具?違禁詞實現思路梳理
03-敏感詞之 StopWord 停止詞最佳化與特殊符號
04-敏感詞之字典瘦身
05-敏感詞之 DFA 演算法(Trie Tree 演算法)詳解
06-敏感詞(髒詞) 如何忽略無意義的字元?達到更好的過濾效果
v0.10.0-髒詞分類標籤初步支援
v0.11.0-敏感詞新特性:忽略無意義的字元,詞標籤字典
v0.12.0-敏感詞/髒詞詞標籤能力進一步增強
v0.13.0-敏感詞特性版本釋出 支援英文單詞全詞匹配
v0.16.1-敏感詞新特性之字典記憶體資源釋放
v0.19.0-敏感詞新特性之敏感詞單個編輯,不必重複初始化
v0.20.0 敏感詞新特性之數字全部匹配,而不是部分匹配
v0.21.0 敏感詞新特性之白名單支援單個編輯,修正白名單包含黑名單時的問題
業務背景
[功能]建議增加敏感詞的單個增刪改,避免重複初始化,提升效率。
針對單個黑名單詞的新增/刪除,無需全量初始化
使用場景:在初始化之後,我們希望針對單個詞的新增/刪除,而不是完全重新初始化。這個特性就是為此準備的。
支援版本:v0.19.0
方法說明
SensitiveWordBs 引導類新增如下 2 個方法:
addWord(word)
新增敏感詞,支援單個詞/集合
removeWord(word)
刪除敏感詞,支援單個詞/集合
例項程式碼:
maven 引入
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word</artifactId>
<version>0.19.0</version>
</dependency>
測試程式碼
final String text = "測試一下新增敏感詞,驗證一下刪除和新增對不對";
SensitiveWordBs sensitiveWordBs =
SensitiveWordBs.newInstance()
.wordAllow(WordAllows.empty())
.wordDeny(WordDenys.empty())
.init();
// 當前
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 新增單個
sensitiveWordBs.addWord("測試");
sensitiveWordBs.addWord("新增");
Assert.assertEquals("[測試, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 刪除單個
sensitiveWordBs.removeWord("新增");
Assert.assertEquals("[測試]", sensitiveWordBs.findAll(text).toString());
sensitiveWordBs.removeWord("測試");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 新增集合
sensitiveWordBs.addWord(Arrays.asList("新增", "測試"));
Assert.assertEquals("[測試, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 刪除集合
sensitiveWordBs.removeWord(Arrays.asList("新增", "測試"));
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 新增陣列
sensitiveWordBs.addWord("新增", "測試");
Assert.assertEquals("[測試, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 刪除集合
sensitiveWordBs.removeWord("新增", "測試");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
小結
單個敏感詞的調整可以大幅度提升效能,降低使用成本。
開原始碼
敏感詞 https://github.com/houbb/sensitive-word
敏感詞 https://github.com/houbb/sensitive-word-admin