Springboot结合sensitive-word实现敏感词过滤
本文最后更新于 80 天前,其中的信息可能已经有所发展或是发生改变。

前言:

学完SpringBoot第一次做项目时,前台有一个用户发弹幕的功能,一开始没考虑到要做敏感词过滤。经过师兄提醒后,才知道疏漏了这个细节。

但是一时半会儿不知从何下手,网上的博客写的基本上都是自己引入敏感词库做拦截器过滤,对于我这种懒人小白,也看不太懂。思来想去,直接去Github上调包吧。


houbb/sensitive-word

[sensitive-word/Github地址

这是一个基于 DFA 算法实现的高性能 java 敏感词过滤工具框架

image-20240824193258209

该项目目前在Github上已有4k多Starred,可见质量也是不错的

README文档中可以看到有很多功能,但是作为小白,有很多我是用不上的。

以下是我的使用过程:


引入依赖

pom.xml中CV导入这段代码

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




封装工具类

我在utils目录下新建了一个叫WordsFilter的java类

image-20240824194750801



WordsFilter.java的代码:

 package com.wangyuan.utils;
 ​
 import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
 import com.github.houbb.sensitive.word.support.ignore.SensitiveWordCharIgnores;
 import com.github.houbb.sensitive.word.support.resultcondition.WordResultConditions;
 ​
 /**
  * 功能:敏感词过滤
  * 作者:Albert
  * 日期:2024/8/23 23:50
  */
 ​
 ​
 public class WordsFilter {
 ​
     public static boolean wordsCheck(String text) {
         SensitiveWordBs wordBs = SensitiveWordBs.newInstance()
                 .ignoreCase(true)
                 .ignoreWidth(true)
                 .ignoreNumStyle(true)
                 .ignoreChineseStyle(true)
                 .ignoreEnglishStyle(true)
                 .ignoreRepeat(true)
                 .enableNumCheck(true)
                 .enableEmailCheck(true)
                 .enableUrlCheck(true)
                 .enableIpv4Check(true)
                 .enableWordCheck(true)
                 .numCheckLen(8)
                 .charIgnore(SensitiveWordCharIgnores.specialChars())
                 .wordResultCondition(WordResultConditions.alwaysTrue())
                 .init();
         return wordBs.contains(text);
     }
 ​
 }



配置说明:

序号方法说明默认值
1ignoreCase忽略大小写true
2ignoreWidth忽略半角圆角true
3ignoreNumStyle忽略数字的写法true
4ignoreChineseStyle忽略中文的书写格式true
5ignoreEnglishStyle忽略英文的书写格式true
6ignoreRepeat忽略重复词false
7enableNumCheck是否启用数字检测。false
8enableEmailCheck是有启用邮箱检测false
9enableUrlCheck是否启用链接检测false
10enableIpv4Check是否启用IPv4检测false
11enableWordCheck是否启用敏感单词检测true
12numCheckLen数字检测,自定义指定长度。8
13wordTag词对应的标签none
14charIgnore忽略的字符none
15wordResultCondition针对匹配的敏感词额外加工,比如可以限制英文单词必须全匹配恒为真



方法调用

接着在需要使用的地方直接调用方法即可:

image-20240824195217843

因为做了后台,所以还在发布和修改新闻的标题上也加了过滤



效果展示

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇