中乐九建
中乐九建
发布于 2024-11-20 / 33 阅读
0

敏感词过滤的几种方法

用找敏感词的方案,可以用在找关键词上

https://github.com/observerss/textfilter

敏感词过滤的几种实现+某1w词敏感词库

  1. NaiveFilter 是最简单的实现方式,它将所有敏感词汇存储在一个集合中,并通过字符串替换的方式对输入的消息进行过滤。这种方式在敏感词汇数量不多时效率较高,但随着敏感词汇数量的增长,其性能会显著下降。

  2. BSFilter 使用了后缀排序映射(Back Sorted Mapping)来减少替换次数,提高效率。它不仅存储了敏感词汇,还创建了一个字典,该字典的键是敏感词汇中的每个单词或字符,值是一个索引集,指向包含这些单词或字符的敏感词汇的位置。这样,在过滤消息时,可以更快地定位到需要替换的敏感词汇。

  3. DFAFilter 实现了基于确定有限状态自动机(DFA, Deterministic Finite Automaton)的过滤算法。DFA 是一种用于模式匹配的有效数据结构,它可以确保算法的执行时间与敏感词汇的数量无关,而只与待过滤文本的长度有关。这种实现方式对于大量敏感词汇的过滤非常高效。

https://github.com/toolgood/ToolGood.Words

一款高性能非法词(敏感词)检测组件,附带繁体简体互换,支持全角半角互换,获取拼音首字母,获取拼音字母,拼音模糊搜索等功能。

C#语言,使用StringSearchEx2.Replace过滤,在48k敏感词库上的过滤速度超过3亿字符每秒。(cpu i7 8750h)