JAVA使用DFA算法过滤敏感词 代码示例如下: importcn.hutool.core.collection.CollUtil;importcn.hutool.core.util.ReUtil;importcn.hutool.core.util.StrUtil;importcom.google.common.collect.Lists;importcom.google.common.collect.Maps;importjava.util.*;publicclassSensitiveWordUtils {//最小匹配模式publicstaticintmin...
importjava.io.*;importjava.util.ArrayList;importjava.util.Collections;publicfinalclassSensitiveWordFilter{publicstaticList wordList;privatefinalstaticchar replace='*';// 替代字符privatefinalstaticchar[]skip=newchar[]{// 遇到这些字符就会跳过,例如,如果"AB"是敏感词,那么"A B","A=B"也会被屏蔽'!',...
查找过程如下:首先把text按字拆分,逐个字查找词库的key,先从“讨”开始,没有就下一个字“厌”,直到“广”,找到就判断isEnd,如果为1,说明匹配成功包含敏感词,如果为0,那就继续匹配“告”,直到isEnd=1为止。 匹配策略上,有两种。最小和最大匹配。最小则匹配【广告】,最大则需要匹配到底【广告词】 2、Java...
import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * @Description: 初始化敏感词库,将敏感词加入到HashMap中,构建DFA算法模型 * ...
Java敏感词过滤,方案一:使用String类的contains()contains()方法用于判断字符串中是否包含指定的字符或字符串。publicstaticvoidmain(String[]args){Stringa="敏感词";Stringb="我的敏感词";System.out.println(b.contains(a));if(b.contains(a)){System.out.pri
下面我们用这一思想简单创建了一个工具类,实现DFA算法。public class SensitiveWordsFilter {private static TrieNode root = new TrieNode();/*** 添加敏感词* @param word*/public static void addWord(String word) {if (word == null || word.length() == 0) {throw new IllegalArgumentException("...
然后可以根据它的公共前缀的特性来实现敏感词过滤、自动联想等功能。 抽象出trie树的数据结构: 1、首先来看下trie树的结构图: 2、从上图可以归纳出Trie树的基本性质: ①根节点不包含字符,除根节点外的每一个子节点都包含一个字符。 ②从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。
- 根据敏感词,初始化前缀树 - 编写过滤敏感词的方法 过程 我们先定义一颗前缀树,在程序开始阶段创建前缀树对敏感词进行保存,便于后续的查找 1. // 前缀树 2. private class TrieNode {3.4. // 关键词结束标识5. private boolean isKeywordEnd = false;6.7. // 子节点(key是下级字符,value是下级节点)8. ...
java敏感词过滤-使用HashMap实现DFA算法 转载:http://blog.shilimin.com/298.htm package arrayDemo; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; @SuppressWarnings( { "rawtypes", "unchecked" })...