敏感词处理工具优化:白名单支持单词增删
创作时间:
2025-01-21 18:53:26
作者:
@小白创作中心
敏感词处理工具优化:白名单支持单词增删
敏感词处理是内容安全领域的重要技术之一,广泛应用于社交媒体、论坛等平台的文本过滤。本文介绍了一个开源敏感词处理工具的最新版本更新,重点介绍了白名单支持单个编辑的新特性。
敏感词系列工具简介
sensitive-word-admin
敏感词控制台 v1.2.0 版本开源sensitive-word-admin
v1.3.0 发布,支持分布式部署- 开源敏感词工具入门使用
- 如何实现一个敏感词工具?违禁词实现思路梳理
- 敏感词之 StopWord 停止词优化与特殊符号
- 敏感词之字典瘦身
- 敏感词之 DFA 算法(Trie Tree 算法)详解
- 敏感词过滤如何忽略无意义的字符以达到更好的过滤效果
- 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.21.0。
方法说明
addWordAllow(word)
:新增白名单,支持单个词/集合removeWordAllow(word)
:删除白名单,支持单个词/集合
使用例子
final String text = "测试一下新增敏感词白名单,验证一下删除和新增对不对";
SensitiveWordBs sensitiveWordBs =
SensitiveWordBs.newInstance()
.wordAllow(WordAllows.empty())
.wordDeny(new IWordDeny() {
@Override
public List<String> deny() {
return Arrays.asList("测试", "新增");
}
})
.init();
// 当前
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 新增单个
sensitiveWordBs.addWordAllow("测试");
sensitiveWordBs.addWordAllow("新增");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 删除单个
sensitiveWordBs.removeWordAllow("测试");
Assert.assertEquals("[测试]", sensitiveWordBs.findAll(text).toString());
sensitiveWordBs.removeWordAllow("新增");
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 新增集合
sensitiveWordBs.addWordAllow(Arrays.asList("新增", "测试"));
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 删除集合
sensitiveWordBs.removeWordAllow(Arrays.asList("新增", "测试"));
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 新增数组
sensitiveWordBs.addWordAllow("新增", "测试");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
// 删除集合
sensitiveWordBs.removeWordAllow("新增", "测试");
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
小结
和黑名单的单个编辑类似,白名单的单个编辑功能可以避免重复初始化的问题,提升用户使用体验。
开源代码
热门推荐
量子引力探索及其发展
新闻从业者如何不被AI替代?
普洱茶蒸制温度与时间指南:如何正确蒸制普洱茶详解
航天二院空间工程总体部:“上新”提速!卫星规模化生产未来可期
车辆长宽高测量方法详解
有哪些有比较优秀可以自己练习的大数据项目
香港高才通计划需要什么条件(A类250W+B/C类大学名单扩容解读)
价格起伏,企业业绩分化 碳酸锂供需博弈将何去何从?
快速且高效的随机数生成算法
S15赛季全局BP模式的影响:考验选手也考验教练
发作一次可致猝死!身体7个表现,是哮喘发作征兆
劳动仲裁录音核实技巧与方法
员工有权利拒绝加班吗
已签订空白合同的风险及应对措施探讨
空白合同的后遗症:法律风险与后果解析
《黑神话悟空》禁字诀流派详解
英语词性的分类及用法 该怎么使用
喝水的学问:从8杯水到晨起第一杯,这些喝水误区你中招了吗?
提升产品激活率的有效策略与方法
个人简历语言能力怎么写
揭秘眼皮跳:从民间传说的吉凶预兆到科学解释
成绩与健康如何“休”得平衡 双休探索引热议
感冒分为哪几种类型
iQOO Z9 Turbo+测评:天玑9300+搭配自研Q1芯片,手游玩家新选择
口腔黏膜白斑警示:这些生活习惯正在悄悄伤害你的健康!
口腔粘膜白色斑点怎么回事
选家用车满足哪几个条件为首选?
贸易术语 | CIP的含义、与CIF的区别及使用注意事项
牛奶蛋羹家常做法,10种好吃做法
特朗普关税政策引发市场担忧,欧洲央行降息预期存变数