`
myreligion
  • 浏览: 202202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

3行代码,实现高效的敏感词管理与内容过滤模块

    博客分类:
  • guzz
阅读更多

一.功能介绍

提供对一段内容的敏感词检查与标红服务。对于涉及内容安全与审核的系统,对文字进行敏感词过滤是一项必要功能,敏感词服务即用于完成此项功能。

本服务提供敏感词的分组在线管理,词汇分级,内容过滤,涉及词汇提取,以及正文标红等功能。

在过滤时,附加支持:不区分大小写 + 可检测在词汇中插入特殊字符 + 不破坏HTML和UBB代码。

二.示例代码

//第1行,获取服务(JSP中写的)
WordFilterService wordFilterService = (WordFilterService) GuzzWebApplicationContextUtil.getGuzzContext(session.getServletContext()).getService("wordFilterService") ;
 
//第2行,进行内容过滤审查。
MatchResult result = (MatchResult) wordFilterService.filterHtml("你好,我是guzz,a*a,你是谁?", new String[]{"your groupId, something like 'b3vh5xmun0r2z4pkil2g5rpxnt2mu76n0r7qqoa'"}, true) ;
 
if(result != null){
	//含有敏感词
	out.println("<br>最高警告级别:" + result.getHighestLevel()) ;
	out.println("<br>匹配到的内容组成的字符串列表:" + result.getHittedContentList()) ;
	out.println("<br>标记以后的内容:" + result.getMarkedContent()) ;
	out.println("<br>匹配的过滤词列表:" + result.getMatchedContentList(",", 5)) ;
}else{
	//不包含敏感词
	out.println("<br>passed!") ;
}

三.配置服务

1. 配置本服务依赖的“通信信道服务”(RPC调用)。假设配置好的信道服务名称为”commandSocketChannelForServices”.

2. 访问http://cloud.guzzservices.com/services/console/filterWordGroupList.jsp创建过滤词组,增加过滤词。

3. 在guzz.xml中增加此服务:

<service name="wordFilterService" dependsOn="commandSocketChannelForServices" class="com.guzzservices.secure.wordFilter.WordFilterServiceImpl"/>

 

4. 配置服务参数(guzz的properties文件):

不需要配置

四.服务API

在需要内容审核的地方,获取或注入wordFilterService,java接口为:com.guzzservices.secure.WordFilterService

API定义:

package com.guzzservices.secure;
public interface WordFilterService {
 
	/**
	 * 过滤一段文字,根据参数决定是否标红。如果不含有任何过滤词,返回null。
	 * 
	 * @param content 检测内容
	 * @param groupIds 配置的过滤词组编号
	 * @param markContent 是否同时标红过滤的内容。
	 * @return MatchResult
	 */
	public MatchResult filterText(String content, String[] groupIds, boolean markContent) throws Exception ;
 
	/**
	 * 过滤一段html代码段,根据参数决定是否标红。如果不含有任何过滤词,返回null。
	 * 
	 * @param content 检测内容
	 * @param groupIds 配置的过滤词组编号
	 * @param markContent 是否同时标红过滤的内容。
	 * @return MatchResult
	 */
	public MatchResult filterHtml(String content, String[] groupIds, boolean markContent) throws Exception ;
 
}

 

服务接口返回null则表示传入的内容不包含敏感词,否则返回MatchResult提供过滤细节。

“同时标红过滤的内容”将增加网络流量与延迟,如果仅仅是检查内容,不需要将标红的正文显示出来,传入false速度会更快。

MatchResult定义

package com.guzzservices.secure.wordFilter;
public class MatchResult {
 
	/**
	 * 将发现的过滤词列表进行Distinct排重处理,同时统计每个词的出现次数
	 * 
	 * @return 返回Map<String, 出现次数> 包含 Distinct 处理后的过滤词列表以及相应的出现次数
	 */
	public Map<String, Integer> groupMatchedFilterWords() ;
 
	/**
	 * 返回得到的过滤词中最高警告级别
	 */
	public int getHighestLevel() ;
 
	/**是否可以通过给定的过滤词等级*/
	public boolean canPass(int level) ;
 
	/**标红以后的内容。如果调用服务接口时,参数markContent传入false,则此方法返回null。*/
	public String getMarkedContent() ;
 
	/**成功匹配到的过滤词*/
	public List<String> getMatchedFilterWords() ;
 
	/**匹配到的内容组成的字符串列表*/
	public String getHittedContentList() ;
 
	/**
	 * 返回匹配的过滤词列表。方法会自动删除重复的过滤词,并且将返回字符串长度限制在@param maxLength范围内。
	 * @param wordSep 过滤词之间用什么符号连接,如", "。
	 * @maxLength 返回的串最长允许多长。如果需要将返回结果存入到数据库中,则此参数一般传入数据库字段允许的最大长度。
	 */
	public String getMatchedContentList(String wordSep, int maxLength) ;
分享到:
评论
1 楼 hooray520 2011-01-27  
靠  广告贴

相关推荐

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms 节点 + 2进制标识(节省空间/提高查询效率) 附源码、注释,附带专业敏感词库(3396个敏感词) 看得上就拿去用,替换下一两处util方法、改个路径即可 不求什么,...

    java利用DFA算法实现敏感词过滤功能

    在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和...下面这篇文章主要给大家介绍了关于java利用DFA算法实现敏感词过滤功能的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    敏感词管理及过滤

    MFC程序,实现对敏感词的管理,包括增删改,以及敏感词的过滤。

    java实现敏感词过滤

    使用java 实现的可以对输入的String进行敏感词的过滤,返回敏感的词

    DFA算法实现敏感词过滤

    已在项目中使用,绝对是你想要的,高效的DFA算法实现的敏感词过滤功能。

    Java语言实现的敏感词过滤器

    我们在开发系统或者应用的过程中,经常需要对用户提交的评论或者文章进行审核,对其中的敏感词进行校验或者过滤,本资源可以帮助各位小伙伴以一个简单的方式实现敏感词的过滤,代码精简易懂,可以应用在实际开发过程...

    WM算法实现_敏感词过滤

    WM算法实现_敏感词过滤,java版本 敏感词库为XML格式

    敏感词过滤.zip

    敏感词过滤.zip

    基于Hadoop的邮件敏感词检测与告警技术研究

    基于Hadoop的邮件敏感词检测与告警技术研究,结合某公司信息安全审计系统实际项目,研究了邮件敏感词 检测与告警的相关技术。本文从研究背景、研究意义和研究现状入手, 分析了敏感词检测与告警的相关技术及其现状,...

    java敏感词过滤功能

    java敏感词过滤功能

    Java敏感词过滤Java敏感词过滤

    Java 敏感词汇过滤 Java 敏感词汇过滤Java 敏感词汇过滤Java 敏感词汇过滤

    java。dfa算法实现敏感词过滤

    java。dfa算法实现敏感词过滤

    Go-golang敏感词过滤

    golang 敏感词过滤

    基于文本内容的敏感词决策树信息过滤算法.pdf

    该算法不依赖词典与分词, 通过构建敏感词决策树,将网页文本内容以数据流形式检索决策树,记录敏感词词频、区域信息以及敏感词级别, 计算文本整体敏感度,过滤敏感文本。 实验结果表明,SWDT-IFA 算法具有较高的查准率...

    thinkphp5敏感词过滤类

    thinkphp5屏蔽词过滤类基于DFA算法,下载直接引入框架即可

    QT版本DFA敏感词过滤

    该算法基于DFA并进行相应的简化,大概流程是将敏感词库按模块聚合构建成一个词树,然后从头到尾扫描一遍目标文本,当遇到以敏感词树中的索引的字时,查看后面的文本是否构成敏感词,构成敏感词即记录(当查找到敏感词...

    敏感词检测——C语言代码

    本代码实现了敏感词检测。findcode是一个用来将敏感词与句子中排序后的单词先按字母顺序排序然后进行逐一比较的函数;如果两者相同,则return1;用数组下标0-25分别表示a-z字母,对应的每个下标对应的数组元素的值...

    利用Python正则表达式过滤敏感词的方法

    问题描述:很多网站会对用户发帖内容进行一定的检查,并自动把敏感词修改为特定的字符。... 您可能感兴趣的文章:Python 实现王者荣耀中的敏感词过滤示例python 实现敏感词过滤的方法浅谈Python 敏感词过滤的实现

    敏感词过滤系统.zip

    c语言实现的简单敏感词过滤系统,有服务端和客户端两端的代码。通俗易懂,大学课程作业,敏感词过滤系统。c语言实现的简单敏感词过滤系统,有服务端和客户端两端的代码。通俗易懂,大学课程作业,敏感词过滤系统

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms - 含词库

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms 节点 + 2进制标识(节省空间/提高查询效率) 附源码、注释,附带专业敏感词库(3396个敏感词) 看得上就拿去用,替换下一两处util方法、改个路径即可 不求什么,...

Global site tag (gtag.js) - Google Analytics