设计思路-铭感词过滤

发布时间 2023-03-30 09:42:35作者: 意犹未尽

需求

用户输入,如果是系统中管理员录入的铭感词则替换为***或者提示用户铭感词

 

方案一

将管理员录入的词库全部导入到分词词库,设置分词只分含有词库的词语

比如敏感词 弟弟,小老弟  输入 你好  则不返回  输入 你好小老弟 返回 [小老弟] 有返回则表示含有铭感词语 针对替换 分词框架都会返回start 和postion类似这样的位置

缺点:如果铭感词库比较多或者是saas场景 则会消耗大量内存

 

方案二

其实大量的中文词库分词框架都能分出来,只是有一些特殊的分不出来。我们只将这些特殊的导入词库

管理员录入敏感词 “弟弟”

则我们自行组织成一句话

"测试铭感词分词弟弟" 假设弟弟是特殊字符 ik分词不了,

交给分词器 比如ik 当判断分词后的结果不包含弟弟,  则将弟弟2个字录入ik词库

 

当用户输入 “你好弟弟”  因为录入了词库 分词 [你好,弟弟]  拿这2个字去数据库in  如果找到则表示是铭感词 做后续逻辑

缺点:相较第一种依赖了数据库去匹配是否是铭感词