敏感词匹配算法分析

本文探讨敏感词匹配算法,重点介绍了前缀树的原理与实现,包括指针策略和优缺点,并提及改进方法——KMP算法。此外,还简单概述了DFA算法和AC自动机,它们在敏感词过滤中的应用。
摘要由CSDN通过智能技术生成

前缀树匹配

 

前缀树

是什么

一种有序树,用于保存关联数组,其中的键通常是字符串,且键是由节点在树中的位置决定的。

 

应用

敏感词过滤、搜索提示(例如输入一个网址,可以自动搜索出可能的选择)

 

如何实现

构建敏感词前缀树,三个指针,分别为指针1,指针2,指针3.

指针1:初始指向前缀树的根。当指针2指向的字符与其指向的前缀树中的字符想匹配时,则一起移动,当命中一个敏感词或者无法匹配下去时,则返回根。

指针2:其走到字符串尽头时说明比较结束。其用于保存当前正在比较的字符串的首个字符的位置。若匹配到某个字符不吻合,则其会移动到下一个字符位置。

指针3:每次都和指针1指向的字符比较,若温和,则与指针一一起移动,否则,则继续移动。

 

效果

可过滤最直接的敏感词,或者可改良,过滤中间加了特殊字符的敏感词。(在输入文本时可把特殊字符去掉)

 

优点

利用字符串的公共前缀减少查询时间,提高查询效率。

 

缺点

一旦匹配失败,又要从根开始。

 

改进

利用KMP算法防止字符串回溯(最大最小前缀),改进了之后其实就像AC自动机了。

 

DFA算法

 

基于状态转移来过滤敏感词,感

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值