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

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

昵称关键词过滤

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

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

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

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

String、Hash、Trie、Bloom Filer。

String

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

Hash

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

Trie

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

Bloom Filter

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

参考资料:

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

2、Trie VS Hash

3、Bloom Filter

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容