在我们的生活中,通常不应该出现敏感的词。我们通常使用*阻止它,例如:nima-> **,一些责骂敏感的单词和某些政治敏感的单词不应出现,不应出现在某些公共场所中,目前我们需要某种方法来阻止这些敏感词。让我介绍一些敏感单词的简单版本。
(我试图在图片的形式中宣誓单词,否则文章无法发表)
替换是最简单的字符串更换。当字符串可能出现敏感的单词时,我们可以使用相应的替换方法将敏感单词替换为*。
缺点:
当文本和敏感的单词较小时,有很多次时会有更高的效率。
如果是多个敏感的单词,您可以使用列表来一个替换
正则表达式是一种很好的匹配方法。在每日查询中,机会将使用正则表达式,包括我们的爬行者,他们经常使用正则表达式。在这里,我们主要使用“ |”匹配,“ |”表示从多个目标字符串中选择一个以匹配。编写一个简单的示例:
DFA算法(即确定性有限自动机算法)转化为中文,以确定有一个差的自动机器算法。基本思想是基于状态转移来检索敏感词。它只需要扫描文本一次即可检测到所有敏感单词。(实现代码注释)
AC自动机器需要具有前面知识:Trie Tree(简短简介:也称为前面的树,字典树,是一个用于快速处理字符串的问题,可以快速在某些字符串上找到一些信息。
详细参考:https://www.luogu.com.cn/blog/juruohfhaha/trie-xue-xue-xi-zong-jie-jie
AC自动机器将根据轮胎树添加失败指针。如果当前点匹配失败,则指针将转移到失败指导的位置。
我不能在这里重复此操作以获得详细的匹配机制。有关交流自动机器,请参阅本文:https://www.jb51.net/article/128711.htmm
Python可以使用Ahocoraaack模块快速实施:
当然,我们还可以编写AC自动机器,以供特定参考:
以上是使用Python实现敏感单词的四个解决方案。前两种方法相对简单。后两个偏差算法需要首先了解。您需要了解该算法的具体实现。之后,可以理解代码。(DFA是一种常用的过滤方法,建议您掌握它?)
最终附加了敏感短语:https://github.com/qloog/sensive_words
以上是Python的4种实现敏感单词的方法的详细内容。有关Python敏感单词过滤器的更多信息,请注意CTO主要注释中的其他相关文章!