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 확장을 사용할 수 있는지 확인하세요.
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('./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)를 참고해주세요!
관련 기사: