sensitive-word

sensitive-word

sensitive-word

sensitive-word 基于 DFA 算法实现的高性能敏感词工具。

创作目的

实现一款好用敏感词工具。

基于 DFA 算法实现,目前敏感词库内容收录 6W+(源文件 18W+,经过一次删减)。

后期将进行持续优化和补充敏感词库,并进一步提升算法的性能。

希望可以细化敏感词的分类,感觉工作量比较大,暂时没有进行。

v0.10.0 先添加对应的脏词分类接口,后续有时间完善对应的实现和词典。

敏感词标签

说明

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

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

支持版本:v0.10.0

入门例子

接口

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

public interface IWordTag {

/**

* 查询标签列表

* @param word 脏词

* @return 结果

*/

Set 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());;

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

拓展阅读

敏感词工具实现思路

DFA 算法讲解

敏感词库优化流程

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

开源地址

其他很多特性以前介绍过,不再赘述。

感兴趣的话,前往开源地址:

https://github.com/houbb/sensitive-word

相关文章

2018世界杯比分表及各阵容、赛程时间汇总
365bet体育在线下载

2018世界杯比分表及各阵容、赛程时间汇总

📅 06-27 👁️ 6582
面包机总排行榜
365bet体育在线下载

面包机总排行榜

📅 06-28 👁️ 5485
thinkpad键盘维修
365bet怎么提款

thinkpad键盘维修

📅 06-30 👁️ 9391
神武官职现在扣威望吗?
365bet体育在线下载

神武官职现在扣威望吗?

📅 06-27 👁️ 8631
插翅虎M11
365bet怎么提款

插翅虎M11

📅 06-30 👁️ 7524
苹果的订单信息最多可以保留多久可以被查询到?
365bet体育在线下载

苹果的订单信息最多可以保留多久可以被查询到?

📅 06-29 👁️ 8529