首页 > 其他分享 >sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?

sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?

时间:2023-12-09 15:32:46浏览次数:32  
标签:字符 脏词 word 标签 敏感 sensitive SensitiveWordBs wordTag

忽略字符

说明

我们的敏感词一般都是比较连续的,比如 傻帽

那就有大聪明发现,可以在中间加一些字符,比如【傻!@#$帽】跳过检测,但是骂人等攻击力不减。

那么,如何应对这些类似的场景呢?

我们可以指定特殊字符的跳过集合,忽略掉这些无意义的字符即可。

v0.11.0 开始支持

无意义的字符.jpg

例子

其中 charIgnore 对应的字符策略,用户可以自行灵活定义。

final String text = "傻@冒,狗+东西";

//默认因为有特殊字符分割,无法识别
List<String> wordList = SensitiveWordBs.newInstance().init().findAll(text);
Assert.assertEquals("[]", wordList.toString());

// 指定忽略的字符策略,可自行实现。
List<String> wordList2 = SensitiveWordBs.newInstance()
        .charIgnore(SensitiveWordCharIgnores.specialChars())
        .init()
        .findAll(text);

Assert.assertEquals("[傻@冒, 狗+东西]", wordList2.toString());

敏感词标签

说明

有时候我们希望对敏感词加一个分类标签:比如社情、暴/力等等。

这样后续可以按照标签等进行更多特性操作,比如只处理某一类的标签。

支持版本:v0.10.0

入门例子

接口

这里只是一个抽象的接口,用户可以自行定义实现。比如从数据库查询等。

public interface IWordTag {

    /**
     * 查询标签列表
     * @param word 脏词
     * @return 结果
     */
    Set<String> getTag(String word);

}

配置文件

我们可以自定义 dict 标签文件,通过 WordTags.file() 创建一个 WordTag 实现。

  • dict_tag_test.txt
五星红旗 政-治,国家

格式如下:

敏感词 tag1,tag2

实现

具体的效果如下,在引导类设置一下即可。

默认的 wordTag 是空的。

String filePath = "dict_tag_test.txt";
IWordTag wordTag = WordTags.file(filePath);

SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
        .wordTag(wordTag)
        .init();

Assert.assertEquals("[政-治, 国家]", sensitiveWordBs.tags("五星红旗").toString());;

后续会考虑引入一个内置的标签文件策略。

更多资料

敏感词控台

有时候敏感词有一个控台,配置起来会更加灵活方便。

java 如何实现开箱即用的敏感词控台服务?

敏感词标签文件

梳理了大量的敏感词标签文件,可以让我们的敏感词更加方便。

这两个资料阅读可在下方文章获取:

v0.11.0-敏感词新特性

拓展阅读

敏感词工具实现思路

DFA 算法讲解

敏感词库优化流程

java 如何实现开箱即用的敏感词控台服务?

各大平台连敏感词库都没有的吗?

sensitive-word 敏感词/脏词开源工具-v.0.10.0-脏词分类标签支持

开源框架

sensitive-word

标签:字符,脏词,word,标签,敏感,sensitive,SensitiveWordBs,wordTag
From: https://blog.51cto.com/u_9250070/8749893

相关文章

  • sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?
    忽略字符说明我们的敏感词一般都是比较连续的,比如傻帽那就有大聪明发现,可以在中间加一些字符,比如【傻!@#$帽】跳过检测,但是骂人等攻击力不减。那么,如何应对这些类似的场景呢?我们可以指定特殊字符的跳过集合,忽略掉这些无意义的字符即可。v0.11.0开始支持例子其中charIg......
  • pageoffice 6 实现数据区域填充(插入文本、图片、word、excel等)
    在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档。例如:1、我们可以根据数据库表中已保存的个人信息,设计好一个简历模板docx文件,然后通过代码将这些个人信息填充到Word模板中,从而自动生成一份简历。2、如果需要将图片插入到Word模板指定位置,比如......
  • 网页在线安全浏览Office Word文档,只读打开/禁止编辑/禁止复制/禁止另存/禁止打印/禁止
    在企业OA系统或者在线协作办公场景中,有一些合同公文或者客户数据等重要文档需要我们在线共享给其他人,但是我们只希望其他人只能预览阅读文档,不能随便编辑修改文档,也禁止复制共享Word文档的内容到其他文档或者编辑器,不能将共享文件另存为本地文件夹,并且禁止用户打印该Word文档,那么......
  • word-开发者工具的使用
    一、制作一个文档,如下所示,空白的区域没有内容时,提示用户步骤:1、开发者工具---选择文字区域-----设计模式----根据输入相对应提示文字, 2、电话一栏:选中后,ctrl+鼠标可以复制一份,选择设计模式修改提示文字即可3、性别;选框号带√按钮,选择属性----选择选中标记和未选中标记的状......
  • HarmonyOS第一课,配置DevEcoStudio,运行"哈喽word"
    1下载DevEcoStudio工具下载地址根据自己电脑的os和芯片版本,下载对应的安装包,顺便也把其他2个开发者工具也下载下来了2运行DevEcoStudio,并配置相关环境变量如果自检有不满足的环境配置,可以在线安装至指定文件夹,强迫症请准备好指定路径存放npm及ohpm安装路径安装HarmonyOS-Sd......
  • word同一行带题注的两张图片生成的图表目录在同一行的解决办法
    本文转载自:https://blog.csdn.net/Liangontheway/article/details/120316467每张图片通过题注来编号的,同一行的两张图片生成图目录就会在同一行,这也太不美观了。解决办法一:将图片放到表格里,然后隐藏表格边框就好了再次生成目录问题解决了!!!解决办法二是插入图文框,这个操作起......
  • Go - two bcrypt hashes of the same password are NOT equal
     packagemainimport("fmt""golang.org/x/crypto/bcrypt")funcmain(){password:="abcdef"hashedPassword1,_:=bcrypt.GenerateFromPassword([]byte(password),bcrypt.DefaultCost)fmt.Println(strin......
  • sensitive-word 敏感词/脏词开源工具-v.0.10.0-脏词分类标签支持
    sensitive-wordsensitive-word基于DFA算法实现的高性能敏感词工具。创作目的实现一款好用敏感词工具。基于DFA算法实现,目前敏感词库内容收录6W+(源文件18W+,经过一次删减)。后期将进行持续优化和补充敏感词库,并进一步提升算法的性能。希望可以细化敏感词的分类,感觉工作......
  • python在word文件指定的文字下划线
    #coding:utf-8importosfromwin32com.clientimportDispatchdefget_string_index(substring,string):"""获取同一字符串中的多个相同字符串的起始索引:paramsubstring:需查找的字符串:paramstring:被查找的字符串:return:"""in......
  • 文字处理软件Word mac特点介绍
    MicrosoftWordmac是一款文字处理软件。它是Microsoft office 套件的一部分,已广泛用于创建、编辑和格式化文本文档。Wordmac软件特点改进的协作工具:使用MicrosoftWord2021,多个用户可以同时处理一个文档,从而更轻松地与同事或同学协作。增强的人工智能写作辅助:新版Word配备......