PS:原创文章,如需转载,请注明出处,谢谢!
本文地址:http://flyer0126.iteye.com/blog/1931212
早就想研究下敏感词过滤问题,今天有些时间,正好实践一下。
1. 安装:libdatrie (http://linux.thai.net/~thep/datrie/datrie.html#Download)
tar zxf libdatrie-0.2.4.tar.gz cd libdatrie-0.2.4 ./configure --prefix=/usr/local make make install
2. 安装 trie_filter 扩展 (https://code.google.com/p/as3chat/downloads/detail?name=trie_filter-2011-03-21.tar.gz)
tar zxf trie_filter-2011.03.21.tar.gz cd trie_filter-2011.03.21 phpize (#/usr/local/php/bin/phpize ) ./configure --with-php-config=/usr/local/php/bin/php-config make make install
3. 修改 php.ini 文件,添加 trie_filter 扩展:extension=trie_filter.so,重启PHP。
查看phpinfo发现trie_filter 扩展可用,如下图所示:
4. 生成敏感词词典 (dpp 在 trie_filter-1.0.0 里面)
将需要检测的敏感词写入一文本文件(如:mgc.txt),每行一个敏感词,然后使用dpp处理文本文件生成词典。
规则:./dpp txt_file_path dict_file_path
示例:./dpp ~/mgc.txt mgc.dic
5. 应用
<?php /** * trie_filter 敏感词过滤示例 * * @author flyer0126 * @since 2013/08/26 **/ // 载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL $file = trie_filter_load('/usr/local/src/trie_filter/mgc.dic'); var_dump($file); $str1 = '今天利用trie_filter做敏感词过滤示例'; $str2 = '今天利用trie_filter做过滤示例'; // 检测文本中是否含有词典中定义的敏感词(假设敏感词设定为:‘敏感词’) $res1 = trie_filter_search($file, $str1); $res2 = trie_filter_search($file, $str2); echo $res1 ? '存在敏感词' : '不存在敏感词'; echo "<br/>"; echo $res2 ? '存在敏感词' : '不存在敏感词'; /** resource(1) of type (Trie tree filter) 存在敏感词 不存在敏感词 **/
对应 libdatrie-0.2.4.tar.gz 及 trie_filter-2011-03-21.tar.gz 已添加至附件中,有兴趣的可以拿走~
相关推荐
使用php扩展trie_filter,利用词库,过滤敏感词 使用php扩展trie_filter,利用词库,过滤敏感词 使用php扩展trie_filter,利用词库,过滤敏感词
php扩展:trie_filter 过滤敏感词。1.生成敏感词文件,2.加载使用敏感词库,3.查找敏感词。可以循环查找替换,最后输出替换后的文本
double_array Trie 敏感词过滤系统 算法 敏感词过滤 trie double_array Trie
PHP关键词过滤扩展trie_filter, 修复原版返回length错误。用法可以参考原版说明。
Double Array Trie 的实现
基于单模式串和 Trie 树实现的敏感词过滤我们前面几节讲了好几种字符串匹配算法,有 BF 算法、RK 算法、BM 算法、KMP 算法,前面四种算法都是单模式串
内含多种经典数据结构的实现和注释,其中包括二叉树,哈夫曼树,键树,Trie树,有向图,无向图的实现以及各种排序算法。
资源分类:Python库 所属语言:Python 资源全名:hat_trie_python-0.6.0-cp36-cp36m-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
实现一个Trie
介绍trie数组的算法实现,国外大牛写的,很好
对双数纽Trie 树(Double-Array Trie)分词算法进行了优化:在采用Trie 树构造 双数纽Trie 树的过程中,优先处理分支节点多的结点,以减少冲突;构造一个空状态序列; 将冲突的结点放入Hash表中,不需要重新分配...
hash trie树 字典树,完整的sdk开发包 具有说明文档
...关于string的小结 kmp extend_kmp ac+trie 后缀数组
本类库的敏感词替换算法,效率比str_replace高4倍(附6仟个敏感词),这个类库是没有学习过Trie树的时候写的,之后我接触了AC算法,我的算法和AC是类似的结构和逻辑,都是利用树,空间换时间,对搜索/替换海量数据...
}本类库的敏感词替换算法,效率比str_replace高4倍(附6仟个敏感词),这个类库是没有学习过Trie树的时候写的,之后我接触了AC算法,我的算法和AC是类似的结构和逻辑,都是利用树,空间换时间,对搜索/替换海量...
Java敏感词过滤源码。内附三个文件,敏感词(仅测试),两个类文件(用于功能实现)
后缀tire树(tire图),用于多字符串匹配。
基于Double-Array Trie树的垃圾邮件过滤器的php扩展,它可以检测短信中是否存在...过滤关键词扩展,用于检查一段文本中是否出现敏感词,基于Double-Array Trie树实现。 更多详情、使用方法,请下载后阅读README.md文件
< artifactId>scala-burst-trie_${scala.binary.version} < version>0.2 注意:此工件针对多个版本的 Scala 进行交叉编译,并遵循最新的 Scala 版本命名约定。 入门 def indexContent ( getKey : T => String ,...