发现一个开源的敏感词工具(Java)

一、起源

        由于最近开发组要求开发一个圈子功能,这是一个说起来简单但又不简单的项目,这个项目的圈子模块给我从零开始实现,网上一大堆的博客系统,我本以为随意copy一个架构就好,但是发现事与愿违,网上没有看到是服务我们系统用户量的好架构,于是自己开始设计框架,设计的时候遇到一个问题,就是审核问题,由于审核涉及问题面之广泛,首先应该对特殊敏感词处理,再是内容对我们的商业价值体现,在敏感词方面找了一堆敏感词发现自己考虑的很是不全面,于是上开源平台找,最终发现一个还不错的项目。

二、sensitive-word 敏感词项目

        这个工具功能强大,具体有多强大家使用就知道了,话不多说敏感词项目的地址如下:houbb/sensitive-word: 👮‍♂️The sensitive word tool for java.(敏感词/违禁词/违法词/脏词。基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。请勿发布涉及政治、广告、营销、翻墙、违反国家法律法规等内容。高性能敏感词检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。)

三、sensitive-word使用

        具体使用我简单使用如下代码,具体更详细可以查看项目介绍那里。

import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
import com.github.houbb.sensitive.word.core.SensitiveWordHelper;
import com.github.houbb.sensitive.word.support.result.WordResultHandlers;

public class TestAssert {

    public static void main(String[] args) {

        final String text = "五星红旗迎风飘扬,毛主席的画像屹立在天安门前。";
        // 判断是否含有敏感词
        System.out.println(SensitiveWordHelper.contains(text));
        // 查找第一个敏感词
        System.out.println(SensitiveWordHelper.findFirst(text));
        // 查看全部的敏感词
        System.out.println(SensitiveWordHelper.findAll(text));
        // 查看敏感词标签
        System.out.println(SensitiveWordHelper.findAll(text, WordResultHandlers.wordTags()));
        // 默认敏感词的替换策略
        System.out.println(SensitiveWordHelper.replace(text));
        // 指定敏感词替换策略
        System.out.println(SensitiveWordHelper.replace(text, '0'));

        // 更多特性
        final String text1 = "fuCK the bad words.";

        // 也支持英文敏感词
        System.out.println(SensitiveWordHelper.contains(text1));
        System.out.println(SensitiveWordHelper.findFirst(text));

        // 测试全角识别
        final String text2 = "fuck the bad words.";
        System.out.println(SensitiveWordHelper.contains(text2));
        System.out.println(SensitiveWordHelper.findFirst(text2));

        // 支持各种符号数字识别
        final String text3 = "这个是我的微信:9⓿二肆⁹₈③⑸⒋➃㈤㊄";
        System.out.println(SensitiveWordBs.newInstance().enableNumCheck(true).init().findAll(text3));


        // 忽略繁简体
        final String text4 = "我爱我的祖国和五星紅旗。";
        System.out.println(SensitiveWordHelper.findAll(text4));

        // 忽略英文的书写格式
        final String text5 = "Ⓕⓤc⒦ the bad words";
        System.out.println(SensitiveWordHelper.findAll(text5));

        // 忽略重复词
        final String text6 = "ⒻⒻⒻfⓤuⓤ⒰cⓒ⒦ the bad words";
        System.out.println(SensitiveWordBs.newInstance()
                .ignoreRepeat(true)
                .init()
                .findAll(text6));

        // 邮箱等个人信息,默认未启用。
        final String text7 = "楼主好人,邮箱 sensitiveword@xx.com";
        SensitiveWordBs.newInstance().enableEmailCheck(true).init().findAll(text7);




    }

}

        执行结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温醉酒一壶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值