ホームページ  >  記事  >  php教程  >  PHP 拡張機能 trie_filter を使用して中国語の機密単語をフィルタリングする

PHP 拡張機能 trie_filter を使用して中国語の機密単語をフィルタリングする

黄舟
黄舟オリジナル
2017-03-22 14:29:132718ブラウズ

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 から拡張機能をインストールします。拡張機能は中国語をサポートしました あまり良くないので、公式拡張機能を書き換えた拡張機能を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. 上記でダウンロードしたソース コード パッケージには辞書を生成するコマンドが含まれていないため、単語検出用の辞書を生成します。公式のソース コード パッケージをダウンロードする必要もあります

PHP 拡張機能 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    
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

バージョン 5.3.3 以降の場合、私は 5.3.3 を使用しています

上記は、PHP 拡張機能 trie_filter を使用して中国語の機密単語をフィルタリングする内容です。その他の関連コンテンツについては、お支払いください。 PHP 中国語 Web サイト (www.php.cn) に注意してください。

関連記事:

効率的な​​機密単語フィルタリング方法 (PHP)

php 機密単語フィルタリングでは、サードパーティの拡張機能 trie_filter を使用します

PHP でメッセージ メッセージ内の機密単語をフィルタリングします

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。