聊天监控匹配敏感字词
最近在做聊天监控的时候,遇到一个展示含有敏感字词聊天的需求,初拿到手,感觉就是一个字符串匹配问题,应该没什么好做的,后边又想用什么容器去存放敏感字词,想到集合,但又觉得当敏感字词数量较大的时候,一次次遍历效率很比较低下,就上网上试着找找有没有相关的方法可以直接用,因为敏感字词的这个业务应该是很常见的,所以很有可能已经有“共通”处理了。
后边也就顺利的找到KWSeekerManage、SensitiveWords、sensitive-word-filter
大体上代码分为四个核心部分:
1.敏感词结果集(存放被定义为敏感字词的set集合)
2.敏感词搜索器
3.搜索器组,构建敏感词管理器,可同时管理多个搜索器,其中可放置多个敏感词搜索器
4.通过搜索器组,与消息内容匹配敏感词,生成匹配到的敏感词组
下面为核心代码:
// 敏感词结果集
Set<KeyWord> kws1 = new HashSet<KeyWord>();
//从数据库中查找敏感词list,类型为SensitiveWords
List<SensitiveWords>