核心代码

import * as fs from 'fs';
import * as path from 'path';
import * as readline from 'readline';export default class BadWords {private static _instance: BadWords;private data: Array<string> = [];constructor () {const files = fs.readdirSync(path.resolve(__dirname, './libs/'));files.forEach(file => {if (path.extname(file) === '.txt') {const rl = readline.createInterface({input: fs.createReadStream(path.resolve(__dirname, './libs/', file))});rl.on('line', line => {if (line) {if (line.substring(line.length - 1) === ',') {line = line.substring(0, line.length - 1);}this.data.push(line);}});}});}public static get instance () {if (!BadWords._instance) {BadWords._instance = new BadWords();}return BadWords._instance;}filter (content: string) {const tempImgs: Array<string> = [];let result = content;// 将图片部分放入临时数组中,以避免待会儿过滤词会匹配到图片内容result = result.replace(/!\[.+\]\(.+\)/g, val => {tempImgs.push(val);return '#IMG#';});// 匹配过滤词并用*替换this.data.forEach(keyword => {if (result.toUpperCase().includes(keyword.toUpperCase())) {const asterisks: Array<'*'> = [];for (let i = 0; i < keyword.length; i++) {asterisks.push('*');}result = result.replace(new RegExp(keyword, 'gi'), asterisks.join(''));}});// 恢复图片if (tempImgs.length) {result = result.replace(/#IMG#/g, () => <string>tempImgs.shift());}return result;}
}

在需要使用的地方引入

import BadWords from '../../common/badWords/index';
const badWords = BadWords.instance;badWords.filter(userName)

详细资源可点击下方链接下载

每个 `txt` 文件代表一个类型的敏感词词库,词库数据来源:

https://github.com/fwwdn/sensitive-stop-words

https://github.com/fighting41love/funNLP/tree/master/data/%E6%95%8F%E6%84%9F%E8%AF%8D%E5%BA%93

node实现敏感词过滤及敏感词库相关推荐

  1. .NET 6 实现敏感词过滤

    一.什么是敏感词过滤? 敏感词过滤是一种处理网络内容的技术,可以检测和过滤出网络中的敏感/违禁词汇.它通过给定的关键字或字符串,判断网络内容是否包含某些敏感信息,从而防止违反法律法规的信息流通. 通常 ...

  2. Java练习 基于数组的敏感词过滤/用户注册合法性判定

    用户注册 在注册时通常要验证用户名和密码是否合法,运用学习过的知识完成如下操作: 用户名长度大于等于6位 密码长度大于等于8位,必须包含英文字母以及数字 以上两个条件同时成立注册才能成功. packa ...

  3. spring boot 使用DFA算法实现敏感词过滤

    spring boot 使用DFA算法实现敏感词过滤 敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的. DFA算法简介 DFA全称为:Deterministi ...

  4. 【C++】实现敏感词过滤算法(含源码)

    敏感词过滤算法(聚合词树查询法) 1.构建词树 2.敏感词判断 3.遍历文本 关于敏感词过滤算法,数不胜数,在参考众多算法后,选取了比较实用的算法,进行总结与改进.大家可以参考一下链接: 敏感词过滤算 ...

  5. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

    文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...

  6. python骂人的程序_Python实现敏感词过滤的4种方法

    在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去 ...

  7. python敏感词过滤代码简单_大型企业都在用,Python实现敏感词过滤

    在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去 ...

  8. dfa算法c语言,DFA跟trie字典树实现敏感词过滤(python和c语言)

    DFA和trie字典树实现敏感词过滤(python和c语言) 现在做的项目都是用python开发,需要用做关键词检查,过滤关键词,之前用c语言做过这样的事情,用字典树,蛮高效的,内存小,检查快. 到了 ...

  9. python敏感词过滤replace_Serverless 实战:3 分钟实现文本敏感词过滤

    敏感词过滤是随着互联网社区一起发展起来的一种阻止网络犯罪和网络暴力的技术手段,通过对可能存在犯罪或网络暴力的关键词进行有针对性的筛查和屏蔽,能够防患于未然,将后果严重的犯罪行为扼杀于萌芽之中. 随着各 ...

  10. python敏感词过滤代码简单代码_Python 实现王者荣耀中的敏感词过滤示例

    Python 实现王者荣耀中的敏感词过滤示例 王者荣耀的火爆就不用说了,但是一局中总会有那么几个挂机的,总能看到有些人在骂人,我们发现,当你输入一些常见的辱骂性词汇时,系统会自动将该词变成" ...

最新文章

  1. 计算机视觉 | YOLO开源项目汇总
  2. 【转】OpenCV里IplImage数据结构极易出错的问题,IplImage和单字节char*的相互转换
  3. 3.8 matlab函数参数与变量的作用域
  4. 对于读取PDF模板表单,中文无序问题
  5. 知识蒸馏在推荐系统中的应用
  6. ultilize什么意思_ultilize是什么意思
  7. 爬虫-在请求头中添加cookie键值对 访问登陆后可见的页面
  8. Android设置Alpha值实现图片渐变效果
  9. php学习去哪,php可以从哪里学习
  10. dojo的TabContainer竖排摆放tab标签
  11. dateformat-参数表
  12. 面向生态合作伙伴的实践分享回顾
  13. 【项目管理】干系人绩效域管理
  14. [Anaconda学习]本地查看代理ip,anaconda挂代理
  15. 教师信息计算机信息培训心得,小学教师信息技术培训心得体会
  16. 让计算机网络与作文教学,“基于计算机和网络环境下的写作教学研究”课题组  2015-2016学年度上学期研究计划...
  17. LeetCode 24.两两交换链表中的节点 C语言
  18. thinkadmin点击跳转页面的切换
  19. sublime text3 python找不到文件路径_sublime text3 系统找不到指定的文件
  20. Unity任意轴向朝向某目标实现LookAt功能

热门文章

  1. MATLAB数学建模教学 | 史上最强的MATLAB学习网站,你需要的这里统统都有!!!
  2. 用c语言在Clion平台编写system(“cls“)清屏函数无效甚至异常解决方法。
  3. java发送邮件带附件
  4. 通俗易懂讲PIC单片机:从一窍不通到入门进步
  5. 基于RV1126平台imx291分析
  6. 前端开源项目周报1213
  7. 囧。。。不知不觉破解了IDMan。。。木有注意最后一步咋破的。。。
  8. python vba 区别_VBA和Python该学哪个?
  9. Windows安装Geopandas教程
  10. python下载股票数据_如何下载股票历史数据?