go-wordsfilter

高性能的 Go 敏感词过滤器
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 杜凯
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

go-wordsfilter 是一个高性能的 Go 敏感词过滤器,通过预先读取敏感词源并构建树状结构数据的方式来高效地检测和替换敏感词。采用 MIT 开源协议。

下载安装

go get github.com/syyongx/go-wordsfilter

快速开始

import (
    "github.com/syyongx/go-wordsfilter"
)

func main() {
    texts := []string{
        "Miyamoto Musashi",
        "妲己",
        "アンジェラ",
        "ความรุ่งโรจน์",
    }
    wf := wordsfilter.New()

    // Generate
    root := wf.Generate(texts)
    // Generate with file
    // root := wf.GenerateWithFile(path)

    // Contains
    c1 := wf.Contains("アン", root)
    // c1: false
    c2 := wf.Contains("アンジェラ", root)
    // c2: true

    // Remove
    wf.Remove("アンジェラ", root)
    c3 := wf.Contains("アンジェラ", root)
    // c3: false

    // Replace
    r1 := wf.Replace("Game ความรุ่งโรจน์ i like 妲己 heroMiyamotoMusashi", root)
    // r1: Game*************ilike**hero***************
}

Apis

New() *WordsFilter
Generate(texts []string) map[string]*Node
GenerateWithFile(path string) (map[string]*Node, error)
Add(text string, root map[string]*Node)
Replace(text string, root map[string]*Node) string
Contains(text string, root map[string]*Node) bool
Remove(text string, root map[string]*Node)
  • 关键词过滤扩展,用于检查一段文本中是否出现敏感词,基于Double-Array Trie 树实现 一、安装libiconv 这个是libdatrie的依赖项 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./c

  • 1. token filters 概览   token filter 这个名字也直接表达了含义,就是对token stream 进行了add ,remove, change操作,这也是nanlyzer的最后一步。比如一个 lowercase token filter 会将token都变成小写的;一个 stop token filter 会根据词库或者规则去掉一些停用词;一个 synonym tok

  • js中的es6 中提出 map  reduce filter 等方法; 那么我们在c#中似乎没看到呢,真的吗? are you kiding me?  先看map static IEnumerable<TResult> Map<T,TResult>(Func<T, TResult> func,IEnumerable<T> list) { foreach(va

  • --== Godit - a very religious text editor ==-- Screenshots: * https://nosmileface.dev/images/godit-linux1.png * https://nosmileface.dev/images/godit-linux2.png I call it religious, because there is a

  • 使用gopacket包对pcap流量包进行解析。 go get github.com/google/gopacket 首先打开一个pcap流量包文件,然后过滤tcp流量中的每一个包,遍历每一个包进行下一步处理。 针对每一个包,首先从以太网层可以获取到ip协议是ipv4还是ipv6,只需要ipv4的,同时还能获取到源MAC地址,目的MAC地址,源ip和目的ip。  ethernetLayer :=

  • package main import ( "fmt" "github.com/syyongx/go-wordsfilter" ) //屏蔽敏感词 func main() { wf := wordsfilter.New() root, _ := wf.GenerateWithFile("sensitive.txt") //替换 newStr := wf.Replace("不可描述X

 相关资料
  • 注意:“敏感词过滤”功能需在“应用防护管理”中开启对应的防护(Web防护/Nginx自编译/RASP)才可使用。 “敏感词过滤”是指对互联网发布的言论和文章中含有的敏感词进行过滤。敏感词经过在互联网的传播和扩散会影响社会的稳定和用户的使用。网防G01的“敏感词过滤”功能可以对用户post请求的内容阻止并提示,而get请求的内容则使用“*”号替代敏感词。如果网站开启GZIP时,敏感词过滤则不生效。

  • 本文向大家介绍python 实现敏感词过滤的方法,包括了python 实现敏感词过滤的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 测试结果: 1) 敏感词 100个 2) 敏感词 1000 个 从上面的实验我们可以看出,在DFA 算法只有在敏感词较多的情况下,才有意义。在百来个敏感词的情况下,甚至不如普通算法 下面从理论上推导时间复杂度,为了方便分析,首先假定消息文本是等长的,长度为

  • 本文向大家介绍浅谈Python 敏感词过滤的实现,包括了浅谈Python 敏感词过滤的实现的使用技巧和注意事项,需要的朋友参考一下 一个简单的实现 其中strip() 函数 删除附近的一些空格,解码采用utf-8的形式,然后将其转为小写。 parse()函数就是打开文件,然后从中取各个关键词,然后将其存在关键词集合中。 filter()函数是一个过滤器函数,其中将消息转化为小写,然后将关键词替换成

  • 本文向大家介绍laravel框架实现敏感词汇过滤功能示例,包括了laravel框架实现敏感词汇过滤功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了laravel框架实现敏感词汇过滤功能。分享给大家供大家参考,具体如下: 最近项目有需求,要对用户的签名,回复进行敏感词检测,然后搜到了一个好用的扩展,分享给大家。 https://github.com/FireLustre/php-df

  • 本文向大家介绍java利用DFA算法实现敏感词过滤功能,包括了java利用DFA算法实现敏感词过滤功能的使用技巧和注意事项,需要的朋友参考一下 前言 敏感词过滤应该是不用给大家过多的解释吧?讲白了就是你在项目中输入某些字(比如输入xxoo相关的文字时)时要能检 测出来,很多项目中都会有一个敏感词管理模块,在敏感词管理模块中你可以加入敏感词,然后根据加入的敏感词去过滤输 入内容中的敏感词并进行相应的

  • 本文向大家介绍JavaEE Filter敏感词过滤的方法实例详解,包括了JavaEE Filter敏感词过滤的方法实例详解的使用技巧和注意事项,需要的朋友参考一下  我们在聊天的时候的或者留言的时候,有部分词是不允许发表出来。我们可以采用过滤器实现这个功能。 我们只是简单利用过滤器实现这个过滤的功能,有些地方没写的很全 前台代码: Servlet里面的代码: 仅仅只是把从前台收的数据读取出来。看里