1 Star 2 Fork 1

graysonzhang / wordsfilter

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

敏感词过滤

敏感词过滤简介

敏感词过滤功能可以对包含敏感词的字符串进行处理,如色情、政治、暴力、人名等特殊字符,防止发表一些不和谐的词条给业务运营带来风险。

敏感词过滤核心能力及场景

  • 发现敏感词:判断文本中是否包含敏感词。当用户输入带敏感词的请求时,拒绝提供服务,并警告。
  • 屏蔽敏感词:将敏感词替换为其他字符,比如*号。当系统对外展示相关内容是,屏蔽掉敏感词。
  • 提取敏感词:提取文本中的敏感词,一般可以用于内容审核或者用户警告。
  • 标记敏感词:对文本中的敏感词进行标记,比如高亮显示,一般可以用于内容审核或者用户警告。

敏感词过滤算法对比

对于敏感词过滤有不同的算法,如下为各种算法或方法的简单对比。在本实现中,采用DFA算法

算法名称 算法简介 优缺点
match算法 暴力、正则、KMP等匹配算法 原理简单、实现简单,但运算量大,效率差
TrieTree算法 通过公共前缀匹配 效率相对较高、内存开销较少,但大文本过滤效率稍低
AC算法 基于Trie树的多模式匹配算法 词汇量少时性能较高,大的时候性能一般
DFA算法 基于确定有穷自动机的多模式匹配算法 匹配性能高、适合大批量敏感词,占用内存和敏感词字段成正比
BoomFilter 基于布隆过滤器实现 内存消耗少、性能搞,概率性遗漏

当前版本说明

功能说明

当前版本为一个简易版本,目前实现了两个功能:

  • exist接口:发现敏感词。如果输入中包含敏感词,返回true,如果不包含返回false.
  • replace接口: 屏蔽敏感词。如果输入中包含敏感词,将敏感词替换为*号。

敏感词库

当前版本只是为了验证基础功能,敏感词库使用开源词库,如下所示,可以自行添加更多敏感词,放入工程的resource/wordfiles文件夹下面。

使用说明

当前版本没有做打包等工作,如需体验,可以通过git下载源码,并用IDE打开后,编译运行,然后在浏览器上输入如下地址,通过网页进行功能体验。

http://localhost:8080/swagger-ui.html#

该工程使用springboot搭建,并集成了swagger工具,可以通过网页端调用RESTApi

后续功能规划

  1. 敏感词管理功能:可以增删改查敏感词,敏感词分类管理(需要评估是否需要)
  2. 敏感词动态更新:通过定时任务动态更新敏感词,如从数据库中实时同步等
  3. 敏感词其他功能:如发现、提取、标记和判断
  4. 敏感词特殊处理:增加对繁体字、拼音、大小写、字符填充等特殊情况处理
  5. 敏感词过滤策略:不同处理策略,比如替换、删除等

云服务商方案

Empty file

About

针对敏感词过滤的工具,可以对包含敏感词的字符串进行处理,如色情、政治、暴力、人名等特殊字符,防止发表一些不和谐的词条给业务运营带来风险。 expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Java
1
https://gitee.com/graysonzhang/wordsfilter.git
git@gitee.com:graysonzhang/wordsfilter.git
graysonzhang
wordsfilter
wordsfilter
main

Search