分享 GitHub 上的敏感词汇工具类:sensitive-word

这篇具有很好参考价值的文章主要介绍了分享 GitHub 上的敏感词汇工具类:sensitive-word。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分享 GitHub 上的敏感词汇工具类:sensitive-word,开源项目,github,DFA算法,sensitive-word,敏感词工具

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

前言

在网络世界中,对于敏感词汇的过滤是保障用户体验和维护网络环境的一项基础工作。常见的比如社交平台、论坛、聊天应用等场景,涉及到用户言论都需要考虑内容的敏感性处理,本文将为大家介绍一款GitHub上开源好用的好用敏感词工具sensitive-word

分享 GitHub 上的敏感词汇工具类:sensitive-word,开源项目,github,DFA算法,sensitive-word,敏感词工具
目前已经有1.4KStar,项目地址 : https://github.com/houbb/sensitive-word

介绍sensitive-word

sensitive-word 是基于 DFA 算法实现的高性能敏感词工具。目前敏感词库内容收录 6W+且不断优化更新。

特性

  • 6W+ 词库,且不断优化更新

  • 基于 fluent-api 实现,使用优雅简洁

  • 基于 DFA 算法,性能为 7W+ QPS,应用无感

  • 支持敏感词的判断、返回、脱敏等常见操作

  • 支持常见的格式转换

  • 全角半角互换、英文大小写互换、数字常见形式的互换、中文繁简体互换、英文常见形式的互换、忽略重复词等

  • 支持敏感词检测、邮箱检测、数字检测、网址检测等

  • 支持自定义替换策略

  • 支持用户自定义敏感词和白名单

  • 支持数据的数据动态更新(用户自定义),实时生效

  • 支持敏感词的标签接口

  • 支持跳过一些特殊字符,让匹配更灵活

SpringBoot使用sensitive-word

在开发java项目中,想使用sensitive-word其实非常简单,只需要maven引入依赖就可以当作一个工具类调用其方法即可使用

maven引入依赖

<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>sensitive-word</artifactId>
    <version>0.12.0</version>
</dependency>

SensitiveWordHelper 作为敏感词的工具类,核心方法如下:
分享 GitHub 上的敏感词汇工具类:sensitive-word,开源项目,github,DFA算法,sensitive-word,敏感词工具
接下来我们编写相关测试类,来测试对应方法

public class Test {

    public static void main(String[] args) {
        //是否有敏感词存在
        String text = "五星红旗迎风飘扬,毛主席的画像屹立在天安门前。";
		Assert.assertTrue(SensitiveWordHelper.contains(text));

		//返回第一个敏感词
		String word = SensitiveWordHelper.findFirst(text);
		Assert.assertEquals("五星红旗", word);

        //返回所有敏感词
        List<String> wordList = SensitiveWordHelper.findAll(text);
		Assert.assertEquals("[五星红旗, 毛主席, 天安门]", wordList.toString());

        //默认的替换策略
		String result = SensitiveWordHelper.replace(text);
		Assert.assertEquals("****迎风飘扬,***的画像屹立在***前。", result);

        //指定替换的内容
		String result = SensitiveWordHelper.replace(text, '0');
		Assert.assertEquals("0000迎风飘扬,000的画像屹立在000前。", result);
    }
}

自定义替换策略

场景说明:有时候我们希望不同的敏感词有不同的替换结果。比如【游戏】替换为【电子竞技】,【失业】替换为【灵活就业】

/**
 * 自定替换策略
 * @since 0.2.0
 */
@Test
public void defineReplaceTest() {
    final String text = "五星红旗迎风飘扬,毛主席的画像屹立在天安门前。";

    ISensitiveWordReplace replace = new MyWordReplace();
    String result = SensitiveWordHelper.replace(text, replace);

    Assert.assertEquals("国家旗帜迎风飘扬,教员的画像屹立在***前。", result);
}
public class MyWordReplace implements IWordReplace {

    @Override
    public void replace(StringBuilder stringBuilder, final char[] rawChars, IWordResult wordResult, IWordContext wordContext) {
        String sensitiveWord = InnerWordCharUtils.getString(rawChars, wordResult);
        // 自定义不同的敏感词替换策略,可以从数据库等地方读取
        if("五星红旗".equals(sensitiveWord)) {
            stringBuilder.append("国家旗帜");
        } else if("毛主席".equals(sensitiveWord)) {
            stringBuilder.append("教员");
        } else {
            // 其他默认使用 * 代替
            int wordLength = wordResult.endIndex() - wordResult.startIndex();
            for(int i = 0; i < wordLength; i++) {
                stringBuilder.append('*');
            }
        }
    }
}

我们针对其中的部分词做固定映射处理,其他的默认转换为 *

敏感词工具类的优缺点总结

优点

  • 高效性: 敏感词的存储和检测采用了高效的数据结构和算法,能够在很短的时间内完成检测。
  • 易扩展: Trie 树的结构使得添加、删除敏感词非常方便,同时 AC 自动机算法保证了高效的匹配。

缺点

  • 内存占用: 敏感词库的存储需要一定的内存,随着敏感词数量的增加,内存占用也会相应增加。

结语

GitHub 上的 sensitive-word 工具类是一个功能强大且高效的敏感词汇检测工具。通过简单的引入测试相信大家已经使用方法有了一定了解,这样我们可以在项目中更好地保障用户信息的安全,维护良好的网络环境文章来源地址https://www.toymoban.com/news/detail-804850.html

到了这里,关于分享 GitHub 上的敏感词汇工具类:sensitive-word的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gitleaks - 一款高效的Github仓库敏感信息泄露查询工具

    Gitleaks 是一种 SAST 工具,用于检测和防止 git 存储库中的硬编码机密,如密码、API 密钥和令牌 Gitleaks 是一个开源工具,用于检测和防止签入 Git 存储库的机密(密码/API 密钥)。Gitleaks 的主要优点是它不仅可以扫描您最新的源代码,还可以扫描整个 git 历史记录,识别过去提交

    2024年02月22日
    浏览(38)
  • sensitive-word-admin v1.3.0 发布 如何支持敏感词控台分布式部署?

    sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍 更多技术交流 如果我们的敏感词部署之后,不会变化,那么其实不用考虑这个问题。 但是实际业务,敏感词总是随着时间不断

    2024年02月19日
    浏览(30)
  • 【Java 进阶篇】保护你的应用:Java 过滤器实现敏感词汇过滤

    在开发 Web 应用程序时,安全性是至关重要的一环。保护用户免受恶意内容的侵害是开发者义不容辞的责任之一。在这篇博客中,我们将深入研究如何使用 Java 过滤器来过滤敏感词汇,确保用户输入的内容不包含不良信息。我们将采用简单而实用的方法,让即使是初学者也能

    2024年02月03日
    浏览(39)
  • 机器学习基础(一)混淆矩阵,真阳性(TP),真阴性(TN),假阳性(FP),假阴性(FN)以及敏感性(Sensitivity)和特异性(Specificity)

    混淆矩阵如下图:这里以是否有心脏病举例(二分类举例),列代表机器学习算法所做的预测,有心脏病还是没有心脏病,行代表实际的情况。 真阳性(TP):病人有心脏病,且被算法正确的预测出有。 真阴性(TN):病人无心脏病,且被算法正确的预测出无。 假阴性(FN):病人有心

    2023年04月08日
    浏览(95)
  • 分享一个比对图片是否一致的小工具(来源: github)

    运行效果图:  官网:  GitHub - codingfishman/image-diff: 一个方便的图片对比工具 一个方便的图片对比工具. Contribute to codingfishman/image-diff development by creating an account on GitHub. https://github.com/codingfishman/image-diff 优缺点: 1.采用比对各色块是否一致是该工具的核心,会出现因角度/光线不同而

    2024年02月04日
    浏览(48)
  • Github:分享一款开源的跨平台多功能远程控制和监控工具Spark

    Github:分享一款开源的跨平台多功能远程控制和监控工具Spark,github,开源,spark

    2024年02月19日
    浏览(45)
  • 敏感词在线检测-敏感词在线检测工具

    敏感词在线检测,不管是做网站还是自媒体还有短视频的人都有这样的烦恼,因为不慎发布敏感词内容,导致网站降权,文章视频不被推荐没有流量。再加上新的广告法出来后很多内容都被判定营销内容重则还容易被封禁账号。今天给大家分享一款免费敏感词检测软件,不仅

    2024年02月12日
    浏览(54)
  • 数据守护盾牌:敏感数据扫描与脱敏,让安全合规无忧,程序员经验分享

    我们还提供了官网内置的规则库(如上图),如信用卡号、个人信息、密钥等。您可以选择所需扫描的敏感数据类型,并支持多选后一键创建定义匹配规则;进入到创建页面后,您还可以进一步灵活编辑规则。 敏感数据扫描规则创建完成后,您还可以在列表处实现统一查询和

    2024年04月25日
    浏览(31)
  • 网站敏感词命中查询处理工具

    我们网站很多文章在发表的时候都会面临内容中有很多敏感词的问题。有些敏感词可能不是固定的,需要我们及时调整,今天给大家分享如何对我们网站文章敏感词进行处理,包括过去已经发布的文章和即将发布的文章。 一、敏感词删除 通过SEO工具中的敏感词删除功能,我

    2024年02月12日
    浏览(34)
  • 终端上的Github Copilot和IDE上的Github Copilot

    Github Copilot文档地址:Github Copilot文档 安装VSCode:如果您还没有安装VSCode,请前往VSCode官方网站下载并安装最新版本的VSCode。 安装GitHub Copilot插件:在VSCode中,点击左侧的扩展图标(四个方块组成的正方形),搜索并安装\\\"GitHub Copilot\\\"插件。 配置GitHub Copilot:安装完插件后,

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包