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*************** }
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)