2.0版本提供更高效的标点符号的判断跳过过程

旧版请参考本人2011年博文:高效Java敏感词、关键词过滤工具包_过滤非法词句

本文是Java敏感词过滤的原理以及工具包的提供地址,原理:基于多叉树的查找。

第一步:把敏感词读入搜索多叉树中,

树结构:

第二步,对需过滤的句子进行逐字匹配:

比如句子:解放了全中国

1、记录起始位置start=0,读到了“解”,匹配了搜索树中起始节点的的“解”字;

2、继续读入“放”,又匹配了搜索树中的下一节点的“放”字,此时其子节点的isEnd为true,即当前为一敏感词的结束位,则把当前匹配长度2放入临时变量length;

3、继续第2步,直到map中找不到相匹配的字;

4、如果length>0把从start到start+length的字符替换为“*”,从start+length重新开始第1步;

5、如果length=0,从start+1开始第1步。

本算法对纯文本匹配执行效率已改进到:5000字5毫秒(2400敏感词库)

                         张人杰 2017.7.20

下载地址:点击打开链接

程序已考虑了标点符号间隔的情况,自动处理标点符号间隔的关键词:

3.0版本加入了正向词汇配置表和反向词汇配置表,扫描过程还是顺序一次,但正向词汇和反向词汇有交叉时,以等级值大的为准,从而顺利解决了江阴毛纺厂问题。

源码:GitHub - AlexZhangrj1981/sensitive-words-filter

高效Java实现敏感词过滤算法工具包相关推荐

  1. java实现敏感词过滤算法DFA并忽略敏感词中的特殊字符

    参考文章:https://blog.csdn.net/chenssy/article/details/26961957 补充说明: 1.具体的DFA介绍参考原文章,此处只是补充了文章中没有介绍的点以及 ...

  2. 敏感词过滤算法 为内容保驾护航 Java/.Net/C++/c/Python等语言是如何进行敏感词打码限制的 高效防范违规内容

    有人的地方,就有江湖,有输入框的地方,就有注入风险!有输入框的地方,就有敏感词!敏感词就像一个平台杀手,可能直接导致平台被封锁! 敏感词是一个APP.一个网站.一个内容平台的"杀手" ...

  3. Java实现敏感词过滤 - IKAnalyzer中文分词工具

    IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包. 官网: https://code.google.com/archive/p/ik-analyzer/ 本用例借助 I ...

  4. Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  5. trie树之敏感词过滤算法

    之前写过一篇关于Trie树的介绍:Trie树--在一个字符串集合中快速查找某个字符串.今天就用Trie树来实现敏感词过滤算法. 首先简单介绍一下Trie树的数据结构: 1.根节点不存储字符. 2.Tr ...

  6. Java实现敏感词过滤双向词库完美跳过24口交换机

    Java实现敏感词过滤jar包3.0版本发布,采用双向词库,当检索语句中敏感词交错在正向词库中时,比较词汇level,如果正向词汇的level大于敏感词的level,则跳过此敏感词.完美过滤,&quo ...

  7. 【C++】实现敏感词过滤算法(含源码)

    敏感词过滤算法(聚合词树查询法) 1.构建词树 2.敏感词判断 3.遍历文本 关于敏感词过滤算法,数不胜数,在参考众多算法后,选取了比较实用的算法,进行总结与改进.大家可以参考一下链接: 敏感词过滤算 ...

  8. 浅析过滤敏感词过滤算法(C++)

    本文转自浅析敏感词过滤算法(C++),自己也在其基础上根据自己的情况做了一点修改. 为了提高查找效率,这里将敏感词用树形结构存储,每个节点有一个map成员,其映射关系为一个string对应一个Word ...

  9. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

    文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...

  10. 记录一次敏感词过滤算法DFA的应用案例

    目录 0. DFA是什么? 1.为什么要用DFA 2.DFA工具类实现 3.性能对比效果 3.1 普通关键字过滤 3.2 DFA关键字过滤 0. DFA是什么? 参考文档:敏感词过滤的算法原理之DFA ...

最新文章

  1. 数据算法——Spark的TopN实现
  2. 《中国人工智能学会通讯》——6.25 日落的教训
  3. 解决国内NPM安装依赖速度慢问题
  4. 异步发送,那消息可靠性怎么保证?
  5. Python---寻找给定序列中相差最小的两个数字
  6. Cisco asa 5520 oid
  7. 国家邮政局:春节假期全国共揽收投递快递包裹7.49亿件
  8. iPhone 11系列没5G又没创新 库克的回应听了真是让人没脾气...
  9. c语言中冒泡排序、插入排序、选择排序算法比较
  10. Tensorflow:可视化学习TensorBoard
  11. java 异常java.lang.UnsupportedOperationException
  12. 【转】本科生如何发表论文
  13. 201871010133-赵永军《面向对象程序设计(java)》第一周学习总结
  14. 华为OD 社招(Java后端)一面
  15. leetcode 306 累加数(js)
  16. 计算机视频的压缩方式,如何在电脑上对视频进行压缩?一分钟教你学会视频压缩方法...
  17. 车联网开发板_车联网开发.PDF
  18. Unity实现加载文件夹内所有图片并可显示和放大的一种解决方案
  19. 1、野火freertos学习笔记
  20. Grammer -- 助动词

热门文章

  1. 龙骨导出html文件打不开,一种用于铝型材与龙骨的连接结构的连接件的制作方法...
  2. 突破灰色按钮原理讲解
  3. 传统算法与神经网络算法,神经网络是谁提出的
  4. [Android实例] 【eoeAndroid社区索引】android开发基础之定位篇
  5. 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
  6. 虚幻引擎学习总结(其一)
  7. 统计学基础知识有哪些?看这一篇就够了
  8. Multisim 14.1 安装步骤
  9. 史上最完整的APP商城源码(含服务器)
  10. awk命令详解+示例