Comment activer et configurer le module SCWS PHP dans ServBay
ServBay est un environnement de développement web local puissant, compatible macOS et Windows. Il embarque les runtimes pour PHP, Node.js, Python, Go, Java, ainsi que des bases de données telles que MySQL, PostgreSQL, MongoDB, Redis, et prend en charge les serveurs web Caddy et Nginx. Pour les développeurs PHP qui doivent traiter du texte en chinois, ServBay intègre d’office le performant SCWS (Simple Chinese Word Segmentation), un module de segmentation chinoise qui s’active très facilement.
Ce guide vous explique en détail comment activer l’extension SCWS PHP dans ServBay, comment configurer les fichiers dictionnaires, et propose un exemple de code pour illustrer son utilisation de base.
Présentation du module SCWS
SCWS est un moteur open source de segmentation de texte chinois, réputé pour ses performances et son haut degré de précision. Il combine la correspondance avec des dictionnaires et des modèles statistiques pour segmenter rapidement et exactement le texte chinois. Il s’adapte parfaitement à la création de moteurs de recherche chinois, à l’analyse de texte, l’extraction de mots-clés ou l’annotation grammaticale.
Principaux avantages
- Segmentation haute performance : SCWS utilise des algorithmes optimisés pour traiter efficacement de grands volumes de texte chinois.
- Précision élevée : Grâce à son dictionnaire et ses modèles statistiques, SCWS offre une grande fiabilité dans la segmentation.
- Fonctionnalités riches : En plus de la segmentation de base, il prend en charge l’extraction de mots-clés, l’annotation de partie du discours et d’autres fonctions avancées.
- Facile à intégrer : Son API est simple, permettant une intégration fluide dans vos applications PHP.
- Open source et gratuit : SCWS est logiciel libre, utilisable sans frais et modifiable selon vos besoins.
Version de SCWS intégrée dans ServBay
ServBay prend en charge plusieurs versions de PHP et installe pour chacune le module SCWS correspondant. À la rédaction de ce guide, ServBay propose l’extension SCWS 1.2.3 pour toutes les versions de PHP 5.6 à PHP 8.4.
Comment activer le module SCWS
Par défaut, le module SCWS est désactivé dans ServBay. Il existe deux méthodes principales pour l’activer : via l’interface graphique ServBay ou manuellement en éditant les fichiers de configuration.
Méthode recommandée : activation via l’interface graphique de ServBay
La méthode la plus simple et rapide est la suivante :
- Ouvrez l’interface principale de ServBay.
- Dans la barre de navigation à gauche, cliquez sur Languages puis sur PHP.
- Dans la liste des versions PHP à droite, identifiez la version à laquelle vous souhaitez ajouter SCWS (par exemple,
PHP 8.4
). - Cliquez sur le bouton Extensions à droite de cette version PHP.
- Dans la liste qui s’affiche, trouvez le module
SCWS
. - Cliquez sur le commutateur situé à gauche de
SCWS
pour l’activer (il passe généralement au vert). - Cliquez sur Save en bas de la fenêtre.
- ServBay vous indiquera qu'un redémarrage du paquet PHP est nécessaire pour appliquer les modifications. Cliquez sur Restart.
Une fois ces étapes terminées, le module SCWS est activé pour la version PHP de votre choix.
Activation manuelle par modification de la configuration (pour utilisateurs avancés ou dépannage)
Si vous souhaitez davantage de contrôle ou rencontrer des problèmes, vous pouvez configurer le module manuellement :
Repérer le fichier de configuration : Commencez par localiser le dossier
conf.d
correspondant à votre version de PHP. Le fichier de configuration de SCWS s’appellescws.ini
et se trouve généralement ici :/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Remplacez
X.Y
par votre version spécifique, par exemple8.4
.Editer le fichier
scws.ini
: Ouvrezscws.ini
avec un éditeur de texte. Repérez la section suivante :ini[scws] ; Uncomment the following line to enable scws ;extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5Retirez le point-virgule (
;
) devantextension = scws.so
pour obtenir :ini[scws] ; Uncomment the following line to enable scws extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5(Optionnel) Vous pouvez aussi définir le jeu de caractères et le chemin du dictionnaire ici, mais il est souvent préférable de le faire dynamiquement dans votre code PHP pour plus de flexibilité. Si vous souhaitez spécifier ces paramètres ici, retirez également les points-virgules et ajustez, par exemple avec un dictionnaire UTF-8 :
ini[scws] ; Uncomment the following line to enable scws extension = scws.so scws.default.charset = utf8 scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5Enregistrez et fermez le fichier.
Redémarrer le paquet PHP : Depuis l’interface ServBay, allez dans Packages, trouvez la version PHP que vous venez de configurer (ex. PHP 8.4), puis cliquez sur le bouton de redémarrage (icône fléchée circulaire).
Vérifier que SCWS est bien chargé
Après activation, il est important de vérifier que le module charge correctement. La méthode la plus courante consiste à utiliser la fonction PHP phpinfo()
:
- Dans le dossier racine proposé par ServBay,
/Applications/ServBay/www
, créez un sous-dossier de test, par exemplescws-test
. - Dans
/Applications/ServBay/www/scws-test
, créez un fichier nomméphpinfo.php
. - Copiez le code PHP suivant dans ce fichier :php
<?php phpinfo(); ?>
1
2
3 - Vérifiez que votre serveur web ServBay (Caddy ou Nginx) est bien configuré et fonctionne, avec accès au dossier
/Applications/ServBay/www
(le domaine par défaut estservbay.demo
). - Dans votre navigateur, accédez à
https://servbay.demo/scws-test/phpinfo.php
. - Sur la page d’information PHP, cherchez la section « SCWS ». Si elle apparaît (version, options), le module est opérationnel.
(Remarque : le chemin de l’image est un exemple, consultez la documentation réelle de ServBay pour la version exacte.)
Créer et configurer des dictionnaires SCWS
SCWS fonctionne sur la base de dictionnaires, et la qualité de la segmentation dépend beaucoup du dictionnaire utilisé. ServBay fournit un dictionnaire et un fichier de règles par défaut, généralement dans /Applications/ServBay/etc/scws
. Il est aussi possible de créer ou d’importer votre propre dictionnaire.
Format de fichier dictionnaire SCWS
SCWS supporte les fichiers de dictionnaire au format texte simple ou au format binaire xdb (plus recommandé car plus rapide et économe en mémoire).
Le format texte est le suivant, une ligne par mot, facultativement suivie de la fréquence (nombre, plus il est élevé plus le mot est courant) et la partie du discours :
mot1 [fréquence1] [catégorie1]
mot2 [fréquence2] [catégorie2]
...
1
2
3
2
3
Exemple :
Intelligence artificielle 1000 n
Traitement automatique du langage naturel 800 n
ServBay 500 nz
1
2
3
2
3
Sauvegardez votre liste personnalisée dans un fichier texte, par exemple my_dict.txt
, en veillant à utiliser le jeu de caractères adéquat (UTF-8 recommandé).
Générer un fichier dictionnaire au format xdb
ServBay propose l'outil SCWS scws-gen-dict
pour convertir le format texte en xdb.
- Ouvrez Terminal sur macOS.
- Accédez au dossier bin de ServBay avec
cd
, ou appelez directement l’outil, généralement ici :bashRemplacez/Applications/ServBay/bin/scws-gen-dict -i /path/to/your/my_dict.txt -o /Applications/ServBay/etc/scws/my_dict.utf8.xdb -c utf8
1/path/to/your/my_dict.txt
par le chemin vers votre fichier dictionnaire texte. Le paramètre-o
indique où enregistrer le fichier xdb, de préférence dans/Applications/ServBay/etc/scws
. Le paramètre-c utf8
définit l’encodage du fichier d'entrée.
Configurer SCWS pour utiliser votre dictionnaire
Lorsque vous avez généré votre fichier xdb, indiquez-le dans votre code PHP :
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Définir l'encodage, doit correspondre au dictionnaire
// Définir le chemin du dictionnaire principal : celui de ServBay ou votre xdb personnalisé
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Ajouter un dictionnaire supplémentaire si besoin
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT = ajout utilisateur
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Règles pour annotation grammaticale, fourni par défaut
// ... segmentation à suivre ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
set_dict()
définit le dictionnaire principal, généralement le grand dictionnaire officiel SCWS. add_dict()
permet d’ajouter votre dictionnaire personnalisé. Le paramètre SCWS_XDICT_TXT
indique qu’il s’agit d’un ajout utilisateur.
Exemple d’utilisation de SCWS
Une fois le module SCWS activé et les dictionnaires configurés, vous pouvez l’utiliser dans du code PHP comme suit :
php
<?php
// S'assurer que l’extension SCWS est chargée
if (!extension_loaded('scws')) {
die('L’extension SCWS n’est pas chargée.');
}
// Initialiser l’objet SCWS
$scws = scws_new();
if (!$scws) {
die('Échec de l’initialisation de SCWS.');
}
// Définir l’encodage (doit correspondre au texte et au dictionnaire)
$scws->set_charset('utf8');
// Définir le chemin vers le dictionnaire principal (chemin fourni par ServBay)
// set_dict() pour le dictionnaire principal
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() permet d’ajouter votre propre dictionnaire
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Définir le chemin du fichier de règles (pour annotation grammaticale, chemin fourni par ServBay)
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Modes de segmentation (optionnel, par défaut : SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN : segmentation des caractères non chinois (emails, urls, etc.)
// SCWS_XDICT_DUALITY : segmentation en binômes
// $scws->set_ignore(true); // Ignorer ou non les ponctuations
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Ajuster le niveau de segmentation
// Texte chinois à segmenter
$text = "ServBay 是一个强大的本地 Web 开发环境,支持 PHP、Node.js 和多种数据库。";
// Envoyer le texte à SCWS
$scws->send_text($text);
// Récupérer les résultats
echo "Texte original : " . $text . "\n\n";
echo "Résultat de la segmentation :\n";
// Boucle sur tous les mots obtenus
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word = tableau associatif avec 'word', 'idf', 'attr' (catégorie), etc.
echo "Mot : " . $word['word'] . " (Catégorie : " . $word['attr'] . ")\n";
}
}
// Libérer les ressources SCWS
$scws->close();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Enregistrez ce code dans un fichier .php
(exemple : scws_example.php
), placez-le dans le dossier web ServBay (/Applications/ServBay/www/scws-test/
) et consultez-le via https://servbay.demo/scws-test/scws_example.php
pour voir le résultat.
Remarques importantes
- Vérifiez que la version du module SCWS que vous activez est compatible avec la version PHP utilisée. ServBay gère la compatibilité automatiquement, mais lors d'une configuration manuelle soyez attentif.
- La qualité de la segmentation dépend fortement du dictionnaire. Pour des textes spécialisés, privilégiez des dictionnaires métiers ou ajoutez le vôtre.
- Vérifiez que les chemins dans les fichiers de configuration (
scws.ini
), le dictionnaire (.xdb
) et le fichier de règles (.ini
) sont corrects et disposent des permissions de lecture pour PHP. - Après toute modification de la configuration PHP, redémarrez le paquet PHP concerné pour appliquer les changements.
FAQ (Questions fréquentes)
Q : J’ai activé SCWS via l’interface ServBay, mais il n’apparaît pas dans phpinfo()
?
A : Assurez-vous d’avoir redémarré le bon paquet PHP, notamment si plusieurs versions tournent simultanément. Redémarrez la version associée à votre site. Si le problème persiste, éditez manuellement le fichier scws.ini
et vérifiez le chemin et la syntaxe.
Q : Comment créer et utiliser un dictionnaire personnalisé ?
A : Reportez-vous à la section « Créer et configurer des dictionnaires SCWS » de ce guide. Utilisez l’outil scws-gen-dict
pour convertir votre fichier texte en xdb, puis ajoutez-le au code avec la méthode add_dict()
.
Q : À quoi sert le fichier de règles SCWS (rules.utf8.ini
) ?
A : Ce fichier sert principalement à l’annotation grammaticale et à des règles spécifiques de segmentation. ServBay inclut une version par défaut adaptée à la plupart des cas, inutile de la modifier dans l’usage courant.
Conclusion
ServBay simplifie la gestion et l’activation du module SCWS PHP pour la segmentation du texte chinois. Que vous préfériez passer par une interface graphique intuitive ou via des configurations avancées, l’intégration de SCWS dans votre flux de développement PHP se fait en toute simplicité. Grâce aux outils et dictionnaires fournis par défaut, il est facile de se lancer et d’exploiter toute la puissance de SCWS pour traiter efficacement le chinois dans vos applications web (recherche, analyse de contenu, etc.). L’intégration de SCWS au riche écosystème de ServBay rend cet environnement de développement local encore plus polyvalent et efficace.