首页 > php教程 > PHP开发 > 正文

利用PHP扩展trie_filter做中文敏感词过滤

黄舟
发布: 2017-03-22 14:29:13
原创
2811人浏览过

1.安装libiconv,这个是libdatrie的依赖项

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 
tar zxvf libiconv-1.14.tar.gz 
cd libiconv-1.14
./configure 
make 
make install
登录后复制

2. 安装: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
登录后复制

编译出现错误 trietool.c:125: undefined reference to `libiconv'

解决办法为:./configure LDFLAGS=-L/usr/local/lib LIBS=-liconv

3. 安装 trie_filter 扩展

立即学习PHP免费学习笔记(深入)”;

由于官方trie_filter扩展对中文支持的不是很好,所以在git上找到了一个在官方扩展上面改写的扩展经过测试没有问题

安装方法如下:

https://github.com/wulijun/php-ext-trie-filter 在这里下载源码包

phpize
./configure --with-php-config=/usr/local/bin/php-config 
make
make install
登录后复制

4. 修改 php.ini 文件,添加 trie_filter 扩展:extension=trie_filter.so,重启PHP。

查看phpinfo发现trie_filter 扩展可用,如下图所示:

476.jpg

5、生成用语检测的词典,由于上面下载的源码包中并没有带生成词典的命令 所以还需要下载官方的源码包

(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    
gcc -o dpp dpp.c -ldatrie // 生成dpp命令用语编译词典 
./dpp words.txt words.dic  //将words.txt 编译成trie_filter使用的词典 words.txt中每个词占一行
登录后复制

生成词典的时候 报错:./dpp: error while loading shared libraries: libdatrie.so.1: cannot open shared object file: No such file or directory

解决办法:执行

ldconfig
登录后复制

然后在执行

./dpp words.txt words.dic
登录后复制

就好了

6、测试:

<!--?php 
/**
 * trie_filter 敏感词过滤示例
 * 
 **/ 
   
// 载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL 
$file = trie_filter_load('./words.dic'); 
var_dump($file); 
$str1 = '今天利用trie_filter做敏感词过滤示例'; 
$str2 = '今天利用trie_filter做过滤示例'; 
// 检测文本中是否含有词典中定义的敏感词(假设敏感词设定为:‘敏感词’) 
$res1 = trie_filter_search_all($file, $str1);  // 一次把所有的敏感词都检测出来
$res2 = trie_filter_search($file, $str2);// 每次只检测一个敏感词 
var_dump($res1); 
echo "<br/-->"; 
var_dump($res2);
trie_filter_free($file); //最后别忘记调用free
登录后复制

建议使用php 5.3.3以上的版本,我使用的是5.3.3

 以上就是利用PHP扩展trie_filter做中文敏感词过滤的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章:

一个高效的敏感词过滤方法(PHP)

php敏感词过滤使用第三方扩展trie_filter

PHP实现过滤留言信息中的敏感词

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号