敏感词过滤的php代码,php实现敏感词过滤(Trie树)

本文介绍了如何使用PHP实现敏感词过滤,基于Trie树算法,支持不同级别的屏蔽策略。通过敏感词字典初始化字典树,对字符串进行匹配和替换,灵活控制敏感词的检测严格度。
摘要由CSDN通过智能技术生成

灵感来自于 [嘉兴ing](https://segmentfault.com/a/1190000019137933 "Trie树 php 实现敏感词过滤")

感谢分享.

本文主要是针对上文添加了自己的理解,以及增加了通过屏蔽等级灵活控制敏感词过滤。

代码适用场景:

1.特殊时间需要大规模针对某些敏感词进行敏感词检测

2.敏感词除了精确匹配外还需要模糊匹配,如傻lkaj瓜

3.针对不同时期(例如重大节假日),或者是不同级别的项目,对敏感词的校验严格度不同,进行进一步处理。

实现逻辑

通过前缀树/字典树 算法,通过利用字符串的公共前缀来节约存储空间。

例如当前敏感词数组为:['傻瓜','傻瓜蛋','傻子']

当要匹配的字符串中含有 '傻瓜'、'傻子'时,下图字典树示例中的红色边框则为对应的终止节点。

字典树如图所示:

bVbCg3U

首先需要通过敏感词字典文件将敏感词初始化字典树,

然后在字典树上搜索添加过的字符串。

其步骤如下:

1.从根结点开始搜索。

2.取得要查找字符串的第一个字符,根据该字符选择对应的字符路径向下继续搜索。

3.如果字符串搜索完成后,判断当前是否已经是对应敏感字符路径的终止节点,如果是的话,说明字典树中含有该字符串,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值