php DFA算法 敏感词代码

2021-04-11 18:30:36


参考地址 herepy / dfa-filter

一个基于DFA算法的敏感词过滤插件

功能特性

  • 例用单利模式,保持整个项目实例一致

  • 导入敏感词文本采用yield生成器降低内存

  • 支持数组和文件导入两种方式添加敏感词,自定义文件导入时的敏感词分割符

  • 支持添加干扰因子来增强敏感词的识别能力

  • 自定义符号标记敏感词

  • 内置server,适用于api方式调用

  • 匹配模式模式分为最大最小两种,默认最小匹配模式

  • 检测词语是否是敏感词

  • 检测文本是否包含敏感词

  • 过滤文本中的敏感词

  • 单元测试覆盖率高

使用条件

PHP >= 5.5.0

安装说明

git方式安装:
    git clone https://github.com/herepy/dfa-filter.git     cd dfa-filter && composer install
composer方式安装
    composer require pengyu/dfa-filter
引入项目
    use Pengyu\DfaFilter\Filter;     require_once "vendor/autoload.php";     $filer=Filter::build();

如何使用:

初始化实例并设置敏感词库
$filter=Filter::build(); $filter->addSensitives(["测试","良好","通过"]); $filter->importSensitiveFile("words.txt");
添加干扰因子
$filter->addDisturbance("@"); $filter->addDisturbance(["?","%"]);
检查是否是独立的敏感词
$filter->isKey("测试呀"); $filter->isKey("测试"); $filter->isKey("@测?试");
检查是否包含敏感词
$filter->check("测试呀"); $filter->check("测试通?过了啊,感觉良?好%"); $filter->check("这次通不过了呀");
敏感词替换
$filter->filter("测试了一下,看看能不能@@通%%过了","^",Filter::DFA_MAX_MATCH); $filter->filter("简单的内容测?试,有敏感词"); $filter->filter("有很?多测@@试?的词,能?不能良%好?通??%过呢");
标记敏感词
$filter->mark("这里有一个敏感词通过,看看测@试%会不会过"); $filter->mark("这里有一个敏感词通过,看看测@试%会不会过",["<span>","</span>"],Filter::DFA_MAX_MATCH);
重置敏感词树和干扰因子
$filter->flushSensitives(); $filter->flushDisturbance();
查看当前敏感词树和干扰因子
$filter->getSensitivesTree(); $filter->getDisturbance();
启动内置server
php run.php

调用server api

curl -H "Content-Type: application/json" -X POST -d '{"action": "isKey", "data":{"word":"敏感词"} }'


  • 2020-04-27 11:02:21

    CSS 气泡对话框

    点击上面地址,我们可以看到一个灵活的css气泡,拖动按钮,改变气泡效果。

  • 2020-04-27 16:59:23

    Docker部署nuxtjs

    将一下文件拷贝至服务器目录/app |名称|描述| |-|-| |.nuxt|编译后生成的目录,开发模式和发布模式通用,注意发布前使用npm run build 防止将dev目录发布| |static| 静态资源文件,通过/可直接访问| |package.json|npm 包管理配置文件| |nuxt.config.js|Nuxt.js 默认的配置涵盖了大部分使用情形,可通过 nuxt.config.js 来覆盖默认的配置。| |node_modules|依赖模块|

  • 2020-04-28 10:47:16

    currentColor css 的使用

    以前我们在如何动态设置伪元素的颜色上非过不少心思,看完下面的文章,你就会超级见到那的设置伪元素的颜色了。

  • 2020-04-28 10:48:39

    使用currentColor设置SVG样式

    css自己也又很多变量哦,大家还要多多学习哦。CSS中的变量很有用,因为它们允许我们写更多DRY(不再自我重复,也就是不需要一直写重复内容的代码)代码。它们对于管理和维护大型项目也有非常好用,因为它们包含了大量重复的值。

  • 2020-04-29 20:57:07

    mac卸载avast

    第一种就是卸载。打开主界面,在左上角Avast一栏中选择卸载。卸载完之后要么再装回去,要么去找找别的杀软吧