问答 / 0 / 8 / 创建于 3年前
主要用途过滤文字内容涉黄、涉政等,想找个高性能的解决办法,有老司机做过吗?第三方阿里、百度不算
$filter_list = Cache::remember('filter_words', 60, function () { return DB::table('filter_words')->pluck('word')->toArray(); }); $is_forbid = [];// 违禁词 foreach ($filter_list as $v) { if (strpos($content,$v) !== false) { $is_forbid[] = $v; break; } }
@臭鼬 业务非常大的时候才突出性能的差别,实现需求还是第一位的,$list['禁']=''; $list['词']='';return strtr($content, $list); 这个是批量替换,我用的就是这两种。
$list['禁']=''; $list['词']='';return strtr($content, $list);
高性能那你用前端去。哈哈哈哈。客户端验证。不消耗你服务器资源 :joy:
es
分词,把违规的词做成自定义词库。用这个词库去切分需要审核的内容。 精度高 速度快,即使有百万词语,评论内容也很长很长 也能秒出结果 github.com/lizhichao/VicWord
github.com/FireLustre/php-dfa-sens...
dfa算法
通过github.com/FireLustre/php-dfa-sens... + SWOOLE做一个API,通过API的方式访问,基本是毫秒级
如果是PHP-FPM的方式,基本没有使用的可能性,因为加载词什么的太占用资源
可以参考LightCMS的敏感词过滤实现:github.com/eddy8/LightCMS/blob/8.x...
我要举报该,理由是:
高性能那你用前端去。哈哈哈哈。客户端验证。不消耗你服务器资源 :joy:
es
分词,把违规的词做成自定义词库。用这个词库去切分需要审核的内容。 精度高 速度快,即使有百万词语,评论内容也很长很长 也能秒出结果 github.com/lizhichao/VicWord
github.com/FireLustre/php-dfa-sens...
dfa算法
通过github.com/FireLustre/php-dfa-sens... + SWOOLE做一个API,通过API的方式访问,基本是毫秒级
如果是PHP-FPM的方式,基本没有使用的可能性,因为加载词什么的太占用资源
可以参考LightCMS的敏感词过滤实现:github.com/eddy8/LightCMS/blob/8.x...