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. 上記でダウンロードしたソース コード パッケージには辞書を生成するコマンドが含まれていないため、単語検出用の辞書を生成します。公式のソース コード パッケージをダウンロードする必要もあります(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
バージョン 5.3.3 以降の場合、私は 5.3.3 を使用しています
上記は、PHP 拡張機能 trie_filter を使用して中国語の機密単語をフィルタリングする内容です。その他の関連コンテンツについては、お支払いください。 PHP 中国語 Web サイト (www.php.cn) に注意してください。
関連記事:
効率的な機密単語フィルタリング方法 (PHP)