首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Lvshen的技术小屋

    使用GBDT算法实现敏感词匹配

    : DFA确定有限自动机匹配屏蔽,我们将敏感词构造成DFA形式,如敏感词集合 。 需要将敏感词集合构建成Trie树,如AC自动机多模字符串匹配算法。匹配句子时,遍历Trie树,从敏感词集合中找出可匹配的敏感词。 AC自动机多模式 上述敏感词屏蔽算法只能精确屏蔽,如果新增敏感词规则,就需要人工维护敏感词集合,这种迭代更新完全依赖人力,无法自动挖掘敏感词的匹配规则。 同时面对复杂的语言环境,当前匹配算法会丧失匹配精度,出现误伤情况。例如:“中华”一词多义,如果指香烟,可能算烟草违规的敏感词,但如果指牙膏,那就不算敏感词了。 (是和否我们约定用1和0表示)的集合为:1,3 ,非敏感词的集合为:2,4,5。

    94410编辑于 2024-01-15
  • 来自专栏Java面试教程

    面试常问:为什么敏感词过滤不用暴力匹配?

    不管是电商、社交还是内容平台,一套高效、稳定、可扩展的敏感词过滤模块,都是后端工程师必须掌握的实用技能。 同时这也是面试高频考点:敏感词过滤为什么不用暴力匹配? 敏感词库从 DB/Redis 加载 支持白名单豁免 三、面试必问:为什么敏感词过滤不用暴力匹配? (1)时间复杂度极高,性能爆炸 暴力匹配:O(N * M) N:文本长度 M:敏感词数量 敏感词库通常几千~几万条 文本长度几十~几百字 高并发场景下,CPU 会被直接打满 (2)大量重复比较,极其浪费 比如敏感词:赌博、赌球、赌钱暴力匹配会重复匹配前缀“赌”三次。 暴力匹配在 QPS 上涨后,接口耗时会从几毫秒涨到几百毫秒,直接导致服务雪崩。 (5)扩展能力差 新增敏感词、删除敏感词、热更新时,暴力匹配没有缓存优势,每次都要全量遍历。

    48710编辑于 2026-04-13
  • 来自专栏PHP专享栏

    PHP过滤敏感词

    PHP实现的敏感词过滤方法,有好的编码和好的实现方法,可以发出来一起交流一下。以下是一份过滤敏感词的编码 ? 一.敏感词过滤方案一 /** * @todo 敏感词过滤,返回结果 * @param array $list 定义敏感词一维数组 * @param string $string 要过滤的内容 string, $replaceArray); //结果替换 } $log = "原句为 [ {$string} ]
    "; if($count==0){ $log .= "暂未匹配到敏感词 ; }else{ $log .= "匹配到 [ {$count} ]个敏感词:[ {$sensitiveWord} ]
    ". 那么我们可以先把敏感词中有相同前缀的词组合成一个树形结构,不同前缀的词分属不同树形分支,在Java中,我们可以用HashMap来存储上述的树形结构,还是以上述敏感词为例,我们把每个敏感词字符串拆散成字符

    5.3K30发布于 2019-08-02
  • PHP——敏感词过滤

    前言 如果可以用第三方的话,那么你是幸运的,因为现在这种敏感词过滤,敏感图片,敏感语音过滤的第三方服务还是挺多的 敏感词过滤 核心代码 利用PHP内置的三个函数 array_combine() | array_fill ,count($item),'*')); $content = strtr($content,$replace); array_combine  array_fill  strtr 完整代码 //过滤敏感词所有匹配的敏感词用一个

    1K10编辑于 2024-08-16
  • 来自专栏用户4352451的专栏

    java敏感词校验

    最近有一个需求就是需要给一串文字做敏感词校验 需求 根据上传的一串字符里通过校验可以返回里面的敏感词 不同的用户有一个敏感词库 用户可以随时修改需要校验的敏感词库(不会经常修改) 解决方案 存储敏感词库 由于我们用的数据库是MYSQL 我们就将这个敏感词存在数据库,那就是怎么存text一下全部存储还是每个敏感词都分开,最后根据娇艳的规则方式将其存储为一个或一段敏感词存储在一行。

    3.8K30发布于 2020-08-26
  • 来自专栏即时通讯技术

    IM全文检索技术(五):vivo敏感词匹配系统的技术实践

    3.1 多模式匹配算法对比谛听的敏感词匹配业务有如下特点:1)词库量大,需要维护和加载百万级别的词库(模式串);2)敏感词与业务特性、国家政策相关性强,无法统一约定长度、前缀等特征。 5、技术实践1:组合敏感词常规的敏感词匹配算法通常匹配单个词或者短句,但某些词单独出现时并不违规,只有在与几个特定的词同时出现时,才能判定为违规。组合敏感词的匹配算法依然基于AC自动机算法。 为此我们需要给AC自动机添加一些前置和后置的处理步骤,具体步骤如下:1)将组合敏感词分割为单个敏感词,并记录敏感词与组合的映射关系;2)将分割后的组合敏感词添加到AC自动机的Tire树中;3)运行AC自动机 6、技术实践2:拼音敏感词6.1 概述在评论、弹幕等创作自由度很高的场景中,某些用户为了规避机器审核,会使用一些多音字、同音字来表达敏感词汇,例如用“啋票”来代表“彩票”等。 未来我们将结合业务使用场景继续优化敏感词匹配的能力,提升精准度和命中率:1)一方面我们可以采用某种方式实现“非”的逻辑,这样可以在配置敏感词时排除bad case,提升命中的精准度;2)另一方面,我们可以实现敏感词的模糊命中

    13910编辑于 2026-09-23
  • 来自专栏深度学习之tensorflow实战篇

    python过滤敏感词记录

    简述: 关于敏感词过滤可以看成是一种文本反垃圾算法,例如 题目:敏感词文本文件 filtered_words.txt,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」, 实战案例: 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十亿个标题,存在一个文件中,一行一个标题。有5万个敏感词,存在另一个文件。 写一个程序过滤掉所有标题中的所有敏感词,保存到另一个文件中。 1、DFA过滤敏感词算法 在实现文字过滤的算法中,DFA是比较好的实现算法。 算法核心是建立了以敏感词为基础的许多敏感词树。 2、AC自动机过滤敏感词算法 AC自动机:一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。

    3.3K20发布于 2019-02-26
  • 来自专栏码农沉思录

    如何优雅地过滤敏感词

    那么我们可以先把敏感词中有相同前缀的词组合成一个树形结构,不同前缀的词分属不同树形分支,以上述5个敏感词为例,可以初始化成如下2棵树: ? ? 把敏感词组成成树形结构有什么好处呢? 同理,“坏人”和“坏蛋”这2个敏感词也是按这样的方式存储起来,这里就不罗列出来了。 用HashMap存储有什么好处呢? 接下来是敏感词的扫描: public enum MatchType { MIN_MATCH("最小匹配规则"),MAX_MATCH("最大匹配规则"); String desc; ,有时候则需要知道待检测文本中到底包含多少个敏感词,前者对应的是最小匹配原则,后者则是最大匹配原则。 getSensitiveWordLength方法的作用是根据给定的待检测文本及起始下标,还有匹配规则,计算出待检测文本中的敏感词长度,如果不存在,则返回0,存在则返回匹配到的敏感词长度。

    5K20发布于 2018-08-17
  • 来自专栏前端说吧

    JS-过滤敏感词【RegExp】

    2:replace();这里的思路是,让第二个文本框的value等于第一个文本框中内容被修改后的内容,这个内容是通过replace方法进行替换过滤的,而替换方法的括号内部,需要两个参数,第一个是要被替换掉的文字 </textarea> 2 <input type="button" name="" id="btn" value="过滤" /> 3 <textarea name="" rows="30" cols= "30" id="txt<em>2</em>"></textarea> script 1 <script type="text/javascript"> 2 window.onload = document.getElementById("txt2"); 6 var re = /[我|车|一]+/g; 7 oBtn.onclick = function(){ 8 oTxt2.value = oTxt1.value.replace(re,"【@!

    7.3K60发布于 2018-05-17
  • 来自专栏DotNet NB && CloudNative

    .NET 6 实现敏感词过滤

    一、什么是敏感词过滤? 敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇。它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流通。 通常,可以使用两种方法来过滤敏感词: 黑名单过滤:即定义一个黑名单,将所有敏感词择记录在其中,然后对输入的文本进行对比,如果发现有敏感词,就将其过滤掉。 ;默认替换为‘*’</param> /// <returns>返回状态码;为空则表示传入的内容为空;“0”:设置违禁词时发生错误;“1”:敏感内容替换时发生错误;“2”:需要替换的文本内容为空 ;“1”:敏感内容查询时发生错误;“2”:需要替换的文本内容为空;“3”:原内容中包含敏感/违禁词汇;“4”:原内容中不包含敏感/违禁词汇</returns> public string resultStr == "1") { resCode = 240; resultStr = ""; resMsg = "敏感内容匹配时发生错误

    1.5K40编辑于 2023-08-29
  • 来自专栏码匠的流水账

    敏感词检测算法小结

    序 本文简单介绍下敏感词或者脏词检测算法。 经典AC算法 经典的AC算法由三部分构成,goto表,fail表和output表,共包含四种具体的算法,分别是计算三张查找表的算法以及AC算法本身。 (goto表就是一棵trie树) failure表作用是在goto表中匹配失败后状态跳转的依据,这点与KMP中next表的作用相似。 树的kmp算法,AC算法需要三个函数来进行字符串匹配,而且这三个函数的求解都和一个确定的DFA(有限状态自动机)有关。 普通DFA算法 确定性有穷自动机,用于正则表达式的匹配,最长左子式匹配 使用hashmap public void createKeyWord(String keyWord) { Map :AC算法 Java实现DFA算法对敏感词、广告词过滤功能 敏感词过滤的算法原理之 Aho-Corasick 算法 敏感词过滤的算法原理之DFA算法 AC自动机和Fail树 基于双数组的AC匹配算法学习

    6.6K20发布于 2018-09-17
  • 来自专栏零基础自学Java

    【JavaWeb】94:如何屏蔽敏感词?

    二、敏感词汇获取 既然是要屏蔽敏感词汇,肯定需要先确定哪些词算是敏感词,再以这些词汇作为标准作为屏蔽。 ? 2获取words文件夹里的各个文件里的内容 代码接上图,增强for循环遍历上述过滤后的words文件夹: ? ①转换流与缓冲流 使用转换流在于其可以设置编码字符集:utf-8。 split[0]表示的也就是敏感词内容,将其存入对应集合即可。 三、过滤代码编写 上述是对过滤器中init()方法里的代码编写,用于获取敏感词一共有哪些。 ②遍历敏感词汇并与用户数据匹配 敏感词汇一共有三个级别,可以分别对应不同的处理方式,比如永久封号、封号7天,禁言…… 现在毕竟学习阶段,只遍历等级为1的集合,正则匹配涉及到一个工具类Pattern: compile (str):以遍历的敏感词为标准。

    2.3K20发布于 2020-07-30
  • 来自专栏DearXuan的博客文章

    DFA算法-简易Java敏感词过滤(含源文件和上万敏感词列表)

    敏感词过滤说白了就是简单的字符串替换,Java本身已经提供了相关函数,但是一旦遇到长文本,或者敏感词数量庞大,效率下降就会非常明显。本文将介绍利用多叉树进行敏感词存储和过滤的方法。 那么多叉树是如何存储敏感词的呢?首先将敏感词分解为一个一个的字符,例如敏感词”CSDN”,第一个字符是C,则在Head下创建子树”C”(如果已经存在则跳过这一步)。 这种算法会出现一个小意外,如果一个敏感词恰好是另一个敏感词的前缀,就会导致较短的敏感词被长的敏感词覆盖,这种情况可以通过添加结束标记来区分。 + "毫秒"); } } 测试使用的敏感词库总共包含14596个敏感词(可能有个别重复),在测试代码里生成了一个长度为1000的字符串,总共包含100个相同敏感词,敏感词中间有逗号隔开 重复执行过滤 源文件+敏感词列表 在寻找敏感词列表时发现很多人的分享都被取消了,为了防止敏感词列表被检测出敏感词,使用了zip格式并加密。敏感词库存在部分重复,不过不影响使用。

    9.2K33编辑于 2022-01-19
  • 来自专栏私人订制

    emlog教程:过滤非法敏感词的方法

    因为网站内容或者评论大都不是原创的,这就有必要防范非法的敏感字。首先在模板页module.php最后面加入<?php $badstring="**|**|**";? >,其中的**代表非法敏感词    然后在按下面的输出方法即可,以模板板子为例 列表页(log_list.php):找到<?php echo $value['log_description']; ? > 这样就可以把网站的非法敏感词过滤掉

    75520编辑于 2023-05-10
  • 来自专栏微信小程序开发

    小程序中敏感词过滤——前端实现

    连胜老师介绍一种前端处理敏感词的方法:替换相关敏感词为** 把一些基本的敏感词放在前端校验,一些疑似或者有语义的词再去用官方API检测。 hasSensitiveWords(str) { if(str == '' || str == undefined) return false; var words = '台独,藏独'; // 常用敏感词 : var titleStr = util.hasSensitiveWords(this.data.title); if (titleStr) { util.showModelTips('标题包含敏感词 titleStr), titleDefault: util.replaceAll(this.data.title, titleStr), }); return; } 当用户输入了相关敏感词后 ,前端可以做个简单处理,把常用敏感词替换成**。

    9.4K41发布于 2018-06-06
  • 来自专栏CBeann的博客

    风控系统敏感词校验架构设计

    这里想到了自己经常联调的风控同学违禁词识别场景。和某明星塌房需要拦截关键词一毛一样。在联调之余有幸请教了风控的几位同学,再此学习了一下风控系统中敏感词校验的设计方案。 场景:张三塌房,需要对增量的文案流量过滤张三关键词。 大量的关键词内存存储方案。场景:业务需求增多,关键词自然增多,很常见。 快速匹配违禁词。 场景:用户多,词多,自然需求 2、实现思路 2.1 HelloWord级别的敏感词校验 我们以下面的DEMO为例,从0开始**,一步一步的质疑这个方案,从而实现局部最优**。 看下面的快速匹配违禁词 2.3 快速匹配违禁词 Trie 树(前缀树)可以用于高效的解决关键词匹配问题。上面的切片规则可以根据开始的第一个字进行切分。 详情可参考Trie 树原理及其敏感词过滤的实现 3、总结 整个链路可以不实现,但是方案要完整;系统可以不用,但是要做。两句都对。

    1.7K10编辑于 2023-12-25
  • 来自专栏Python小屋

    Python正则表达式过滤敏感词

    问题描述:很多网站会对用户发帖内容进行一定的检查,并自动把敏感词修改为特定的字符。 技术要点: 1)Python正则表达式模块re的sub()函数; 2)在正则表达式语法中,竖线“|”表示二选一或多选一。 参考代码: ?

    1.6K50发布于 2018-04-16
  • 来自专栏Tencent Serverless 官方专栏

    Serverless 实战:3 分钟实现文本敏感词过滤

    ***") return text keywords = ("关键词1", "关键词2", "关键词3") content = "这是一个关键词替换的例子,这里涉及到了关键词1还有关键词2,最后还会有关键词 + str(i) for i in range(0,10000)] content = "这是一个关键词替换的例子,这里涉及到了关键词1还有关键词2,最后还会有关键词3。" + str(i) for i in range(0,10000)] content = "这是一个关键词替换的例子,这里涉及到了关键词1还有关键词2,最后还会有关键词3。" /sensitive_words") content = "这是一个关键词替换的例子,这里涉及到了关键词1还有关键词2,最后还会有关键词3。" 2,最后还会有关键词3。"

    1.9K32发布于 2020-05-14
  • 来自专栏互联网产品

    免费敏感词检测API - 私有化部署

    敏感词检测API - 私有化部署提供文本识别、智能鉴黄、敏感词过滤、涉政检测等服务,可部署至「本地服务器」或「专有云服务器」,保障数据私密性,提供一键启动软件部署包私有化。 ,即可一键启动私有化的"敏感词检测 API服务"自动云更新最新词库支持http json方式或grpc方式查询单服务参考查询效率70000次/分钟,同时支持并行服务按需自定义添加文本白名单/黑名单服务运行内存 65M左右,非常轻便应用场景用户昵称、聊天消息、直播弹幕、评论留言、用户简介、商品详情、创作文章等内容合规检测过滤演示地址坚果墙在线敏感词检测服务下载地址https://github.com/bosnzt /wordscheckhttps://gitee.com/bosnzt/wordscheck快速接入文档文档地址敏感词分类色情:色情传播、x用品、av女优、色情描写、x器官、x行为、色情行为政治:领导人 /wordscheck2.curl测试下服务[root@localhost ~]# curl -H "Accept: application/json" -H "Content-type: application

    13K01编辑于 2023-02-09
  • 来自专栏DotNet NB && CloudNative

    .NET 6实现敏感词过滤的好组件

    一、什么是敏感词过滤? 敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇。它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流通。 通常,可以使用两种方法来过滤敏感词: 黑名单过滤:即定义一个黑名单,将所有敏感词择记录在其中,然后对输入的文本进行对比,如果发现有敏感词,就将其过滤掉。 ;默认替换为‘*’</param> /// <returns>返回状态码;为空则表示传入的内容为空;“0”:设置违禁词时发生错误;“1”:敏感内容替换时发生错误;“2”:需要替换的文本内容为空 ;“1”:敏感内容查询时发生错误;“2”:需要替换的文本内容为空;“3”:原内容中包含敏感/违禁词汇;“4”:原内容中不包含敏感/违禁词汇</returns> public string resultStr == "1") { resCode = 240; resultStr = ""; resMsg = "敏感内容匹配时发生错误

    1.3K41编辑于 2023-08-29
领券