Come abilitare e configurare il modulo SCWS PHP in ServBay
ServBay è un potente ambiente di sviluppo web locale progettato appositamente per macOS, che integra PHP, Node.js, Python, Go, Java e altri runtime di linguaggio, oltre a database come MySQL, PostgreSQL, MongoDB, Redis, e supporto a server web come Caddy e Nginx. Per gli sviluppatori che devono gestire testo cinese nelle loro applicazioni PHP, ServBay include il performante modulo SCWS (Simple Chinese Word Segmentation) per la segmentazione di testo cinese, la cui attivazione è estremamente semplice.
Questa guida spiega in dettaglio come abilitare l’estensione PHP SCWS in ServBay, come configurarne i file dizionario, e offre esempi pratici sull’utilizzo di base.
Panoramica del modulo SCWS
SCWS è un motore open source per la segmentazione di testo cinese, apprezzato per le sue elevate prestazioni e accuratezza. Combina metodi basati su dizionario e modelli statistici, e riesce a suddividere rapidamente e con precisione i testi cinesi—ideale per motori di ricerca, text mining, analisi dei contenuti, estrazione di parole chiave e tagging della parte del discorso.
Caratteristiche principali
- Alta performance: SCWS utilizza algoritmi ottimizzati, capaci di gestire grandi volumi di testo in cinese in modo efficiente.
- Alta accuratezza: L’unione di dizionari e modelli statistici garantisce ottime prestazioni nei compiti di segmentazione.
- Funzionalità avanzate: Oltre alla segmentazione di base, SCWS supporta estrazione di parole chiave, POS tagging e altro ancora.
- Facile integrazione: API intuitive permettono l’integrazione rapida nelle applicazioni PHP.
- Open source e gratuito: SCWS è software open source, liberamente utilizzabile e personalizzabile secondo le necessità.
Versione SCWS preinstallata in ServBay
ServBay supporta diverse versioni di PHP, e per ciascuna viene preinstallato il relativo modulo SCWS. Al momento della stesura di questa guida, ServBay fornisce l’estensione SCWS 1.2.3 per tutte le versioni PHP dalla 5.6 alla 8.4.
Come abilitare il modulo SCWS
Di default, il modulo SCWS è disabilitato in ServBay. Puoi abilitarlo in due modi: tramite interfaccia grafica di ServBay o modificando manualmente il file di configurazione.
Metodo consigliato: abilitazione tramite interfaccia grafica ServBay
Questa è la maniera più semplice e veloce:
- Apri l’interfaccia principale di ServBay.
- Nel menu laterale sinistro, clicca su Lingue (Languages) e poi seleziona PHP.
- Nella lista delle versioni PHP sulla destra, individua quella per cui vuoi abilitare SCWS (ad esempio,
PHP 8.4
). - Clicca sul pulsante Estensioni (Extensions) accanto alla versione PHP scelta.
- Nella lista che appare, trova il modulo
SCWS
. - Premi l’interruttore a sinistra di “SCWS” per attivarlo (di solito diventa verde).
- Fai clic su Salva (Save) in basso alla finestra.
- ServBay ti chiederà di riavviare il pacchetto PHP per applicare le modifiche. Premi Riavvia (Restart).
Seguiti questi passaggi, SCWS sarà abilitato per la versione PHP selezionata.
Abilitazione tramite modifica manuale della configurazione (per utenti avanzati o troubleshooting)
Per un controllo più preciso o per risolvere problematiche, puoi modificare direttamente il file di configurazione PHP:
Individua il file di configurazione: Prima, trova la directory
conf.d
della versione PHP che ti interessa. La configurazione di SCWS si trova nel filescws.ini
all’interno di questa directory. Il percorso tipico è:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Sostituisci
X.Y
con la versione PHP effettiva, ad esempio8.4
.Modifica il file
scws.ini
: Apriscws.ini
con un editor di testo. Cerca e modifica le seguenti righe: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
5Rimuovi il punto e virgola (
;
) davanti aextension = scws.so
, in modo che diventi: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(Opzionale) Puoi qui impostare charset e percorso del dizionario; tuttavia, si consiglia di impostarli dinamicamente nel codice PHP per maggiore flessibilità. Se vuoi impostarli qui, rimuovi il
;
e modifica i valori. Es. per un dizionario 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
5Salva e chiudi il file.
Riavvia il pacchetto PHP: Torna alla schermata principale di ServBay, vai su Pacchetti (Packages), trova la versione PHP modificata (es: PHP 8.4), e premi il pulsante di riavvio a destra (tipicamente un’icona a freccia circolare).
Come verificare se SCWS è stato caricato correttamente
Dopo aver abilitato il modulo, assicurati che sia effettivamente caricato. Il metodo più comune è controllare l’output di phpinfo()
di PHP:
- Nella root dei siti raccomandata da ServBay,
/Applications/ServBay/www
, crea una nuova sottocartella per i test, ad es.scws-test
. - All’interno di
/Applications/ServBay/www/scws-test
, crea un file chiamatophpinfo.php
. - Inserisci il seguente codice PHP in
phpinfo.php
:php<?php phpinfo(); ?>
1
2
3 - Accertati che il server web ServBay (es. Caddy o Nginx) sia configurato e in esecuzione, e che abbia accesso alla cartella
/Applications/ServBay/www
. Per default, ServBay assegna il dominioservbay.demo
a questa directory. - Visita nel browser
https://servbay.demo/scws-test/phpinfo.php
. - Nella pagina delle informazioni PHP, cerca una sezione chiamata "SCWS". Se la trovi con versioni e opzioni configurate, significa che il modulo è stato caricato con successo.
(Nota: il percorso dell’immagine è di esempio, consulta la documentazione ufficiale ServBay per immagini aggiornate)
Creazione e configurazione del dizionario SCWS
SCWS è un motore di segmentazione basato su dizionario, e la qualità della segmentazione dipende fortemente dal dizionario utilizzato. ServBay fornisce dizionari predefiniti e file di regole, di solito disponibili in /Applications/ServBay/etc/scws
. Puoi anche creare o usare dizionari personalizzati.
Formato dei file dizionario SCWS
SCWS accetta sia file dizionario in testo normale che nel formato binario xdb. Si consiglia di usare xdb per prestazioni migliori.
Il formato del dizionario testo è:
Parola1 [frequenza1] [categoria1]
Parola2 [frequenza2] [categoria2]
...
2
3
Esempio:
Intelligenza Artificiale 1000 n
Elaborazione Linguaggio Naturale 800 n
ServBay 500 nz
2
3
Salva le tue parole personalizzate in un file di testo, es. my_dict.txt
. Assicurati che la codifica del file corrisponda al charset desiderato (si raccomanda UTF-8).
Generare un dizionario in formato xdb
ServBay include lo strumento scws-gen-dict
fornito da SCWS, utile per convertire un dizionario di testo in formato xdb.
- Apri il Terminale di macOS.
- Con il comando
cd
accedi alla cartella bin di ServBay, o specifica il percorso completo discws-gen-dict
. Tipicamente il tool si trova in:bashSostituisci/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
con il vero percorso del tuo file dizionario. Il parametro-o
definisce il percorso e nome del file .xdb generato, che conviene salvare in/Applications/ServBay/etc/scws
. L’opzione-c utf8
imposta la codifica del file di input.
Configurare SCWS per usare il dizionario
Dopo aver creato il file xdb puoi specificarne il percorso nel codice PHP:
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Imposta la codifica caratteri, coerente con il dizionario
// Imposta il path del dizionario principale – puoi usare quello predefinito o il tuo file generato
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Puoi caricare dizionari aggiuntivi
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT identifica un dizionario utente
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // File regole per POS tagging, già incluso in ServBay
// ... Operazioni di segmentazione successive ...
?>
2
3
4
5
6
7
8
9
10
11
set_dict()
imposta il dizionario principale, solitamente quello ‘grande’ fornito da SCWS. add_dict()
permette di aggiungere dizionari utente personalizzati. Il flag SCWS_XDICT_TXT
indica l’aggiunta di un dizionario utente.
Esempio d’uso SCWS
Dopo aver abilitato SCWS e configurato i dizionari, puoi usare le funzioni SCWS in PHP per segmentare testo cinese. Ecco un esempio base:
<?php
// Assicurati che l’estensione SCWS sia caricata
if (!extension_loaded('scws')) {
die('SCWS extension is not loaded.');
}
// Inizializza l’oggetto SCWS
$scws = scws_new();
if (!$scws) {
die('Failed to initialize SCWS.');
}
// Imposta la codifica caratteri (deve corrispondere a testo e dizionario)
$scws->set_charset('utf8');
// Imposta il percorso del dizionario (predefinito da ServBay)
// set_dict() imposta il dizionario principale
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() consente di aggiungere dizionari utente personalizzati
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Imposta il percorso del file di regole (già fornito da ServBay, per POS tagging)
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Imposta la modalità di segmentazione (opzionale; default: SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: Segmenta caratteri x come email, url, ecc.
// SCWS_XDICT_DUALITY: Segmentazione composta (bigrama)
// $scws->set_ignore(true); // Ignora la punteggiatura
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Imposta livello segmentazione multipla
// Testo cinese da segmentare
$text = "ServBay 是一个强大的本地 Web 开发环境,支持 PHP、Node.js 和多种数据库。";
// Invia il testo a SCWS per l’analisi
$scws->send_text($text);
// Recupera i risultati della segmentazione
echo "Testo originale: " . $text . "\n\n";
echo "Risultati segmentazione:\n";
// Loop per ottenere tutte le parole segmentate
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word è un array associativo con 'word', 'idf', 'attr' (categoria), ecc.
echo "Parola: " . $word['word'] . " (Categoria: " . $word['attr'] . ")\n";
}
}
// Libera le risorse SCWS
$scws->close();
?>
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
Salva questo codice in un file .php
(ad es. scws_example.php
) e posizionalo nella directory dei siti gestiti da ServBay (ad esempio /Applications/ServBay/www/scws-test/
). Visita https://servbay.demo/scws-test/scws_example.php
nel browser per vedere i risultati della segmentazione.
Note importanti
- Assicurati che la versione SCWS abilitata sia compatibile con la versione PHP in uso. ServBay gestisce la compatibilità, ma presta attenzione in caso di configurazioni manuali.
- La qualità della segmentazione SCWS dipende dal dizionario. Per testi di settore, crea o usa dizionari specifici.
- Verifica che i percorsi nei file di configurazione SCWS (
scws.ini
), del dizionario (.xdb
) e delle regole (.ini
) siano corretti e che PHP abbia i permessi di lettura necessari. - Dopo aver modificato la configurazione PHP, riavvia sempre il relativo pacchetto PHP per applicare i cambiamenti.
Domande Frequenti (FAQ)
D: Ho abilitato SCWS tramite la UI ServBay ma non lo vedo in phpinfo()
?
R: Assicurati di riavviare il corretto pacchetto PHP. A volte possono essere avviate più versioni PHP allo stesso tempo: serve riavviare quella collegata al tuo sito. In caso di problemi, prova la configurazione manuale modificando scws.ini
e controlla percorso e sintassi.
D: Come posso creare e usare un dizionario personalizzato?
R: Consulta la sezione “Creazione e configurazione del dizionario SCWS” di questa guida: usa l’utility scws-gen-dict
per convertire il dizionario testuale in formato xdb e poi caricalo tramite add_dict()
nel codice PHP.
D: A cosa serve il file di regole (rules.utf8.ini
) di SCWS?
R: Il file regole viene impiegato soprattutto per il POS tagging (categorie grammaticali) e regole avanzate di segmentazione. ServBay include già un file regole predefinito che normalmente non deve essere modificato.
Conclusioni
ServBay offre agli sviluppatori un modo semplice e flessibile per abilitare e gestire il modulo SCWS per la segmentazione del cinese in PHP. Grazie all’interfaccia intuitiva e alle opzioni di configurazione manuale, puoi integrare SCWS con facilità nel tuo workflow di sviluppo. In combinazione con gli strumenti e i dizionari forniti di default, puoi lavorare immediatamente con testo cinese in modo efficace e accurato, dando valore aggiunto alle tue applicazioni (come ricerca, analisi dei contenuti, ecc). L’integrazione di SCWS potenzia ulteriormente l’offerta di ServBay come ambiente di sviluppo completo e professionale per il web.