一个被封禁的开源框架

前言

2年前曾整过一个开源框架——违禁词过滤框架LiteBanner。

算是一个工具类的,当时放在开源中国。因为小巧性能高,还可以自定义词库,获得了不少人的star。

因为框架自带违禁词库,违禁词库里面有什么。。。这个嘛,你懂的。因为这个原因,所以框架被整治成私有库,无法公开了。

当然响应相关部门号召,整治互联网这种行为还是需要的,是要大力支持的。

开发违禁词框架本身的出发点也是为了过滤那些不良信息。

当然词库本身是从互联网获取。别多想哈,我没那么高的修为。。。

这篇文章就来介绍下这个框架,因为不公开,所以获取方式看文末。

介绍

框架本身带有一个词库,为一个txt文件,也可以自己通过程序动态去添加词语。

结果里分为两部分,一部分是过滤出含有的敏感词语,还有一部分是过滤出的结果。敏感词语用星号表示。

直接看代码吧,非常简单易用。

代码就不放出太敏感的了。。。

public void test() throws Exception{
  // 加载默认词典
  BannerFilter filter = BannerFilter.DEFAULT;
  // 向过滤器增加一个词,额外造个词
  filter.put("坏孩子");

  //TMD是词库本身有的
  String sentence = "我是一个TMD的坏孩子,我不喜欢读书";
  BannerResp resp = filter.process(sentence);
  System.out.println(resp);
}

结果为:

BannerResp [hasSensitiveWords=true, sensitiveWords=[TMD, 坏孩子], filterStr=我是一个***的***]

就那么简单。

你完全可以把词库从DB里加载。然后启动初始化时动态添加进去。

场景适用于一些站点的信息录入,可以过滤一些不良的信息。

性能

框架是纯CPU计算,性能极其高。

曾经过滤过一部50w字的小说。用时1秒。

压测情况下,峰值可以达到30w词每秒。

获取

感兴趣的同学,想获得这个开源框架,可以关注公众号,然后回复 ww获取。

框架内的词库我已删除,免得背上传播xx的骂名,请自行发挥添加。

我是铂赛东,是一个开源作者和内容博主,热爱生活和分享。如果你对我的内容感兴趣,请转发,点赞,然后关注我。

一个被封禁的开源框架

Original: https://www.cnblogs.com/bryan31/p/15562782.html
Author: 铂赛东
Title: 一个被封禁的开源框架

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586223/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 新一代分布式实时流处理引擎Flink入门实战之先导理论篇-上

    @ 概述 定义 为什么使用Flink 应用行业和场景 应用行业 应用场景 实时数仓演变 Flink VS Spark 架构 系统架构 术语 无界和有界数据 流式分析基础 分层API…

    Java 2023年6月5日
    093
  • 找出JVM中最耗cpu的线程

    1、 top命令查找出cpu最高的java进程 pid 2、 top -Hp 命令找出进程内最耗线程的 pid 3、获取到上一步线程的 pid后 将 pid 16进制输出 4 使用…

    Java 2023年6月16日
    092
  • Java之控制反转和依赖注入

    1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念。 2.案例 1)一般情况下的类耦合 Main.java 通…

    Java 2023年5月29日
    085
  • java selenium (十四) 处理Iframe 中的元素

    有时候我们定位元素的时候,发现怎么都定位不了。 这时候你需要查一查你要定位的元素是否在iframe里面 阅读目录 iframe 就是HTML 中,用于网页嵌套网页的。 一个网页可以…

    Java 2023年5月29日
    079
  • 你不知道的PageContext

    你不知道的PageContext 最近在文艺复兴,学习JSP和Servlet,此文为笔者学习记录。 本文分为以下几个部分: 前言 环境搭建 正文 总结 前言 在我们使用的项目中,存…

    Java 2023年6月5日
    089
  • Java设计模式14:建造者模式

    什么是建造者模式 发现很多框架的源码使用了建造者模式,看了一下觉得挺实用的,就写篇文章学习一下,顺便分享给大家。 建造者模式是什么呢?用一句话概括就是建造者模式的目的是 为了分离对…

    Java 2023年5月29日
    069
  • Ubuntu下安装多个JDK,并设置其中一个为默认JDK

    由于使用需要,要在机器上同时安装OpenJDK 8和11,并将8设置为默认JDK 首先安装OpenJDK sudo apt-get install openjdk-8-jdk su…

    Java 2023年6月14日
    080
  • Java基础–int与Integer区别

    看过java相关入门开发的书籍的应该都知道,这个标题其实涉及到两个问题: 1. java基本数据类型和引用类型 2. 自动拆箱和自动装箱 下面就这两个问题进行一下总结复习。 一、j…

    Java 2023年6月5日
    058
  • JVM内存结构–新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数

    一、为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都…

    Java 2023年6月13日
    099
  • Typora + PicGo + SM.MS实现图片自动上传

    Typora + PicGo + SM.MS实现图片自动上传 1.SM.MS PicGo插件设置 打开PigGo的 插件&#x8…

    Java 2023年6月9日
    097
  • 了解下 Kuberentes Gateway API

    在 Kubernetes 集群边缘对外提供网络服务的时候,通常需要借助 Ingress 对象,这个对象提供了暴露 Service 所必须的核心要素,例如基于主机名的路由、对 URL…

    Java 2023年6月5日
    084
  • Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime 周银辉 我的mac os 版本是10.9.2, JDK配置得好好的,但打开eclipse时还是提…

    Java 2023年5月29日
    076
  • Condition

    Profile是个好东西。通过Profile,我们可以非常方便地条件化Bean的创建,动态调整应用程序的功能。可是,Profile只能做些简单的条件化,对于复杂一点的条件化Prof…

    Java 2023年6月5日
    090
  • 类加载的机制及过程

    5个步骤:加载–>验证–>准备–>解析–>初始化 加载:读取二进制文件,根据路径找到对应的class文件然后…

    Java 2023年6月14日
    063
  • <3>Linux-文件操作命令(2)

    vi 编辑器的使用 vi 简介 vi可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其环境进行定制.只是一个文本编辑器,不能排版。vi没有菜单,只…

    Java 2023年6月15日
    081
  • Reactor模型

    要无障碍阅读本文,需要对NIO有一个大概的了解,起码要可以写一个NIO的Hello World。 说到NIO、Netty,Reactor模型一定是绕不开的,因为这种模式架构太经典了…

    Java 2023年6月5日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球