`
myreligion
  • 浏览: 205100 次
  • 性别: 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  
靠  广告贴

相关推荐

    易语言同义词敏感词替换模块源码

    总的来说,这个易语言同义词敏感词替换模块提供了对文本内容审查的解决方案,尤其适用于需要过滤敏感信息的系统。通过解析和理解源码,我们可以学习到如何在易语言环境下实现高效、准确的文本处理和敏感词检测替换...

    敏感词过滤系统

    在IT行业中,敏感词过滤系统是一种重要的技术应用,主要用于网络内容审查、社交媒体监控以及信息安全等领域。这个名为"敏感词过滤系统"的项目,正如其标题所示,是一个专注于检测和阻止特定敏感词汇出现的系统,特别...

    mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤

    这个模块的核心特性包括对分库分表的支持,数据审计机制,以及数据敏感词过滤,从而确保了系统在处理大量数据时的高效性和安全性。 【分库分表】 在大规模分布式系统中,单表数据量过大可能导致性能瓶颈。mybatis-...

    敏感词抽取Java,直接可运行

    7. **代码组织**:项目中的`webdetection`可能是一个用于网络聊天内容检测的模块,而`SensitiveExtract`可能是敏感词提取的核心类或包。 8. **代码使用说明**:`结果截图及代码使用说明`文件会提供关于如何运行和...

    IT企业网站实现前台后台管理,新闻发布,产品发布等功能

    在IT行业中,构建一个企业网站是一项关键的任务,它不仅是企业对外展示形象的窗口,也是与客户互动、...通过合理的架构设计和功能实现,企业能够高效地维护网站内容,提升品牌形象,从而在激烈的市场竞争中占得先机。

    易语言-易语言同义词敏感词替换模块

    总的来说,易语言同义词敏感词替换模块是一个实用的工具,它通过编程的方式实现了对敏感信息的有效管理和控制。对于那些需要处理大量文本内容并确保内容安全的项目,该模块提供了强大的支持。在实际应用中,用户可以...

    易语言同义词敏感词替换模块

    本模块“易语言同义词敏感词替换模块”是针对文本处理的一个功能组件,主要用于在文本中进行敏感词的检测和替换,用同义词进行替代,以达到既能过滤敏感信息又能保持语义连贯的效果。 该模块的核心系统结构可以分为...

    jsp页面中关键字过滤函数

    在开发Web应用,尤其是搭建论坛或社区类网站时,关键字过滤是一个重要的功能模块。它主要用于防止用户发布含有敏感词汇或不适宜内容的信息,确保网络环境的健康与和谐。本项目中,我们关注的是如何在JSP(Java ...

    聊天模块.rar

    3. **用户认证与授权**:为了确保安全性,聊天模块需要实现实名认证和权限管理。这可能涉及OAuth、JWT(JSON Web Tokens)等技术,用于验证用户身份并控制他们能访问的功能。 4. **会话管理**:聊天模块应支持一对...

    留言薄管理系统的设计与实现

    《留言簿管理系统的设计与实现——基于JSP+Java+MySQL》 在当今信息化社会中,管理系统已经成为企业或个人日常工作中不可或缺的一部分。其中,留言簿管理系统作为互动交流的重要工具,广泛应用于网站、论坛、社区等...

    校园论坛代码

    用户在前端填写内容,后端接收到请求后处理数据,将其存储到数据库中,并可能进行一些内容过滤,如防止垃圾广告或敏感词。同时,回帖功能需要维护帖子的层次结构,可能需要使用无限级分类或者自连接等数据库技巧。 ...

    企业数字化解决方案:金融信创.pdf

    * 应用安全:对各模块的主文档的内容进行安全配置,包括敏感词过滤、关联文档权限等安全权限管控 * 模块权限:基于不同角色配置系统不同的功能权限模块 * 文档权限:设定文档使用权,配置文档可阅读者、可编辑者、可...

    基于ASP.NET的网络聊天室的设计与实现

    同时,聊天室应有防止垃圾信息和恶意行为的机制,如设置敏感词过滤、时间间隔限制等。 总的来说,基于ASP.NET的网络聊天室设计与实现是一个综合性的项目,涉及到Web编程、数据库设计、客户端交互等多个技术环节。...

    Discuz论坛代码包.rar

    9. **反垃圾邮件**:内置了强大的反垃圾信息机制,包括验证码、敏感词过滤、IP黑名单等,有效防止恶意灌水和广告。 10. **数据备份与恢复**:系统提供数据备份和恢复功能,管理员可以定期备份论坛数据,以防数据...

    elasticsearch+Mybatis+Aop

    将`Elasticsearch`、`Mybatis`和`AOP`结合起来,可以在Spring框架中实现高效的数据索引和搜索功能。例如,通过AOP,我们可以在Mybatis的Mapper方法执行前后添加自定义逻辑,比如在查询之前自动将结果同步到Elastic...

    实习BBS论坛制作

    4. 社区规范:设置版规,实现实时监控,自动过滤敏感词,保持论坛秩序。 5. 数据分析:收集用户行为数据,分析论坛活跃度,为运营决策提供依据。 通过这个实习项目,你将全面掌握BBS论坛的开发流程,提升你的编程...

    mybatis-plus 企业(数据优雅处理)模块

    3. **数据敏感词过滤(AC算法)**:在数据处理中,有时需要对敏感信息进行过滤,如身份证号、手机号等。mybatis-mate的AC算法能快速匹配并替换敏感词,确保数据安全。 4. **字段加密**:对于涉及隐私或者关键性的...

    .net求职简历项目经验模板.docx

    在这个项目中,开发者负责的主要模块包括用户账户管理(注册、登录、找回密码和头像上传)、商品展示与排序、商品详细页面的构建、站内搜索与商品分类、商品评论系统(包括无刷新加载和敏感词过滤)、购物车与结算...

Global site tag (gtag.js) - Google Analytics