敏感词 v0.19.0 新特性之敏感词单个编辑,不必重复初始化 ...

打印 上一主题 下一主题

主题 567|帖子 567|积分 1709

敏感词系列

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 引入
  1. <dependency>
  2.     <groupId>com.github.houbb</groupId>
  3.     <artifactId>sensitive-word</artifactId>
  4.     <version>0.19.0</version>
  5. </dependency>
复制代码
测试代码
  1. final String text = "测试一下新增敏感词,验证一下删除和新增对不对";
  2. SensitiveWordBs sensitiveWordBs =
  3. SensitiveWordBs.newInstance()
  4.         .wordAllow(WordAllows.empty())
  5.         .wordDeny(WordDenys.empty())
  6.         .init();
  7. // 当前
  8. Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
  9. // 新增单个
  10. sensitiveWordBs.addWord("测试");
  11. sensitiveWordBs.addWord("新增");
  12. Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
  13. // 删除单个
  14. sensitiveWordBs.removeWord("新增");
  15. Assert.assertEquals("[测试]", sensitiveWordBs.findAll(text).toString());
  16. sensitiveWordBs.removeWord("测试");
  17. Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
  18. // 新增集合
  19. sensitiveWordBs.addWord(Arrays.asList("新增", "测试"));
  20. Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
  21. // 删除集合
  22. sensitiveWordBs.removeWord(Arrays.asList("新增", "测试"));
  23. Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
  24. // 新增数组
  25. sensitiveWordBs.addWord("新增", "测试");
  26. Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
  27. // 删除集合
  28. sensitiveWordBs.removeWord("新增", "测试");
  29. Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());
复制代码
小结

单个敏感词的调解可以大幅度提升性能,降低使用成本。
开源代码

敏感词 https://github.com/houbb/sensitive-word
敏感词 https://github.com/houbb/sensitive-word-admin

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表