-
sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?
忽略字符
说明
我们的敏感词一般都是比较连续的,比如 傻帽
那就有大聪明发现,可以在中间加一些字符,比如【傻!@#$帽】跳过检测,但是骂人等攻击力不减。
那么,如何应对这些类似的场景呢?
我们可以指定特殊字符的跳过集合,忽略掉这些无意义的字符即可。
v0.11.0 开始支持
例子
其中 charIgnore 对应的字符策略,用户可以自行灵活定义。
final Strin...
2020-01-07 02:09:32 |
Java
-
java sensitive-word 敏感词之 DFA 算法(Trie Tree 算法)详解
背景
想实现一个基于敏感词库的敏感词工具。
遍历匹配
发现如果是逐个字符遍历的话,效率实在是太低。
这里我首先想到了两种算法:
KMP 算法
BF 暴力匹配算法
当然单纯只是匹配,其实性能依然非常的低。
正则表达式
当然还有一种方式就是基于正则表达式,个人感觉这种性能也比较差。
正则表达式
直接查了下资料,可以使用 DFA 算法来解决这个问题。
DFA 算法
在实现...
2020-01-07 02:09:32 |
Java
-
java 敏感词之 DFA 算法双数组原理及实现
双数组实现原理
双数组Tire树是Tire树的升级版,Tire取自英文Retrieval中的一部分,即检索树,又称作字典树或者键树。
下面简单介绍一下Tire树。
1.1 Tire树
Trie是一种高效的索引方法,它实际上是一种确定有限自动机(DFA),在树的结构中,每一个结点对应一个DFA状态,每一个从父结点指向子结点(有向)标记的边对应一个DFA转换。
遍历从根结点开始,然后从...
2020-01-07 02:09:32 |
Java
-
java sensitive-word 敏感词之 DFA 双数组实现源码学习
开源地址
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
sensitive-word
双数组实现原理
双数组Tire树是Tire树的升级版,Tire取自英文Retrieval中的一部分,即检索树,又称作字典树或者键树。
下面简单介绍一下Tire树。
1.1 Tire树
Trie是一种高效的索引方法,它实际上是一种确定有限自动机(DFA),...
2020-01-07 02:09:32 |
Java
-
An Efficient Implementation of Trie Structures 双数组实现 Trie 论文翻译
summary
提出了一种新的内部数组结构,称为双数组,实现了 trie 结构。
双数组结合了矩阵形式的快速访问和列表形式的紧凑性。
通过实例介绍检索、插入和删除的算法。
虽然插入比较慢,但还是很实用的,删除和检索的时间都比列表形式有所提升。
通过与各种大key集合列表的比较,双数组的大小可以比列表小17%左右,双数组的检索速度可以从 比列表快3·1到5·1倍。
介绍
在很多信...
2020-01-07 02:09:32 |
Java
-
java sensitive-word 敏感词之字典瘦身
开源地址
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
sensitive-word
背景
默认收集的敏感词字典,实际上有非常多的重复信息。
比如说:
兼职
兼!职
兼@职
兼#职
兼¥职
这种最核心的内容其实只有一个,如果将全部的停止词进行穷尽的话,将会使得敏感词构建的 Map 变得非常大,而且也没办法穷尽。
这种全部存储的方式非常...
2020-01-07 02:09:32 |
Java
-
sensitive-word 敏感词之 StopWord 停止词优化与特殊符号
开源地址
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
sensitive-word
背景
默认收集的敏感词字典,实际上有非常多的重复信息。
比如说:
兼职
兼!职
兼@职
兼#职
兼¥职
这种最核心的内容其实只有一个,如果将全部的停止词进行穷尽的话,将会使得敏感词构建的 Map 变得非常大,而且也没办法穷尽。
这种全部存储的方式非常...
2020-01-07 02:09:32 |
Java
-
sensitive-word java 如何实现一个敏感词工具?违禁词实现思路梳理
开源地址
为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~
sensitive-word
敏感词
我们只要是涉及到用户可以自由发表言论的网站,或者说收集对应的信息。
都会涉及到用户的输入词敏感问题。
敏感类别
类似于直接给敏感词打一个标签。(label)
内容安全
内容暴露个人信息。
身份证,密码,手机号。银行卡号。
用户名,...
2020-01-07 02:09:32 |
Java