Comment activer et configurer le module SCWS PHP dans ServBay
ServBay est un environnement local de développement Web puissant conçu spécialement pour macOS. Il intègre de nombreux runtimes tels que PHP, Node.js, Python, Go, Java, ainsi que des bases de données comme MySQL, PostgreSQL, MongoDB, Redis, et prend en charge des serveurs Web comme Caddy et Nginx. Pour les développeurs qui doivent traiter du texte en chinois dans leurs applications PHP, ServBay inclut en natif le module performant SCWS (Simple Chinese Word Segmentation) pour la segmentation de mots chinois – son activation est simple et rapide.
Ce guide détaille comment activer l’extension PHP SCWS sur ServBay, configurer les fichiers de dictionnaire, et montre des exemples d’utilisation du module.
Présentation du module SCWS
SCWS est un moteur open-source spécialisé dans la segmentation de mots chinois, réputé pour ses hautes performances et sa précision. Il combine l’utilisation de dictionnaires et de modèles statistiques pour segmenter de façon rapide et précise du texte chinois, ce qui le rend idéal pour les moteurs de recherche, le text mining, l’analyse de contenu, l’extraction de mots-clés et l’annotation syntaxique.
Fonctionnalités principales
- Segmentation haute performance : SCWS utilise des algorithmes optimisés qui gèrent efficacement de larges volumes de texte chinois.
- Grande précision : En associant dictionnaires et modèles statistiques, SCWS délivre une segmentation précise sur les tâches de traitement de texte en chinois.
- Fonctionnalités étendues : Outre la segmentation de base, SCWS propose également l’extraction de mots-clés, l’annotation syntaxique et d’autres fonctions avancées.
- Intégration facile : Une API simple à utiliser permet une intégration rapide dans vos projets PHP.
- Open-source et gratuit : SCWS est un logiciel libre, gratuit à utiliser et personnalisable selon vos besoins.
Version SCWS incluse dans ServBay
ServBay prend en charge plusieurs versions de PHP et équipe chacune d’elles de l’extension SCWS correspondante. Au moment de la rédaction, ServBay propose SCWS 1.2.3 en natif 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 façons principales de l’activer : via l’interface graphique ServBay ou en modifiant manuellement le fichier de configuration.
Méthode recommandée : activation via l’interface graphique ServBay
C’est la méthode la plus simple et rapide :
- Ouvrez l’interface principale de ServBay.
- Dans la barre de navigation à gauche, cliquez sur Langages (Languages), puis sélectionnez PHP.
- Dans la liste des versions PHP à droite, trouvez la version pour laquelle vous souhaitez activer SCWS (par exemple,
PHP 8.4
). - Cliquez sur le bouton Extensions à droite de cette version PHP.
- Dans la fenêtre qui apparaît, repérez le module
SCWS
. - Activez l’interrupteur à gauche de
SCWS
(il devrait passer au vert). - Cliquez sur le bouton Enregistrer (Save) en bas de la fenêtre.
- ServBay vous invitera à redémarrer le service PHP pour appliquer les changements. Cliquez sur Redémarrer (Restart).
Après ces étapes, le module SCWS est activé sur la version PHP sélectionnée.
Activation manuelle dans le fichier de configuration (pour utilisateurs avancés ou en cas de dépannage)
Pour un contrôle plus granulaire ou si vous dépannez des problèmes, vous pouvez modifier directement le fichier de configuration PHP :
Localisez le fichier de configuration : Rendez-vous dans le dossier
conf.d
correspondant à votre version de PHP. SCWS dispose d'un fichierscws.ini
dans ce dossier, typiquement situé à :/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Remplacez
X.Y
par la version spécifique de PHP, par exemple8.4
.Éditez le fichier
scws.ini
: Ouvrez-le avec un éditeur de texte et localisez :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
5Supprimez le point-virgule devant
extension = 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 également définir ici le jeu de caractères par défaut et le chemin du dictionnaire, mais il est conseillé d’effectuer ces réglages dynamiquement dans votre code PHP, pour plus de flexibilité. Pour une configuration en 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
5Sauvegardez et fermez le fichier.
Redémarrez le service PHP : Dans l’interface de ServBay, accédez à Packages (Packages), repérez la version PHP modifiée (ex : PHP 8.4), puis cliquez sur l’icône de redémarrage (généralement une flèche circulaire).
Vérifier que le module SCWS est bien chargé
Après activation, il est important de vérifier que le module SCWS est correctement chargé. Le moyen le plus courant est d’utiliser le résultat de la fonction PHP phpinfo()
:
- Créez un dossier pour le test dans le répertoire racine défini par ServBay, par exemple
/Applications/ServBay/www/scws-test
. - À l’intérieur, créez un fichier nommé
phpinfo.php
. - Collez le code suivant dans ce fichier :php
<?php phpinfo(); ?>
1
2
3 - Vérifiez que le serveur Web de ServBay (Caddy, Nginx, etc.) est bien configuré et en fonctionnement. Par défaut, ServBay dirige le domaine
servbay.demo
vers/Applications/ServBay/www
. - Dans votre navigateur, ouvrez
https://servbay.demo/scws-test/phpinfo.php
. - Sur la page générée, vérifiez la présence d’une section nommée "SCWS". Si elle apparaît avec les informations du module (version, options…), le chargement a réussi.
(Remarque : le chemin de l’image est donné à titre d’exemple, veuillez consulter la documentation officielle de ServBay)
Créer et configurer un dictionnaire SCWS
SCWS repose sur l’utilisation de dictionnaires pour segmenter le texte : la qualité de la segmentation dépend donc directement du dictionnaire utilisé. Par défaut, ServBay fournit un dictionnaire et un fichier de règles SCWS, situés dans /Applications/ServBay/etc/scws
. Vous pouvez cependant créer et utiliser vos propres dictionnaires.
Format des fichiers dictionnaire SCWS
SCWS accepte le format texte classique ainsi que le format binaire xdb (préféré pour ses performances et son efficacité mémoire).
Le format texte utilise une ligne par entrée : chaque ligne correspond à un mot, éventuellement suivi d’une fréquence d’utilisation (nombre, plus il est élevé plus le mot est courant) et d’une catégorie grammaticale :
mot1 [fréquence1] [nature1]
mot2 [fréquence2] [nature2]
...
1
2
3
2
3
Par exemple :
intelligence artificielle 1000 n
traitement du langage naturel 800 n
ServBay 500 nz
1
2
3
2
3
Sauvegardez votre liste de termes personnalisés dans un fichier texte (par exemple mon_dico.txt
), en vérifiant que l’encodage corresponde à vos besoins (UTF-8 recommandé).
Générer un dictionnaire xdb
ServBay fournit l’outil scws-gen-dict
pour convertir un dictionnaire texte en un fichier binaire xdb.
- Ouvrez l’application Terminal de macOS.
- Naviguez vers le dossier
bin
de ServBay ou appelez l’outil en utilisant son chemin complet :bashRemplacez/Applications/ServBay/bin/scws-gen-dict -i /chemin/vers/votre/mon_dico.txt -o /Applications/ServBay/etc/scws/mon_dico.utf8.xdb -c utf8
1/chemin/vers/votre/mon_dico.txt
par le véritable emplacement de votre fichier texte. L’option-o
détermine le chemin et nom du fichier xdb généré—il est conseillé de le placer dans/Applications/ServBay/etc/scws
. L’option-c utf8
précise l’encodage du fichier source.
Configurer SCWS pour utiliser votre dictionnaire
Une fois le fichier xdb généré, vous pouvez indiquer à SCWS de l’utiliser dans votre code PHP :
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Définir le jeu de caractères (doit correspondre à votre dictionnaire)
// Chemin vers le dictionnaire principal : utilisez celui par défaut de ServBay ou votre fichier personnalisé
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Pour ajouter un autre dictionnaire (ex : personnel)
$scws->add_dict('/Applications/ServBay/etc/scws/mon_dico.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT indique un dictionnaire utilisateur
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Fichier de règles pour l’annotation syntaxique (déjà fourni par ServBay)
// ... traitements de 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 fourni officiellement). add_dict()
permet d’ajouter un dictionnaire utilisateur personnalisé (le paramètre SCWS_XDICT_TXT
précise ce type).
Exemple d’utilisation de SCWS
Après activation du module et configuration du dictionnaire, vous pouvez effectuer la segmentation de texte chinois directement dans votre code PHP. Voici un exemple de base :
php
<?php
// Vérifiez que l’extension SCWS est chargée
if (!extension_loaded('scws')) {
die('L’extension SCWS n’est pas chargée.');
}
// Initialisation de l’objet SCWS
$scws = scws_new();
if (!$scws) {
die('Échec de l’initialisation de SCWS.');
}
// Définir le jeu de caractères (doit correspondre à l’encodage du texte et du dictionnaire)
$scws->set_charset('utf8');
// Définir le chemin du dictionnaire principal (dictionnaire par défaut de ServBay)
// set_dict() définit le dictionnaire principal
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() vous permet d’ajouter un dictionnaire personnalisé
// $scws->add_dict('/Applications/ServBay/etc/scws/mon_dico.utf8.xdb', SCWS_XDICT_TXT);
// Définir le chemin du fichier de règles (préinstallé dans ServBay), utile pour l’annotation syntaxique
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Configurer le mode de segmentation (facultatif, par défaut SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN : segmenter les caractères non-hanzi (emails, url, etc.)
// SCWS_XDICT_DUALITY : segmentation combinée (bigrammes)
// $scws->set_ignore(true); // Ignorer la ponctuation
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Définir le niveau de segmentation multiple
// Texte à segmenter
$text = "ServBay 是一个强大的本地 Web 开发环境,支持 PHP、Node.js 和多种数据库。";
// Envoyer le texte à SCWS pour analyse
$scws->send_text($text);
// Récupérer et afficher les résultats de segmentation
echo "Texte original : " . $text . "\n\n";
echo "Résultat de la segmentation :\n";
// Parcourir tous les résultats
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word est un tableau associatif contenant 'word', 'idf', 'attr' (nature) etc.
echo "Mot : " . $word['word'] . " (nature : " . $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 sous un fichier .php
(ex : scws_example.php
), placez-le dans le dossier Web de ServBay (ex : /Applications/ServBay/www/scws-test/
), puis accédez via le navigateur à : https://servbay.demo/scws-test/scws_example.php
pour consulter le résultat.
Points d’attention
- Vérifiez que la version du module SCWS activée est bien compatible avec la version de PHP utilisée. ServBay se charge habituellement des détails de compatibilité, mais en cas de configuration manuelle, soyez vigilant.
- La qualité du résultat dépend du dictionnaire. Pour des domaines spécifiques, privilégiez ou créez des dictionnaires métier adaptés.
- Assurez-vous que les chemins des fichiers de configuration SCWS (
scws.ini
), des dictionnaires (.xdb
) et des règles (.ini
) sont corrects, et que le processus PHP a les droits nécessaires pour y accéder. - Après toute modification de configuration PHP, redémarrez impérativement le service PHP concerné pour appliquer les changements.
FAQ (Foire aux questions)
Q : J’ai activé SCWS via l’UI de ServBay mais il n’apparaît pas dans phpinfo()
?
R : Vérifiez que vous avez bien redémarré le bon service PHP. Si vous avez plusieurs versions qui tournent, redémarrez celle utilisée par votre site. En cas de problème persistant, essayez d’éditer manuellement le fichier scws.ini
et vérifiez soigneusement les chemins d’accès et la syntaxe.
Q : Comment créer et utiliser un dictionnaire personnalisé ?
R : Consultez la section “Créer et configurer un dictionnaire SCWS” de ce document. Utilisez l’outil scws-gen-dict
pour convertir un fichier texte en format xdb et chargez-le ensuite dans votre code PHP avec la méthode add_dict()
.
Q : À quoi sert le fichier de règles SCWS (rules.utf8.ini
) ?
R : Ce fichier permet principalement l’annotation syntaxique et la gestion de certaines règles de segmentation. Un fichier par défaut est inclus dans ServBay, vous n’aurez généralement pas besoin de le modifier.
Conclusion
ServBay offre aux développeurs une solution simple et puissante pour activer et gérer le module SCWS de segmentation de texte chinois pour PHP. Que ce soit à travers son interface intuitive ou une configuration avancée, vous pouvez facilement intégrer SCWS à votre flux de développement PHP. Avec l’outil SCWS et les dictionnaires fournis par défaut, vous êtes opérationnel rapidement pour traiter vos contenus chinois de façon performante et précise, que ce soit pour la recherche, l’analyse de contenu ou d’autres applications Web. En tant que composant clé de l’écosystème logiciel ServBay, SCWS renforce la richesse et la polyvalence de cet environnement local, offrant un atout de taille aux développeurs.