首页 > 其他分享 >敏感词 v0.19.0 新特性之敏感词单个编辑,不必重复初始化

敏感词 v0.19.0 新特性之敏感词单个编辑,不必重复初始化

时间:2024-09-19 09:36:35浏览次数:10  
标签:初始化 text 新增 敏感 sensitiveWordBs toString assertEquals v0.19

敏感词系列

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 敏感词新特性之白名单支持单个编辑,修正白名单包含黑名单时的问题

view

业务背景

[功能]建议增加敏感词的单个增删改,避免重复初始化,提升效率。

针对单个黑名单词的新增/删除,无需全量初始化

使用场景:在初始化之后,我们希望针对单个词的新增/删除,而不是完全重新初始化。这个特性就是为此准备的。

支持版本:v0.19.0

方法说明

SensitiveWordBs 引导类新增如下 2 个方法:

addWord(word) 新增敏感词,支持单个词/集合

removeWord(word) 删除敏感词,支持单个词/集合

实例代码:

maven 引入

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

测试代码

final String text = "测试一下新增敏感词,验证一下删除和新增对不对";

SensitiveWordBs sensitiveWordBs =
SensitiveWordBs.newInstance()
        .wordAllow(WordAllows.empty())
        .wordDeny(WordDenys.empty())
        .init();

// 当前
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());

// 新增单个
sensitiveWordBs.addWord("测试");
sensitiveWordBs.addWord("新增");
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());

// 删除单个
sensitiveWordBs.removeWord("新增");
Assert.assertEquals("[测试]", sensitiveWordBs.findAll(text).toString());
sensitiveWordBs.removeWord("测试");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());

// 新增集合
sensitiveWordBs.addWord(Arrays.asList("新增", "测试"));
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 删除集合
sensitiveWordBs.removeWord(Arrays.asList("新增", "测试"));
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());

// 新增数组
sensitiveWordBs.addWord("新增", "测试");
Assert.assertEquals("[测试, 新增, 新增]", sensitiveWordBs.findAll(text).toString());
// 删除集合
sensitiveWordBs.removeWord("新增", "测试");
Assert.assertEquals("[]", sensitiveWordBs.findAll(text).toString());

小结

单个敏感词的调整可以大幅度提升性能,降低使用成本。

开源代码

敏感词 https://github.com/houbb/sensitive-word

敏感词 https://github.com/houbb/sensitive-word-admin

标签:初始化,text,新增,敏感,sensitiveWordBs,toString,assertEquals,v0.19
From: https://www.cnblogs.com/houbbBlogs/p/18419846

相关文章

  • C++ vector 列表初始化
    vector<int>vl(10);//v1有10个元素,每个的值都是0vector<int>v2{10};//v2有1个元素,该元素的值是10vector<int>v3(10,1);//v3有10个元素,每个的值都是1vector<int>v4{10,1};//v4有2个元素,值分别是10和1如果初始化时使用了花括号的形式但是提供的值又不能......
  • 3.4.3 __ipipe_init_early之初始化root domain
    点击查看系列文章=》 InterruptPipeline系列文章大纲-CSDN博客3.4.3__ipipe_init_early之初始化rootdomain      如下图所示,红框里面的函数当前都是空的,本章还是分析蓝框中的代码片段。第295行,变量ipd指向了ipipe_root即ipd代表rootdomain。第305行,rootdoma......
  • 类的初始化列表
    文章目录一、初始化列表1、初始化列表的使用2、必须使用初始化列表来初始化的成员二、类型转换1、内置类型转换自定义类型2、自定义类型转换自定义类型三、静态成员变量(static)1、static修饰成员变量2、静态成员函数四、友元五、类里面再定义类六、匿名对象1、匿......
  • Java 双括号初始化(匿名内部类初始化)
    原文:Java:双括号初始化/匿名内部类初始化法ArrayList可以这样初始化://新建一个列表并赋初值A、B、CArrayList<String>list=newArrayList<String>(){{add("A");add("B");add("C");}};还有其他集合比如HashMap的初始化:Mapmap=newHashMap()......
  • 工具分享 | BurpAPIFinder - 一款Burpsuite的API敏感信息查找的burp插件,多个SRC挖掘
    0x00工具介绍BurpAPIFinder是一款Burpsuite的API敏感信息查找插件。0x01下载链接BurpAPIFinder下载链接:夸克网盘分享0x02功能介绍提取网站的URL链接和解析JS文件中的URL链接前段界面可自行定义敏感关键词、敏感url匹配界面可配置的开启主动接口探测、敏感信息获......
  • 结构体类型,结构体变量的创建和初始化
    1.结构体类型的声明结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体语法规范structtag//结构体名字{member-list;//成员名字}variable-list;//结构体命名的变量使用举例例如描述⼀个学⽣:structStu{charname[20];//名字......
  • C++:初始化列表、友元、static
    目录一、初始化列表​二、static成员三、友元函数一、初始化列表•之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方 式,就是初始化列表,初始化列表的使用方式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后......
  • PbootCMS设置当前站点模板,模板子目录,黑白名单,敏感词过滤
    在PBootCMS中,后台操作涉及多个配置项,包括更换模板路径、配置后台模板子目录、配置后台黑名单和白名单以及敏感词过滤。下面是详细的步骤和说明。1.更换模板路径步骤进入站点信息页面:登录PBootCMS后台。导航至 【基础内容】-【站点信息】-【站点模板】。选择模板......
  • lesson05-设计主函数实现串口的初始化和运行
    根据boot.S里的内容,最后会跳转到kernel_main里,在这里会进行设置gpio引脚配置串口的初始化,然后循环运行,不断打印接受到的内容。//主函数voidkernel_main(){//串口初始化uart_init();//串口发送helloworlduart_send_string("Helloword!\n")//循环发......
  • lesson04-设计初始化bss段、读写寄存器值的汇编函数
    在内核启动时需要将bss段的所有数据清0,这里就需要memzero函数。.globalmemzero;全局可见memzero:strxzr,[x0],#8subsx1,x1,#8b.gtmemzeroret内核启动时需要经常读写soc内部寄存器的值,这里就需要用到对应的函数put32和get32。.globalput32......