java 实现敏感词(sensitive word)工具详解使用说明
sensitive-word
平时工作中,只要涉及到用户可以自由发言(博客、文档、论坛),就要考虑内容的敏感性处理。
sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。
特性
6W+ 词库,且不断优化更新
基于 DFA 算法,性能较好
基于 fluent-api 实现,使用优雅简洁
支持敏感词的判断、返回、脱敏等常见操作
支持全角半角互换
支持英文大小写互换
快速开始
准备
JDK1.7+
Maven 3.x+
Maven 引入
<dependency><groupId>com.github.houbb</groupId><artifactId>sensitive-word</artifactId><version>0.0.4</version>
</dependency>
api 概览
SensitiveWordBs
作为敏感词的引导类,核心方法如下:
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
newInstance() | 无 | 引导类 | 初始化引导类 |
contains(String) | 待验证的字符串 | 布尔值 | 验证字符串是否包含敏感词 |
findAll(String) | 待验证的字符串 | 字符串列表 | 返回字符串中所有敏感词 |
replace(String, char) | 使用指定的 char 替换敏感词 | 字符串 | 返回脱敏后的字符串 |
replace(String) |
使用 * 替换敏感词
|
字符串 | 返回脱敏后的字符串 |
使用实例
所有测试案例参见 SensitiveWordBsTest
判断是否包含敏感词
final String text = "五星红旗迎风飘扬,画像屹立在天安门前。";Assert.assertTrue(SensitiveWordBs.newInstance().contains(text));
返回第一个敏感词
final String text = "五星红旗迎风飘扬,画像屹立在天安门前。";String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("五星红旗", word);
返回所有敏感词
final String text = "五星红旗迎风飘扬,画像屹立在天安门前。";List<String> wordList = SensitiveWordBs.newInstance().findAll(text);
Assert.assertEquals("[五星红旗, 天安门]", wordList.toString());
默认的替换策略
final String text = "五星红旗迎风飘扬,画像屹立在天安门前。";
String result = SensitiveWordBs.newInstance().replace(text);
Assert.assertEquals("****迎风飘扬,画像屹立在***前。", result);
指定替换的内容
final String text = "五星红旗迎风飘扬,画像屹立在天安门前。";
String result = SensitiveWordBs.newInstance().replace(text, '0');
Assert.assertEquals("0000迎风飘扬,画像屹立在000前。", result);
更多特性
后续的诸多特性,主要是针对各种针对各种情况的处理,尽可能的提升敏感词命中率。
这是一场漫长的攻防之战。
忽略大小写
final String text = "fuCK the bad words.";String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("fuCK", word);
忽略半角圆角
final String text = "fuck the bad words.";String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("fuck", word);
后期 road-map
数字的转换处理
繁简体互换
重复词
停顿词
拼音互换
用户自定义敏感词和白名单
文字镜像翻转
敏感词标签支持
拓展阅读
敏感词工具实现思路
DFA 算法讲解
敏感词库优化流程
停止词的思考记录
java 实现敏感词(sensitive word)工具详解使用说明相关推荐
- java判断敏感词_Java实现敏感词检测的代码详解
[Java]代码 import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.ut ...
- 嵌入层(Embedding Layer)与词向量(Word Embedding)详解
文章目录 常见的语言表示模型 词向量与Embedding区分 Embedding层--keras中的one-hot映射为 向量的层:词向量(word embedding)--一种语言模型表示方法 分布 ...
- Java实现敏感词过滤 - IKAnalyzer中文分词工具
IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包. 官网: https://code.google.com/archive/p/ik-analyzer/ 本用例借助 I ...
- Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- Java定时任务调度工具详解之Timer篇
Java定时任务调度工具详解之Timer篇 https://segmentfault.com/a/1190000009542398
- Java定时任务工具详解之Timer篇
Java定时任务调度工具详解 什么是定时任务调度? ◆ 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Java中的定时调度工具? ◆ Timer ◆Quartz Timer和Q ...
- 用java写敏感词过滤器的代码
用java写敏感词过滤器的代码 这里采用动态代理,所以要创建proxy代理对象,利用代理,来增强某些方法(getParameter方法.getParameterMap方法.getParameterVa ...
- Java实现敏感词过滤双向词库完美跳过24口交换机
Java实现敏感词过滤jar包3.0版本发布,采用双向词库,当检索语句中敏感词交错在正向词库中时,比较词汇level,如果正向词汇的level大于敏感词的level,则跳过此敏感词.完美过滤,&quo ...
- Jmeter压测工具详解
Jmeter压测工具详解 1. Jmeter概述 1.1 Jmeter简介 1.2 Jmeter适用场景 2. Jmeter安装配置 2.1 下载安装 2.2 环境配置(可不配) 2.3 Jmeter ...
最新文章
- springboot redis
- 孙正义看科技未来:今后30年要把钱和精力投向哪里
- 测试过程之过分关注功能性测试
- 4.4 Triplet 损失
- idea中git回退远程仓库版本
- 兰亭集势笔试题:用最优方法从LinkedList列表中删除重复元素
- (三维偏序)陌上花开
- 如何手动安装wxpython_如何在Ubuntu中安装wxPython的方法及命令
- 8 9区别 endnote7_EndNote_9__简明教程_中文版
- js播放Amr音频_Mp3转Amr
- Microsoft.VisualBasic.dll的妙用(开发中肯定会用到哦)
- 赵小楼《天道》《遥远的救世主》深度解析(82)有信无证是谓魔,有信有证是谓佛。无无明,无忧恐惧,尘归尘土归土,一往无前,无可阻挡。
- 论华为云的气质与修养
- netlogon启动后停止_【通告更新】漏洞EXP已流出,影响巨大,微软NetLogon权限提升漏洞安全风险通告第三次更新...
- Android studio调取支付宝健康码
- 2020最新最好看的热门动漫电影推荐
- 接口文档应该如何编写
- mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
- 计算机专业大创要求,“大创项目”推动计算机专业学生创新实践能力的提高
- 论文解读:PF磷酸:基于机器学习的磷酸化位点预测疟原虫蛋白的工具
热门文章
- 二十多年的单身生活怎么破?
- 后台或者锁屏播放音乐播放,
- AMD(异步执行)和CMD (同步执行)之间的区别是什么?
- 1❤️Jenkins从零到壹❤️ :安装svn插件和maven插件(JAVA 小虚竹)
- 如何查看Ubuntu版本号
- 算法基础课:第一讲——基础算法
- (简单)华为畅玩6A DLI-AL10的USB调试模式在哪里打开的经验
- 我的世界java版怎么找史莱姆区块_Minecraft我的世界中如何找到史莱姆
- C语言学习(八)整数(int、short、long)的具体介绍、不同进制表示、输出,sizeof、unsinged的使用
- amazon - business 之 references link market