一下实现对敏感词,禁忌词的过滤.
两个个文件words.properties和KeyWordFilter.java;
1、words.properties文件是个文本文件;内容如下:
敏感词一
敏感词二
敏感词三
2、KeyWordFilter.java是个java文件内容如下:
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class KeyWordFilter
{
private static Pattern pattern = null;
// 从words.properties初始化正则表达式字符串
private static void initPattern()
{
StringBuffer patternBuf = new StringBuffer("");
try
{
InputStream in = KeyWordFilter.class.getClassLoader().getResourceAsStream("words.properties");
Properties pro = new Properties();
pro.load(in);
Enumeration enu = pro.propertyNames();
patternBuf.append("(");
while(enu.hasMoreElements())
{
patternBuf.append((String)enu.nextElement()+"|");
}
patternBuf.deleteCharAt(patternBuf.length()-1);
patternBuf.append(")");
//unix换成UTF-8
//pattern = Pattern.compile(new String(patternBuf.toString().getBytes("ISO-8859-1"), "UTF-8"));
//win下换成gb2312
pattern = Pattern.compile(new String(patternBuf.toString().getBytes("ISO-8859-1"), "gb2312"));
}
catch(IOException ioEx)
{
ioEx.printStackTrace();
}
}
private static String doFilter(String str)
{
Matcher m = pattern.matcher(str);
str = m.replaceAll("");
return str;
}
public static void main(String[] args)
{
String str = "国敏感词一院学位办就敏感词三的报道表示敏感词二";
System.out.println("str:"+str);
initPattern();
Date d1 = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss:SSS Z");
System.out.println("start:"+formatter.format(d1));
System.out.println("共"+str.length()+"个字符,查到" + KeyWordFilter.doFilter(str));
Date d2 = new Date();
System.out.println("end:"+formatter.format(d2));
}
}
输出为:
__________________________________
str:国敏感词一院学位办就敏感词三的报道表示敏感词二
start:星期二, 24 三月 2009 14:50:17:171 +0800
共23个字符,查到国院学位办就的报道表示
end:星期二, 24 三月 2009 14:50:17:531 +0800
分享到:
相关推荐
以下是对DFA算法及其在Java敏感词过滤中的应用的详细解释。 ### 一、敏感词过滤的重要性 敏感词过滤的目标是检测和处理用户输入中可能存在的敏感词汇。这可以防止不良信息的传播,维护网络环境的和谐。常见的做法...
在Java开发中,敏感词过滤是一项重要的功能,尤其在处理用户输入、评论或者社交媒体内容时,需要确保不包含任何可能引发争议或不适当的内容。本项目适用于基于SSM(Spring、SpringMVC、MyBatis)和SpringBoot框架的...
以下是关于这个Java敏感词过滤实现的详细知识讲解。 首先,我们要理解敏感词过滤的基本原理。通常,敏感词过滤系统会维护一个敏感词库,包含各种禁止或限制使用的词汇。当输入的字符串被检查时,系统会遍历每个单词...
我们在开发系统或者应用的过程中,经常需要对用户提交的评论或者文章进行审核,对其中的敏感词进行校验或者过滤,本资源可以帮助各位小伙伴以一个简单的方式实现敏感词的过滤,代码精简易懂,可以应用在实际开发过程...
高效敏感词过滤JAVA实现(DFA算法) 5000字2ms 节点 + 2进制标识(节省空间/提高查询效率) 附源码、注释,附带专业敏感词库(3396个敏感词) 看得上就拿去用,替换下一两处util方法、改个路径即可 不求什么,...
本篇文章将深入探讨Java中实现敏感词过滤的技术和方法。 首先,敏感词过滤的核心在于如何有效地匹配和替换敏感词汇。Java提供了一些强大的字符串处理和正则表达式功能,可以用来实现这一目标。正则表达式是匹配文本...
本项目是一款高效的Java敏感词过滤系统,基于AC自动机算法实现。系统支持独立部署,同时可便捷集成至注册中心,为各类项目提供敏感词过滤服务。包含文件共117个,其中主要构成如下: - Java源文件:49个 - Class...
使用DFA状态机实现敏感词过滤。 使用Java实现
该项目是一个基于Java语言开发的敏感词过滤系统,设计目的主要是为了能够在文本处理中有效识别和处理敏感词汇,确保网络文本内容的安全和合规性。系统的核心功能是过滤掉不适宜的敏感词,从而避免相关内容对公众造成...
在Java编程环境中,敏感词过滤是一项重要的任务,特别是在处理用户输入、社交媒体监控或者内容审查时。这个主题主要涉及如何在文本中检测并移除或替换指定的敏感词汇,以确保内容的安全性和合规性。以下是对这个知识...
基于Java语言的敏感词过滤服务设计源码所涉及的关键知识点可以围绕Java编程、敏感词过滤机制以及系统设计架构等方面展开。首先,Java语言作为一种高级编程语言,具有跨平台、面向对象等特性,适用于开发复杂的企业级...
双数组字典树(Double Array Trie,简称DAT)是一种高效的数据结构,主要用于字符串搜索和匹配,尤其在处理大量敏感词过滤的场景下表现突出。它是由日本科学家原望治(Hideo Hiraoka)提出的,相比传统的Trie树,DAT...
"网站敏感词过滤Java版.zip" 提供了一种基于Java的解决方案,用于检测和过滤掉可能涉及违法或不适当内容的敏感词。这个压缩包包含了针对敏感词过滤的多种实现方式,适用于各种不同场景,确保了高匹配度和快速过滤...
Java 网站敏感词过滤,里面自带词库,架包版本为2.0版本,本 Java工具包由北京师范大学2000级计算机系 张人杰 开发制作 基于多叉树的查找,我这是写了一个如何使用的例子,不懂QQ 248786960
【Java】机器学习实现敏感词过滤.zip这一压缩包,很可能包含了实现敏感词过滤系统所需的源代码、算法实现、测试用例以及部署指南等文件。这些内容对于开发者而言,是非常宝贵的资源,能够帮助他们快速搭建起一套完整...
Java机器学习实现敏感词过滤的关键技术与实现方法探讨 随着互联网的快速发展,网络文本内容的爆发式增长,如何有效地管理和过滤网络中的敏感词成为了网络管理的重要课题。敏感词过滤通常是指在各种网络平台上,通过...
WM算法,全称为“Widow-Matching”算法,是一种常用的文本处理技术,主要用于敏感词过滤。在互联网信息管理、社交媒体监控以及信息安全等领域,敏感词过滤具有重要作用,它可以帮助识别和屏蔽特定的关键词,防止不良...
本项目通过实现Java设计源码,结合了当前较为流行的文本处理算法,即ik分词和DFA算法,来达到有效的敏感词过滤效果。 ik分词是基于规则的中文分词技术,它能够对中文文本进行细致的切分,并且支持新词识别,以及...
word - search java 敏感词 算法 该jar包的使用示例见当前文件夹的Demo.java 该算法的性能我用1000个线程同时运行:1w多字的目标文本中查找敏感词,其中敏感词库中的敏感词有近1w个,每个线程处理耗时11ms左右
本压缩包包含了四种不同的Java敏感词检测工具,它们各有特点,适用于不同的场景需求。 1. **KeyWordFilter**: 这个工具以其高匹配度著称,但其运行速度相对较慢。KeyWordFilter可能采用了全词匹配或者精确匹配的...