互联网公司通常需要对手机或者社交软件发送的信息进行敏感词过滤,用户发送的信息一般是100多个字,但总量特别大,一周达到上亿,需要采取快速的过滤方法,不影响用户体验。
1.首先就要将信息调度到多服务器上处理,保证实时性;
2.如果有一个字(2字节)的敏感词,则放在一个数组里bool onlyOneDict[65535],信息里的字全部跑一遍;
3.按分隔符分句,句子内通用按2个字前后组合,最多是字数的两倍个,大于等于2个汉字的敏感词用大数组存储标记bool fistTwoDict[65535],数组下标是两个字的hash值,算法可以采用取两个字的部分位(快);
4.前面那步能找到的都是可疑词,时间复杂度O(1),后面再和敏感词比对就行了(按索引组织好敏感词,时间复杂度也是O(1))。
网友评论