明明白白我的登录——关键词过滤

在用户帐号体系中,每个用户都会设置一个彰显自己个性的用户昵称,这些用户输入的昵称中有些词是敏感词,不可以使用,那么就需要对用户的昵称进行过滤去除其中的关键词,这样就涉及下面几个细节:

明明白白我的登录——关键词过滤_第1张图片
昵称关键词过滤

其中核心功能点:初始化、敏感词查找、匹配策略、用户输入

初始化:将关键词读入内存中,并按照预先设计的数据结构进行初始化,而且初始化的最终目标是提高关键词查找的效率。

敏感词查找:精确匹配(文本全部与关键词完全匹配)、包含匹配(文本全部包含关键词匹配)

本文重点围绕初始化展开,在这方面比较常用的有:

String、Hash、Trie、Bloom Filer。

String

在关键词初期,可以将需要的关键词拼接成字符串,然后根据字符串进行查找,比如:strops、strstr等,不同的语言都提供了丰富的字符串函数。

Hash

该结构使用场景较多,也容易接受,所以不再展开介绍

Trie

是在上述Hash结构后的进一步优化,将关键词初始化为树型结构,当然比前面的实现方式也更复杂

Bloom Filter

之所以将Bloom Filter放到最后讲,是因为该算法有一定的错误率,所以需要根据实际要求进行选择。

参考资料:

1、关键词过滤的系列文章

2、Trie VS Hash

3、Bloom Filter

你可能感兴趣的:(明明白白我的登录——关键词过滤)