>  기사  >  php教程  >  PHP 확장 trie_filter를 사용하여 중국어 민감한 단어 필터링

PHP 확장 trie_filter를 사용하여 중국어 민감한 단어 필터링

黄舟
黄舟원래의
2017-03-22 14:29:132695검색

1. libdatrie의 종속물인 libiconv를 설치합니다

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: `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 확장을 사용할 수 있는지 확인하세요.

PHP 확장 trie_filter를 사용하여 중국어 민감한 단어 필터링

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: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다. libdatrie.so.1: 열 수 없습니다. 공유 객체 파일: 해당 파일이나 디렉터리가 없습니다

해결 방법:

ldconfig

을 실행한 다음

./dpp words.txt words.dic

을 실행하세요

6. 테스트 :

<!--?php 
/**
 * trie_filter 敏感词过滤示例
 * 
 **/ 
   
// 载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL 
$file = trie_filter_load(&#39;./words.dic&#39;); 
var_dump($file); 
$str1 = &#39;今天利用trie_filter做敏感词过滤示例&#39;; 
$str2 = &#39;今天利用trie_filter做过滤示例&#39;; 
// 检测文本中是否含有词典中定义的敏感词(假设敏感词设定为:‘敏感词’) 
$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는 메시지 메시지에서 민감한 단어 필터링을 구현합니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.