为了账号安全,请及时绑定邮箱和手机立即绑定

每天微博接收的上百万条数据,每条评论都在几十到一百多之间,问如何能最快的查找出里面的敏感词汇?

每天微博接收的上百万条数据,每条评论都在几十到一百多之间,问如何能最快的查找出里面的敏感词汇?

PHP
动漫人物 2019-03-11 14:36:25
当时笔试问到的一个问题,如题.当时脑子想的是用正则匹配,但是估计会炸了....回来查了好多资料,貌似是用AC算法这种东西,对算法真的不了解,大神们觉得怎么处理比较好呢?
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

这些应用都是多台部署的,后台多台机器会提供敏感词验证服务接口,任务平摊给多个机器,速度自然很快了。

在自己公司内部技术wiki上搜索了一下,我司使用的敏感词算法是:Aho Corasick自动机结合DoubleArrayTrie极速多模式匹配 ,我司主要用的是java实现的,应该也有php版本的实现,你自己去找找吧。

查看完整回答
反对 回复 2019-03-18
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

一般用DFA算法。正则可以做到。不过效率太低了

查看完整回答
反对 回复 2019-03-18
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

用PHP做过类似的应用demo,也是用的ac,其实算法这东西,如果你不是研究算法,只是单纯的用的话其实不难的。

这是匹配算法。
然后还有一点的就是语言,这种要求运行速度的最好别选PHP,脚本语言总是没有静态语言跑的快。然后是敏感词的存储,从内存中拿和从磁盘上拿这两个区别还是蛮大的。
然后是一台服务器上多线程处理,多台服务器的分布式处理;暂时想到的就这些了

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 746 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信