Heim  >  Artikel  >  php教程  >  Verwenden Sie die PHP-Erweiterung trie_filter, um sensible chinesische Wörter zu filtern

Verwenden Sie die PHP-Erweiterung trie_filter, um sensible chinesische Wörter zu filtern

黄舟
黄舟Original
2017-03-22 14:29:132724Durchsuche

1. Installieren Sie libiconv, eine Abhängigkeit von 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. Installieren Sie: 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

Kompilierungsfehler trietool.c:125: undefinierter Verweis auf „libiconv“

Die Lösung lautet: ./configure LDFLAGS=-L/usr/local/lib LIBS=- liconv

3. Installieren Sie die trie_filter-Erweiterung

Da die offizielle trie_filter-Erweiterung Chinesisch nicht sehr gut unterstützt, habe ich auf Git eine Erweiterung gefunden, die auf der offiziellen Erweiterung umgeschrieben und ohne Probleme getestet wurde

Die Installationsmethode ist wie folgt:

https://github.com/wulijun/php-ext-trie-filter Laden Sie das Quellpaket hier herunter

phpize
./configure --with-php-config=/usr/local/bin/php-config 
make
make install

4. Ändern Sie die php.ini-Datei, fügen Sie die Erweiterung trie_filter hinzu: extension=trie_filter.so und starten Sie PHP neu.

Überprüfen Sie phpinfo und stellen Sie fest, dass die Erweiterung trie_filter verfügbar ist, wie in der Abbildung unten gezeigt:

Verwenden Sie die PHP-Erweiterung trie_filter, um sensible chinesische Wörter zu filtern

5 ist nicht im oben heruntergeladenen Quellcode-Paket enthalten. Mit dem Befehl zum Generieren eines Wörterbuchs müssen Sie auch das offizielle Quellcode-Paket herunterladen

(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中每个词占一行

Fehler beim Generieren des Wörterbuchs: ./dpp: Fehler beim Laden gemeinsam genutzter Bibliotheken: libdatrie.so.1: kann nicht geöffnet werden Gemeinsam genutzte Objektdatei: Keine solche Datei oder kein solches Verzeichnis

Lösung: Führen Sie

ldconfig

aus und führen Sie dann

./dpp words.txt words.dic

aus, ganz gut

6. Testen :

<!--?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

Es wird empfohlen, PHP zu verwenden. Für Versionen 5.3.3 und höher verwende ich 5.3.3

Das Obige ist der Inhalt der Verwendung der PHP-Erweiterung trie_filter zum Filtern von Chinesisch Für weitere verwandte Inhalte beachten Sie bitte die chinesische PHP-Website (www.php.cn)!

Verwandte Artikel:

Eine effiziente Filtermethode für sensible Wörter (PHP)

Die PHP-Filterung für sensible Wörter verwendet eine Drittanbieter-Erweiterung trie_filter

PHP implementiert das Filtern sensibler Wörter in Nachrichtennachrichten

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn