egg-full-sensitivewords 使用 DFA 算法敏感词检测/替换插件

发布于 2020-12-13 12:34:17 字数 1533 浏览 1617 评论 0

egg 插件,提供敏感词检测,替换功能。使用 DFA 算法,性能优秀。

如果是超大的敏感词库,例如 1W 以上,如果对初始化词库时长敏感,可以使用以下方法查看初始化所消耗的时间

console.time("spend time");
app.fullSensitivewords.addWord("管理员");
console.timeEnd("spend time");

安装

$ npm i egg-full-sensitivewords --save

使用

// config/plugin.js
exports.fullSensitivewords = {
  enable: true,
  package: "egg-full-sensitivewords",
};

示例

可以通过 app.fullSensitivewords 来调用

测试示例见 test/test-dfa.test.js

所有接口的示例如下:

// 初始化敏感词库,建议在启动的时候执行
app.fullSensitivewords.addWords(["天安门", "毛主席", "周总理"]);
app.fullSensitivewords.addWord("管理员");

// 判断是否包含敏感词,返回值 true: 包含; false: 不包含
app.fullSensitivewords.containsDfa("我爱北京天安门"); // => true
app.fullSensitivewords.containsDfa("主席毛泽东同志"); // => false

// 获取含有的敏感词内容,返回值 字符串数组
app.fullSensitivewords.wordsDfa("我爱毛主席和周总理"); // => ['毛主席', '周总理']

// 替换敏感词,当once=true时,对于每一个出现的敏感词,只替换一次。默认 once = false
app.fullSensitivewords.replaceDfa("我是管理员", "*", true); // => 我是*
// 替换敏感词, 当once=false时,对于每一个出现的敏感词,按照其长度替换。默认 once = false
app.fullSensitivewords.replaceDfa("我是管理员", "*", false); // => 我是***

github 地址:https://github.com/alex-my/egg-full-sensitivewords

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文