今日去被大佬问到如何实现一个敏感词的匹配,所以写了一个简版的敏感词匹配结构,还待后期优化!
注:暂时不可以投放到生产环境使用
有喜欢的可以提交代码给我,或者拿走自己维护
希望各位大佬指点 谢谢~, 关键词为网上找到的所以不是很全,望大家海涵~谢谢!
使用方法:
#####1.先构建敏感关键词树 (应为树在初始化时候建立完成 后期可以直接使用,减少后期构建过程)
var tree = decision.CreateTree()
//初始化 构建 敏感词数
func init() {
strList := [] string{
"考前答案","答案","前答",
}
for _, strItem := range strList {
//构建敏感词树
decision.BuildTrue(strItem, tree)
}
}
#####2.匹配敏感关键词
//等待匹配的数据
str := "啊前答我是一个文字啦啦啦考前答案答案前答我也是文答案字啦"
//匹配关键词
res, loc := decision.MatchingSensitiveWords(tree, str)
fmt.Println("\n结果:", "是否存在敏感词:", res, "敏感词每个字所在位置:", loc)
输出结果:
结果: 是否存在敏感词: true 敏感词每个字所在位置: [2 3 13 14 15 16 17 18 19 20 25 26]
使用实例: build_decision.go 文件查看,谢谢