首页 > 编程语言 > 详细

DFA算法

时间:2019-03-13 16:09:54      阅读:188      评论:0      收藏:0      [点我收藏+]

今天新学习了一个敏感词匹配的算法,记录一下。

  原文地址:https://blog.csdn.net/qq_36827957/article/details/74357283

  1、用途:

    主要用于敏感词匹配。

  2、原理:

  以王八蛋和王八羔子两个敏感词来进行描述,首先构建敏感词库,该词库名称为SensitiveMap,这两个词的二叉树构造为:

 技术分享图片

以上面例子构造出来的SensitiveMap为敏感词库进行示意,假设这里输入的关键字为:王八不好,流程图如下:

  技术分享图片

3.代码编写

3.1构造敏感词实现代码

 技术分享图片

3.2实现敏感词查询代码

 技术分享图片

4.优化思路

4.1敏感词中间填充无意义字符问题

对于“王*八&&蛋”这样的词,中间填充了无意义的字符来混淆,在我们做敏感词搜索时,同样应该做一个无意义词的过滤,当循环到这类无意义的字符时进行跳过,避免干扰。

4.2敏感词用拼音或部分用拼音代替

两种解决思路:一种是最简单是遇到这类问题,先丰富敏感词库进行快速解决。第二种是判断时将敏感词转换为拼音进行对比判断。

不过目前这两种方案均不能彻底很好的解决该问题,此类问题还需进一步研究。

4.3效率问题

由于敏感词的在构造词库时耗时长,建议将构造后的敏感词库进行缓存。在敏感词新增和删除时进行词库的更新。

 

DFA算法

原文:https://www.cnblogs.com/smilond/p/10523672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!