开源的高性能敏感词工具

大家都知道几乎每一个web应用或游戏设计中,都需要做敏感词的过滤以及转换。为了应对越来越多的敏感词,寻找一个高效率的敏感词过滤算法就摆在了各个程序员的面前。目前业内公认的效率最高的就是 DFA 算法。小编今天为大家分享这个开源项目也是基于DFA 算法实现:sensitive-word,用于过滤敏感词的 Java 库。一款高性能的敏感词过滤工具,词库共收录了 6w+ 内容,支持自定义敏感词、白名单、替换策略、数字常见形式的互换、忽略重复词等功能。该项目在 GitHub 上的star数更是一路飙升到了1.4k。

图片[1]-开源的高性能敏感词工具-山海云端论坛

最新版本的功能特性

  • 6W+ 词库,且不断优化更新
  • 基于 fluent-api 实现,使用优雅简洁
  • 基于 DFA 算法,性能为 7W+ QPS,应用无感
  • 支持敏感词的判断、返回、脱敏等常见操作
  • 支持常见的格式转换
  • 全角半角互换、英文大小写互换、数字常见形式的互换、中文繁简体互换、英文常见形式的互换、忽略重复词等
  • 支持敏感词检测、邮箱检测、数字检测、网址检测等
  • 支持自定义替换策略
  • 支持用户自定义敏感词和白名单
  • 支持数据的数据动态更新(用户自定义),实时生效
  • 支持敏感词的标签接口
  • 支持跳过一些特殊字符,让匹配更灵活

🌟 性能测试

1、测试环境为普通的笔记本

  • 处理器 12th Gen Intel(R) Core(TM) i7-1260P   2.10 GHz
  • 机带 RAM  16.0 GB (15.7 GB 可用)
  • 系统类型    64 位操作系统, 基于 x64 的处理器

2、测试数据:100+ 字符串,循环 10W 次。

测试数据:100+ 字符串,循环 10W 次。不同环境会有差异,但是比例基本稳定。

🧰 如何使用

项目的使用非常简单快捷,具体步骤如下:1、环境依赖:

  • JDK1.7+
  • Maven 3.x+

2、在 pom 中引入依赖

<dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive-word</artifactId> <version>[最新版本]</version></dependency>

3、判断是否包含敏感词

final String text = "五星红旗迎风飘扬,毛主席的画像屹立在天安门前。";
Assert.assertTrue(SensitiveWordHelper.contains(text));

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容