12
回答
编程珠玑 - 算法优化 - 过滤敏感词
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
编程珠玑 - 算法优化 - 过滤敏感词 - 第一步:快速实现

http://my.oschina.net/fangxu/blog/32380

编程珠玑 - 算法优化 - 过滤敏感词 - 第二步:效率问题

http://my.oschina.net/fangxu/blog/32382

编程珠玑 - 算法优化 - 过滤敏感词 - 第三步:树形结构

http://my.oschina.net/fangxu/blog/32384

编程珠玑 - 算法优化 - 过滤敏感词 - 第四步:二分查找

http://my.oschina.net/fangxu/blog/32385

编程珠玑 - 算法优化 - 过滤敏感词 - 第五步:原始类型

http://my.oschina.net/fangxu/blog/32386

编程珠玑 - 算法优化 - 过滤敏感词 - 第六步:新的需求

http://my.oschina.net/fangxu/blog/32387

编程珠玑 - 算法优化 - 过滤敏感词 - 第七步:疯狂测试

http://my.oschina.net/fangxu/blog/32389
<无标签>
举报
方旭
发帖于6年前 12回/4K+阅
共有12个评论 最后回答: 1年前

     查找问题.直奔理论最终选择,hash不解释~~~

     至于一些变形的敏感词.... 这个道高一尺魔高一丈... 没什么想法... 感觉直接把变形体加入哈希表中,比费劲识别它 要高效. 虽然后者是本质.

引用来自“夜游神(Lunar)”的答案

     查找问题.直奔理论最终选择,hash不解释~~~

     至于一些变形的敏感词.... 这个道高一尺魔高一丈... 没什么想法... 感觉直接把变形体加入哈希表中,比费劲识别它 要高效. 虽然后者是本质.

正如所说,在第三步中已经引入了HashMap,这个原因大家都知道。

这个题目,个人觉得精彩在于:

一、逆向思维。从发布内容循环,而不是从敏感词循环

二、char[]排序、char[]的二分查找。

三、常用正则过滤特殊字符效率非常差,使用其他方式替代它。

 

楼主牛人啊~

关于过滤的我也想了好久,一直苦于这个效率问题,今天看到楼主这个东西,启发不少...感谢分享!

引用来自“十一文”的答案

其实就是 状态机的思想

有和同事讨论的时候,他有提到状态机,羞于知识局限性,没有意识到。

后面动手做出实效后,发现知识需要动手实践才能深入。不然,知识就是知识。

敏感词:531
初始化map大小:1152, time=16
====================================>
原来算法:13234ms

最后优化算法:860ms

测试文本大小:6892字

循环测试次数:1000次

 

搞敏感词屏蔽总比方滨兴搞GFW好,呵呵,本来是来看观天涯优秀员工出国游的,打酱油顺便唠叨一句

顶部