java开发工具:敏感词过滤工具sensitive-word详解

sensitive-word工具包,用于文本敏感词过滤,提供多种匹配算法,支持自定义词库和替换策略,适用于隐私保护和内容审核。文章详细讲解了工具包的引入、配置、自定义方法以及如何在项目中使用和测试。

一.引入工具包

sensitive-word 是一个 Java 编写的敏感词过滤工具包,可以用于对文本中的敏感词进行过滤。该工具包提供了多种敏感词匹配算法,并支持自定义敏感词库和替换策略。使用该工具包可以有效地保护用户隐私,防止不良信息的传播。 具体来说,sensitive-word 工具包提供了以下功能:

  1. 多种敏感词匹配算法,包括 DFA、AC 自动机等,可以根据实际需求选择合适的算法;
  2. 支持自定义敏感词库和替换策略,可以根据实际需求添加、删除或修改敏感词;
  3. 支持对文本中的敏感词进行替换或标记,可以根据实际需求选择合适的处理方式;
  4. 支持对敏感词进行分组,可以根据实际需求对敏感词进行分类管理。

总之,sensitive-word 工具包是一个功能强大、易于使用的敏感词过滤工具,可以帮助开发者快速、准确地对文本中的敏感词进行过滤,保护用户的隐私和安全。
除了上述功能,sensitive-word 工具包还有以下特点:

  1. 高性能:采用多种优化方式,如位图压缩、缓存预热等,可以提高敏感词匹配速度;
  2. 易于扩展:支持自定义敏感词库和替换策略,可以根据实际需求进行扩展;
  3. 易于集成:可以通过 Maven 或 Gradle 等构建工具进行集成,也可以直接下载源码进行使用;
  4. 开源免费:使用 Apache License 2.0 开源许可证,可以免费商用。

引入依赖

<dependency>
  <groupId>com.github.houbb</groupId>
  <artifactId>sensitive-word</artifactId>
  <version>0.2.1</version>
</dependency>

配置类

sensitive-word 配置是通过 SensitiveWordBs.newInstance() 进行配置的,它传回的是 SensitiveWordBs 对象,而不是默认的 SensitiveWordHelper 对象。配置类注意添加 @Configuration 注解

它的配置项如下:

序号 方法 说明 默认值
1 ignoreCase 忽略大小写 true
2 ignoreWidth 忽略半角圆角 true
3 ignoreNumStyle 忽略数字的写法 true
4 ignoreChineseStyle 忽略中文的书写格式 true
5 ignoreEnglishStyle 忽略英文的书写格式 true
6 ignoreRepeat 忽略重复词 false
7 enableNumCheck 是否启用数字检测。 true
8 enableEmailCheck 是有启用邮箱检测 true
9 enableUrlCheck 是否启用链接检测 true
10 numCheckLen 数字检测,自定义指定长度。 8

在完成配置之前,我们可以先添加两个词库文本,作为自定义的敏感词库以及非敏感词库,第一个词库大家都理解,为什么还要定义非敏感词库呢?因为默认的 6w+ 敏感词中免不了存在部分在社区业务中不算过于敏感的词汇,想要予以保留,这样的话,我们就需要使用非敏感词库进行排除。当然,敏感词库不能够频繁更新以及初始化,会耗费过多的时间和性能。这两个词库放置在 resource 目录下,博主使用的是 jdk17 ,所以采用 NIO 进行文件读取,简洁高效。两个文件名称如下:

  • myAllowWords.txt:非敏感词库
  • mySensitiveWords.txt:敏感词库

要使 sensitive-word 配置上自定义两个词库内容,必须分别继承以下两个接口:

  • IWordDeny:敏感词继承方法
  • IWordAllow:非敏感词继承方法

不仅需要实现这两个接口,还要配置默认词库、自定义词库合并的词库,否则,如果在 SensitiveWordBs.newInstance() 直接配置继承方法,就只生效自定义词库。合并词库的方法为:WordDenys.chains(),默认词库分别为WordDenys.system()、WordAllows.system(),合并后词库分别赋值给 IWordDeny、IWordAllow
模板配置如下:

// 自定义敏感词
// 注意每一行为一个敏感词,单行不能只包括空格,否则,也会把空格识别为敏感词
public class MyWordDeny implements IWordDeny {
   

    @Override
    public List<S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值