敏感词过滤是我朝程序员必须具备的一种特殊技能,随着敏感词越来越多,是时候写个扩展来快速的进行敏感词检测了
使用说明
1. 安装 libdatrie
tar zxf libdatrie-0.2.4.tar.gz
cd libdatrie-0.2.4
./configure --prefix=/usr/local
make
make install
2. 安装 trie_filter 扩展
tar zxf trie_filter-1.0.0.tar.gz
cd trie_filter-1.0.0
phpize
./configure --with-php-config=/path/to/php-config
make
make install
记得修改你的 php.ini 文件,启用 trie_filter 扩展。extension=trie_filter.so
3. 生成词典预处理工具(dpp.c 在 trie_filter-1.0.0 里面)
gcc -O dpp dpp.c -ldatrie
4. 生成敏感词词典
首先你需要把需要检测的敏感词写入到一个文本文件中,每行一个敏感词,然后使用上一步生成的 dpp 程序处理这个文本文件来生成词典
./dpp txt_file_path dict_file_path
5. 使用扩展
扩展接口很简单,只有两个函数:
1) trie_filter_load($path_to_dict)
用来载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL
2) trie_filter_search($trie, $text)
用来检测一段文本中是否含有词典中定义的敏感词,$trie 是上一个函数返回的 Trie Filter 句柄,$text 是欲检测的文本
如果检测到敏感词则返回一个数组,数组第一个元素指出检测到的敏感词在 $text 中的偏移量,第二个元素指出该敏感词的长度(bytes)
如果没有检测到敏感词,则返回一个空数组
扩展的速度怎么样
一个字,很快!扩展的检测算法基于 Double Array Trie Tree,查找单一关键字的时间复杂度为 O(1),查找整段文本的时间复杂度为 O(n),n 为文本的长度,而且检测的速度不会因为敏感词的增加而降低。
注意事项
1. 扩展把词典和要检测的文本都当做平凡的字节流处理,因此可以无视字符集的问题。但需要注意的是词典的编码需要和检测文本的编码一致,例如词典为 UTF-8 编码而你需要检测的文本为 GBK 编码,这就要求你在调用 trie_filter_search() 函数之前通过 iconv 或者 mb_xxx 函数转换一下编码
2. 目前只在 linux + php-5.2 环境下测试通过,不支持 windows,也没有支持的计划
分享到:
相关推荐
PHP关键词过滤扩展trie_filter, 修复原版返回length错误。用法可以参考原版说明。
直接上传网站空间后调用:http://你的域名/str.php?str=检测的语句内容,返回结果为json,非常简单的一个demo,速度很快,含超大的一个敏感词库,3个文件实现敏感词检测api
本代码实现了敏感词检测。findcode是一个用来将敏感词与句子中排序后的单词先按字母顺序排序然后进行逐一比较的函数;如果两者相同,则return1;用数组下标0-25分别表示a-z字母,对应的每个下标对应的数组元素的值...
敏感词检测程序,离线版,不需联网,可用于检测文本是否包含了敏感词
基于Hadoop的邮件敏感词检测与告警技术研究,结合某公司信息安全审计系统实际项目,研究了邮件敏感词 检测与告警的相关技术。本文从研究背景、研究意义和研究现状入手, 分析了敏感词检测与告警的相关技术及其现状,...
php敏感词过滤案例,很简单很实用,现在网站好多关键词都是国家禁止的词,收集网络许多资料都不太好,为天下网自己写了一个,
短信敏感词检测工具,很实用的,大家看看,有需要可以下载啦
从其他地方下载的,分享给大家,里面有四种方式,分别为不同的算法
php扩展:trie_filter 过滤敏感词。1.生成敏感词文件,2.加载使用敏感词库,3.查找敏感词。可以循环查找替换,最后输出替换后的文本
PHP扩展,专门用于敏感词检测。速度快,能返回敏感词的偏移量和内存空间。只支持linux系统,PHP5.2测试通过。但是需要注意字符集。详细使用过程可参考:...
Python基于Scrapy的页面敏感词检测工具源码.zip
java敏感词检索工具,用于社区等提问信息的过滤检索;
敏感词检测 testbadword.html
GO语言实现的dfa敏感词检测
任意选择文本文件 打开文本文件 并检测里面有几个敏感词 输出敏感词的个数
一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。
PHP 过滤敏感词 工具。 过滤敏感词工具 敏感词 过滤 过滤敏感词
介绍一个php实现敏感词过滤类,过滤得到禁词,对禁词分批过滤,分批得到禁词树。
KeyWordFilter-匹配度高,速度稍慢 SensitivewordFilter-匹配度低,速度快 SensitiveWord-匹配度高,速度快 WordFilterUtil-匹配度高,速度稍慢
根据敏感词库配置,检测一段文字中是否含有关键字(支持中英文),如果有可将其替换为***,支持UTF8 和 GBK两种编码,内含完整源码,2016敏感词库和测试用例.