非法关键词日积月累会越来越多
不可能写个 for 循环,遍历所有关键词,然后再查找“内容”中有没有这个关键词吧?效率低
当然我知道一些东西 Spark 可以分布式计算 还不太会用,只是了解了功能可能会用上
但是有没有更好的算法呢?
我目前想到的一些主要思路:
[需求]
需要过滤的 “内容” 和 “非法关键字”
第一步
非法关键字把首字进行 md5 取第一位 如:
SB 这个词 每个字符 md5 只拿 md5 中的 第一位 如:
SB
13
第二步
把内容中的每个字符 md5 只拿 md5 中的 第一位 如:
每个字符进行 md5 并且取 md5 的第一位
你是 SB 就注定无泪无悔
a 1 13 4 5 3 3 b x c
然后每个字符都有一个 0-9a-f 对应
把得到的字符 组合为下列方式,存储为一个数组:
a1
11
13
34
45
53
33
3b
bx
xc
第三步
把非法关键字分散到 256 个字典中
00
01
02
..
ff
第四步
for 循环 第二步得到的数组,去查询非法关键字的 256 个字典
得到 可能的所有非法关键字
第五步
详细对比 content.IndexOf(第四步中得到的词)
不可能写个 for 循环,遍历所有关键词,然后再查找“内容”中有没有这个关键词吧?效率低
当然我知道一些东西 Spark 可以分布式计算 还不太会用,只是了解了功能可能会用上
但是有没有更好的算法呢?
我目前想到的一些主要思路:
[需求]
需要过滤的 “内容” 和 “非法关键字”
第一步
非法关键字把首字进行 md5 取第一位 如:
SB 这个词 每个字符 md5 只拿 md5 中的 第一位 如:
SB
13
第二步
把内容中的每个字符 md5 只拿 md5 中的 第一位 如:
每个字符进行 md5 并且取 md5 的第一位
你是 SB 就注定无泪无悔
a 1 13 4 5 3 3 b x c
然后每个字符都有一个 0-9a-f 对应
把得到的字符 组合为下列方式,存储为一个数组:
a1
11
13
34
45
53
33
3b
bx
xc
第三步
把非法关键字分散到 256 个字典中
00
01
02
..
ff
第四步
for 循环 第二步得到的数组,去查询非法关键字的 256 个字典
得到 可能的所有非法关键字
第五步
详细对比 content.IndexOf(第四步中得到的词)