个人简介

Echo Blog


江湖无名 安心练剑
  • 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