敏感词过滤算法实现(含源码)
来源:互联网 发布:淘宝怎么看上下架时间 编辑:程序博客网 时间:2024/05/18 00:43
敏感词过滤算法(聚合词树查询法)
1.构建词树
2.敏感词判断
3.遍历文本
关于敏感词过滤算法,数不胜数,在参考众多算法后,选取了比较实用的算法,进行总结与改进。大家可以参考一下链接:
敏感词过滤算法实现
发一个高性能的敏感词过滤算法 可以忽略大小写、全半角、简繁体、特殊符号干扰
算法描述:
将所有敏感词库按模块聚合构建成一个词树(所谓聚合,就是将相同字开头的部分进行聚合,以减少对词的查询范围,相当于建立敏感词索引,如:他奶奶的、他妈的、他娘的,这三个词,聚合构建成词树时,“他”字就是这三个词的索引,同时每个词的结尾都有一个结束标志和该词的一些描述,如敏感级别等),然后从头到尾扫描一遍目标文本,当遇到以敏感词树中的索引的字时,查看后面的文本是否构成敏感词(如果这里有以这个敏感词开头的更长的敏感词时,以更长的为匹配结果,并判断该词在文本中前后是否有分隔符来区别其匹配方式),如果是则记录,一遍扫描完之后所有敏感词即被扫描出来了!
1.构建词树
词树整体为多叉树结构,词树节点包含当前位置可能出现的所有字符(字节),以及该字符对应的下一节点地址,节点的高度对应相关敏感词的字节位置,节点的分支数表示该节点的被复用的次数,每个敏感词的都会有一个特殊的结束节点。词树结构可以节省存储空间,提升查询效率。
词库
ab
ab1
ab2
ba
ba1
ba2
词树
a b \r
1 \r
2 \r
b a \r
1 \r
2 \r
2.敏感词判断
使用递归算法查找词树,找出符合要求的最大长度敏感词
ab
abc
输入abcd,则命中abc
3.遍历文本
从文本的起始位置,以每个字符作为单词的起始字符向后查询,
abc
输入
123abc123,命中abc
敏感词过滤算法(c++实现)
1 0
- 敏感词过滤算法实现(含源码)
- 敏感词过滤算法实现
- 高效敏感词过滤JAVA实现(DFA算法)
- Java DFA算法实现敏感词过滤
- C#敏感词过滤算法实现
- 基于DFA算法实现过滤敏感词
- 敏感词过滤算法
- 敏感词过滤算法
- 网站敏感词过滤的实现(附敏感词库)
- DFA 算法实现敏感词过滤(python 实现)
- Java实现DFA算法 实现敏感词过滤
- java实现敏感词过滤 dfa算法实现
- Java敏感词过滤算法
- DFA敏感词过滤算法
- 编程珠玑 - 算法优化 - 过滤敏感词 - 第一步:快速实现
- java敏感词过滤-使用HashMap实现DFA算法
- java敏感词过滤-使用HashMap实现DFA算法
- java敏感词过滤-使用HashMap实现DFA算法
- Linux批量替换文件下字符内容
- Yii2 hasOne(), hasMany() 实现三表关联的方法
- C#中Invoke的用法()
- gtest
- Test
- 敏感词过滤算法实现(含源码)
- 洛谷 P1514 引水入城
- Java基础-异常处理(一)
- 高德地图之定位:
- eclipse修改package名,并且修改包名
- 安卓looper,messager,hander 详解
- Trie--前缀树(转)
- 总结Android开源项目及库
- Java框架数据库连接池比较(c3p0,dbcp和proxool)