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

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

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

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

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

    不管是电商、社交还是内容平台,一套高效、稳定、可扩展的敏感词过滤模块,都是后端工程师必须掌握的实用技能。 同时这也是面试高频考点:敏感词过滤为什么不用暴力匹配? 敏感词库从 DB/Redis 加载 支持白名单豁免 三、面试必问:为什么敏感词过滤不用暴力匹配? 什么是暴力匹配 暴力匹配就是: 遍历所有敏感词 对每一个敏感词,遍历全文做 String.contains() / indexOf 命中即判定违规 伪代码类似: for (String word : sensitiveList 比如敏感词:赌博、赌球、赌钱暴力匹配会重复匹配前缀“赌”三次。 暴力匹配在 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} ]
    ". 它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测,所以效率比方案一高不少。 假设我们有以下5个敏感词需要检测:傻逼、傻子、傻大个、坏蛋、坏人。

    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一下全部存储还是每个敏感词都分开,最后根据娇艳的规则方式将其存储为一个或一段敏感词存储在一行。 由于之前也没有接触过,最笨的办法也就是通过For循环equals对比,这样肯定不行,面向搜索编程,chrome搞起来: https://juejin.im/post/5b6ef984e51d45667f3878ef

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

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

    端IM的聊天消息全文检索技术实践》《IM全文检索技术(四):微信iOS端的最新全文检索技术优化实践》《IM全文检索技术(五):vivo敏感词匹配系统的技术实践》(* 本文)3、敏感词匹配算法选型敏感词匹配功能依托于模式匹配算法 4、vivo的谛听系统谛听系统基于AC自动机算法构建了一套敏感词匹配服务,将敏感词作为模式串,文本内容作为目标串,可以实现常用的中、英文敏感词匹配。 5、技术实践1:组合敏感词常规的敏感词匹配算法通常匹配单个词或者短句,但某些词单独出现时并不违规,只有在与几个特定的词同时出现时,才能判定为违规。组合敏感词的匹配算法依然基于AC自动机算法。 ,匹配文本;4)遍历匹配结果,将匹配的结果根据映射关系映射到相应的组合上;5)记录组合的命中情况,得到最终匹配结果。 在步骤4中,算法将匹配的词映射到组合中,并标记对应的词命中。步骤5会根据各组合中单词的命中情况,来判断该组合是否命中,由于在步骤4中组合敏感词均被标记为命中,因此可判断该组合命中。

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

    python过滤敏感词记录

    简述: 关于敏感词过滤可以看成是一种文本反垃圾算法,例如 题目:敏感词文本文件 filtered_words.txt,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」, ,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”] 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中 实战案例: 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十亿个标题,存在一个文件中,一行一个标题。有5万个敏感词,存在另一个文件。 写一个程序过滤掉所有标题中的所有敏感词,保存到另一个文件中。 1、DFA过滤敏感词算法 在实现文字过滤的算法中,DFA是比较好的实现算法。 算法核心是建立了以敏感词为基础的许多敏感词树。

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

    如何优雅地过滤敏感词

    它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测,所以效率比方案一高不少。 假设我们有以下5个敏感词需要检测:傻逼、傻子、傻大个、坏蛋、坏人。 那么我们可以先把敏感词中有相同前缀的词组合成一个树形结构,不同前缀的词分属不同树形分支,以上述5个敏感词为例,可以初始化成如下2棵树: ? ? 把敏感词组成成树形结构有什么好处呢? 接下来是敏感词的扫描: public enum MatchType { MIN_MATCH("最小匹配规则"),MAX_MATCH("最大匹配规则"); String desc; ,有时候则需要知道待检测文本中到底包含多少个敏感词,前者对应的是最小匹配原则,后者则是最大匹配原则。 getSensitiveWordLength方法的作用是根据给定的待检测文本及起始下标,还有匹配规则,计算出待检测文本中的敏感词长度,如果不存在,则返回0,存在则返回匹配到的敏感词长度。

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

    JS-过滤敏感词【RegExp】

    oBtn = document.getElementById('btn'); 4 var oTxt1 = document.getElementById("txt1"); 5

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

    .NET 6 实现敏感词过滤

    一、什么是敏感词过滤? 敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇。它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流通。 通常,可以使用两种方法来过滤敏感词: 黑名单过滤:即定义一个黑名单,将所有敏感词择记录在其中,然后对输入的文本进行对比,如果发现有敏感词,就将其过滤掉。 ToolGood.Words是一款高性能非法词(敏感词)检测组件,附带繁体简体互换,支持全角半角互换,获取拼音首字母,获取拼音字母,拼音模糊搜索等功能。 resultStr == "1") { resCode = 240; resultStr = ""; resMsg = "敏感内容匹配时发生错误 resultStr = resultStr }); } catch (Exception ex) { return Json(new { code = 220, msg = "敏感内容匹配时发生错误

    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:如何屏蔽敏感词?

    二、敏感词汇获取 既然是要屏蔽敏感词汇,肯定需要先确定哪些词算是敏感词,再以这些词汇作为标准作为屏蔽。 ? ③切割字符串 字符串为一行的内容:是以“|”为分隔,前面为敏感词,后面为屏蔽等级。 所以使用split()方法来将其分隔成一个数组,数组里0索引位为敏感词,1索引位为屏蔽等级。 split[0]表示的也就是敏感词内容,将其存入对应集合即可。 三、过滤代码编写 上述是对过滤器中init()方法里的代码编写,用于获取敏感词一共有哪些。 ②遍历敏感词汇并与用户数据匹配 敏感词汇一共有三个级别,可以分别对应不同的处理方式,比如永久封号、封号7天,禁言…… 现在毕竟学习阶段,只遍历等级为1的集合,正则匹配涉及到一个工具类Pattern: compile (str):以遍历的敏感词为标准。

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

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

    敏感词过滤说白了就是简单的字符串替换,Java本身已经提供了相关函数,但是一旦遇到长文本,或者敏感词数量庞大,效率下降就会非常明显。本文将介绍利用多叉树进行敏感词存储和过滤的方法。 那么多叉树是如何存储敏感词的呢?首先将敏感词分解为一个一个的字符,例如敏感词”CSDN”,第一个字符是C,则在Head下创建子树”C”(如果已经存在则跳过这一步)。 这种算法会出现一个小意外,如果一个敏感词恰好是另一个敏感词的前缀,就会导致较短的敏感词被长的敏感词覆盖,这种情况可以通过添加结束标记来区分。 14596个敏感词(可能有个别重复),在测试代码里生成了一个长度为1000的字符串,总共包含100个相同敏感词,敏感词中间有逗号隔开 重复执行过滤10000次,并打印结果和时间,结果如下 可以看到程序成功地过滤了敏感词 源文件+敏感词列表 在寻找敏感词列表时发现很多人的分享都被取消了,为了防止敏感词列表被检测出敏感词,使用了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.6K50发布于 2018-04-16
  • 来自专栏Tencent Serverless 官方专栏

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

    随着各种社交论坛的日益火爆,敏感词过滤逐渐成为了非常重要的功能。那么在 Serverless 架构下,利用 Python 语言,敏感词过滤又有那些新的实现呢? 我们能否用最简单的方法实现一个敏感词过滤的 API 呢? DFA过滤敏感词 这种方法相对来说效率会更高一些。例如,我们认为坏人,坏孩子,坏蛋是敏感词,则他们的树关系可以表达: ? 敏感词过滤方法小结 可以看到这个所有算法中,在上述的基本算法中DFA过滤敏感词性能最高,但是实际上,对于后两者算法,并没有谁一定更好,可能某些时候,AC自动机过滤敏感词算法会得到更高的性能,所以在生产生活中 if __name__ == "__main__": test() 完成之后,我们就可以测试运行一下,例如我的字典是: 呵呵 测试 执行之后结果: {'uuid': '9961ae2a-5cfc

    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行为、色情行为政治:领导人 msg": "检测成功","return_str": "他在传播**内容","word_list": [{"keyword": "艳情","category": "色情","position": "4-5"

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

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

    一、什么是敏感词过滤? 敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇。它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流通。 通常,可以使用两种方法来过滤敏感词: 黑名单过滤:即定义一个黑名单,将所有敏感词择记录在其中,然后对输入的文本进行对比,如果发现有敏感词,就将其过滤掉。 ToolGood.Words是一款高性能非法词(敏感词)检测组件,附带繁体简体互换,支持全角半角互换,获取拼音首字母,获取拼音字母,拼音模糊搜索等功能。 resultStr == "1") { resCode = 240; resultStr = ""; resMsg = "敏感内容匹配时发生错误 resultStr = resultStr }); } catch (Exception ex) { return Json(new { code = 220, msg = "敏感内容匹配时发生错误

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