找回密码
 立即注册
首页 业界区 安全 敏感词 v0.27.0 新特性之词库独立拆分

敏感词 v0.27.0 新特性之词库独立拆分

盛天欣 2025-7-19 13:41:30
创作背景

大家好,我是老马。
敏感词初期在实现的时候,为了用户开箱即用将词库与核心算法库放在一起。
有一些用户希望只用自己的词库,于是内置了各种自定义的策略方法。
但是还是不够,比如有些 andriod 研发希望内置包的信息是干净的,不要有任何敏感信息。
为了保障开箱即用+支持将文件排除,我们在将敏感词库独立为另外一个项目。
系统内置词库及如何排除

内置词库文件说明

v0.27.0 将词库和当前项目拆分开,词库可以在 https://github.com/houbb/sensitive-word-data 项目查看。
对应的资源文件在 https://github.com/houbb/sensitive-word-data/tree/main/src/main/resources 目录下
文件说明默认加载类sensitive_word_allow.txt内置自定义白名单词库WordAllowSystemsensitive_word_deny.txt内置自定义黑名单词库WordDenySystemsensitive_word_dict.txt内置黑名单词库WordDenySystemsensitive_word_dict_en.txt内置黑名单英文词库WordDenySystemsensitive_word_tags.txt内置敏感词标签词库WordTagSystem如何排除

比如一些 android app 引入时不希望包中内置敏感的信息,希望对词库加解密或者是放在服务端初始化加载。
系统的内置词库通过下面的 maven 依赖导入
  1. <dependency>
  2.     <groupId>com.github.houbb</groupId>
  3.     sensitive-word-data</artifactId>
  4.     <version>${sensitive-word-data.version}</version>
  5. </dependency>
复制代码
依赖排除

所以可以按照 maven 排除规范,如下将其排除
  1. <dependency>
  2.     <groupId>com.github.houbb</groupId>
  3.     sensitive-word</artifactId>
  4.     <version>${sensitive-word.version}</version>
  5.     <exclusions>
  6.         <exclusion>
  7.             <groupId>com.github.houbb</groupId>
  8.             sensitive-word-data</artifactId>
  9.         </exclusion>
  10.     </exclusions>
  11. </dependency>
复制代码
排除后自定义

不希望使用内置词库,那就需要将原来内置的词库依赖改为自己的依赖
默认配置项:
  1. SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
  2.                 .wordAllow(WordAllows.defaults())
  3.                 .wordDeny(WordDenys.defaults())
  4.                 .wordTag(WordTags.defaults())
  5.                 .init();
复制代码
你可以将用到的这3个配置,改为自己的实现。
可以通过加解密,或者加载远程服务的文件信息都可以。
开源项目

敏感词核心 https://github.com/houbb/sensitive-word
敏感词控台 https://github.com/houbb/sensitive-word-admin
敏感词词库 https://github.com/houbb/sensitive-word-dict
小结

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。
我是老马,期待与你的下次相遇。
敏感词系列

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.23.0 敏感词新特性之结果条件拓展,内置支持链式+单词标签
v0.24.0 新特性支持标签分类,内置实现多种策略
v0.25.0 新特性之 wordCheck 策略支持用户自定义
v0.25.1 新特性之返回匹配词,修正 tags 标签
v0.27.0 敏感词库独立拆分

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册