1.0 违禁词系统简介

2017-06-06 00:09:01 5,802 6


违禁词系统主要是用户的输入的内容进行检测,检查其中是否包含有违禁的词汇。

我们通常在系统的运营后台有一个违禁词词库,列出了所有的违禁词。如果用户发表的内容中,如果包含了某个违禁词词库的词汇,那么我们就不能让用户的这段内容发表。例如用户的评论中包含"法轮功"这个词。

违禁词的概念实际上非常好理解的,不过要实现一个违禁词的系统确没有那么简单:

在业务层面上:

1、首先违禁词是需要进行分类的:例如上面提到的“法轮功”是属于违法的词汇;而领导人的名称可能属于政治敏感的词汇;又有一些词汇是属于黄色暴力的词汇...

2、 违禁词的词库不是通用的,每个企业的违禁词的词库中的内容都是不完全相同的。例如对于"天猫"、“淘宝”,如果用户的评论中出现这两个词汇,可能对于阿里 自己来说,可能并不是违禁词词汇。但是如果用户的评论发表在其他网站的评论列表中,就有可能是在打广告了。所以不同的企业中包含的违禁词的内容是不同的。

3、有些词汇,不是所有情况下都是违禁词。例如,假设一个企业的名称叫做"XX公司",如果一个用户的昵称也是"XX公司",那么其他用户可能会以为这是一个官方账号,明显这个词是不能够当做昵称的。但是用户如果在评论中提到这个词,又不属于违禁词的范畴。

4、有的时候用户的内容中没有包含违禁词,但是内容却是违禁的。例如“召打字员,1千字15元”。这段内容没有任何常规意义上的违禁词,但是这个内容明显是打广告的。

5、违禁词词汇中的内容需要能够进行动态的添加。虽然我们有一个词库了,但是词库中不可能包含所有的违禁词。所以我们需要提供一种方式,能够动态的添加违禁词汇。并且要能够立即生效。

在技术层面上:

我们需要考虑的问题就更加复杂化了。对于一个违禁词的变化内容可能是千变万化的,例如"法轮功":

1、汉字拆分情况:“法轮功”-->"三去轮功"

2、跳字处理:"法轮功"-->"法--轮——功"

3、 Html标签:"法轮功"--><font color="red">法</font> <font color="red">轮</font> <font color="red">功</font>

4、简繁转换:"法轮功"-->"法輪功"

5、拼音:"法轮功"-->"falungong"

6、同音字:"法轮功"-->"发轮功"

7、高亮:用户输入的一大段内容,我们需要将违禁的词汇高亮显示。

8、相似度比较:例如用户输入“召打字员,1千字15元”等广告,可能以后又变为"召打字员,2千字30元",对于这种情况,我们必须也要检测出来。

9、分场景处理。即指定违禁词的有效范围。

10、高效的检索:因为违禁词的词汇数量是非常多的,必须要提供一种高效的检索方式。

1457351355580063076.jpg