1 Star 2 Fork 1

graysonzhang / wordsfilter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
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. 敏感词过滤策略:不同处理策略,比如替换、删除等

云服务商方案

空文件

简介

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

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/graysonzhang/wordsfilter.git
git@gitee.com:graysonzhang/wordsfilter.git
graysonzhang
wordsfilter
wordsfilter
main

搜索帮助

53164aa7 5694891 3bd8fe86 5694891