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

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 扩展

由于官方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 扩展可用,如下图所示:

7f9c08bd5a49b94aced00765ce86df2c.png

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、测试:";

var_dump($res2);

trie_filter_free($file); //最后别忘记调用free

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

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

相关文章:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值