Cara Mengaktifkan & Mengkonfigurasi Modul PHP SCWS Dalam ServBay
ServBay ialah persekitaran pembangunan web lokal yang berkuasa direka untuk macOS, mengintegrasi pelbagai runtime seperti PHP, Node.js, Python, Go, Java dan database seperti MySQL, PostgreSQL, MongoDB, Redis, serta menyokong pelayan web Caddy dan Nginx. Untuk pemaju yang perlu memproses teks Cina dalam aplikasi PHP, ServBay sudah menyediakan modul SCWS (Simple Chinese Word Segmentation) yang efisien — dan sangat mudah digunakan.
Dokumen ini menerangkan secara terperinci cara untuk mengaktifkan sambungan SCWS PHP, mengkonfigurasi fail kamusnya, serta memberikan contoh kod bagaimana menggunakannya dalam projek sebenar.
Pengenalan Modul SCWS
SCWS merupakan enjin pemotongan kata Cina sumber terbuka yang terkenal dengan kecekapan dan ketepatannya. Ia menggunakan gabungan padanan kamus dan model statistik untuk memotong teks Cina dengan pantas dan tepat; sesuai untuk membina enjin carian Cina, perlombongan data teks, analisis kandungan, pengekstrakan kata kunci dan penandaan jenis kata.
Ciri-ciri Utama
- Prestasi Tinggi: Algoritma pemotongan SCWS dioptimumkan untuk memproses data teks Cina berskala besar dengan efisien.
- Ketepatan Tinggi: Gabungan model statistik dan kamus membolehkan SCWS menghasilkan hasil pemotongan yang sangat tepat.
- Kaya Fungsi: Selain pemotongan asas, ia juga menyokong pengekstrakan kata kunci, tagging jenis perkataan, dan lagi.
- Mudah Disepadukan: Antara muka API mesra pengguna memudahkan integrasi ke aplikasi PHP anda.
- Sumber Terbuka & Percuma: SCWS boleh digunakan dan diubah suai secara bebas mengikut keperluan projek.
Versi SCWS Sedia Ada Dalam ServBay
ServBay menyokong pelbagai versi PHP, dan setiap satu telah dipra-pasang dengan modul SCWS masing-masing. Sehingga tarikh dokumen ini, SCWS 1.2.3 telah tersedia untuk semua versi PHP 5.6 hingga PHP 8.4.
Cara Mengaktifkan Modul SCWS
Secara default, modul SCWS dimatikan dalam ServBay. Ia boleh diaktifkan melalui dua cara utama: menggunakan antara muka grafik (UI) ServBay atau mengubah suai fail konfigurasi secara manual.
Kaedah Disyorkan: Aktifkan Menerusi UI ServBay
Ini cara paling mudah dan pantas:
- Buka antara muka utama ServBay.
- Pada bar navigasi kiri, klik Languages (Bahasa) dan pilih PHP.
- Dalam senarai versi PHP, cari versi PHP yang ingin anda aktifkan SCWS (contoh:
PHP 8.4
). - Klik butang Extensions (Sambungan) di sebelah kanan versi PHP tersebut.
- Dalam senarai sambungan yang muncul, cari
SCWS
. - Alihkan suis di kiri
SCWS
ke posisiON
(biasanya berwarna hijau). - Klik butang Save (Simpan) di bahagian bawah tetingkap.
- ServBay akan meminta anda untuk memulakan semula pakej PHP bagi memuat perubahan. Klik Restart (Mula Semula).
Selesai langkah-langkah ini, SCWS telah berjaya diaktifkan untuk versi PHP pilihan anda.
Aktifkan Dengan Mengubah Suai Fail Konfigurasi (Untuk Pengguna Lanjutan / Penyelesai Masalah)
Jika anda memerlukan kawalan lebih terperinci atau sedang melakukan penyelesaian masalah, anda boleh mengubah suai fail konfigurasi PHP secara langsung:
Cari Fail Konfigurasi: Pertama, cari direktori
conf.d
untuk versi PHP anda. Konfigurasi SCWS terdapat dalam failscws.ini
pada direktori tersebut. Laluan tipikal:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Gantikan
X.Y
dengan nombor versi PHP sebenar, seperti8.4
.Edit Fail
scws.ini
: Buka failscws.ini
dengan penyunting teks. Cari baris berikut: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
5Buang
;
di hadapan barisextension = scws.so
supaya ia menjadi: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(Pilihan) Anda juga boleh tetapkan set karakter dan laluan kamus default di sini, tetapi biasanya disyorkan menetapkannya secara dinamik dalam kod PHP untuk lebih fleksibiliti. Jika ingin menetapkan di sini, buang komen baris berkaitan dan ubah nilainya — contoh jika kamus anda dalam 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
5Simpan & tutup fail
scws.ini
.Mula Semula Pakej PHP: Buka UI ServBay, pilih Packages (Pakej), cari versi PHP yang anda ubah konfigurasinya (contoh: PHP 8.4), dan klik butang mula semula di sebelah kanan (ikon anak panah melengkung).
Sahkan Sama Ada Modul SCWS Telah Dimuatkan
Selepas diaktifkan, amat penting untuk mengesahkan modul telah berjaya dimuatkan. Cara paling lazim adalah menggunakan paparan phpinfo()
PHP:
- Dalam direktori root laman yang disyorkan oleh ServBay,
/Applications/ServBay/www
, cipta subdirektori baharu untuk ujian, misalscws-test
. - Dalam
/Applications/ServBay/www/scws-test
, cipta fail bernamaphpinfo.php
. - Masukkan kod PHP berikut ke dalam
phpinfo.php
:php<?php phpinfo(); ?>
1
2
3 - Pastikan pelayan web ServBay anda (contoh: Caddy atau Nginx) sedang berjalan dan melayan folder
/Applications/ServBay/www
. Lalai, ServBay akan tetapkan domainservbay.demo
ke laluan ini. - Layari
https://servbay.demo/scws-test/phpinfo.php
dalam pelayar. - Cari bahagian bertajuk "SCWS" pada halaman info PHP. Jika maklumat berkaitan SCWS (contoh: nombor versi, pilihan konfigurasi) dipaparkan, modul telah berjaya dimuatkan.
(Nota: Laluan imej adalah contoh. Sila rujuk dokumentasi rasmi ServBay untuk imej sebenar)
Cipta & Konfigurasi Kamus SCWS
SCWS ialah enjin pemotongan berasaskan kamus; keberkesanannya sangat bergantung kepada kualiti kamus yang digunakan. ServBay membekalkan kamus default dan fail peraturan SCWS di direktori /Applications/ServBay/etc/scws
. Namun, anda juga boleh cipta atau guna kamus tersendiri.
Format Fail Kamus SCWS
SCWS menyokong format teks biasa dan format binari xdb untuk fail kamus. Format xdb adalah disyorkan kerana kelajuan muatan lebih tinggi serta penggunaan memori lebih rendah.
Format fail teks kamus (setiap baris satu entri, boleh tambahkan frekuensi dan jenis perkataan di belakang):
Perkataan1 [Frekuensi1] [Jenis1]
Perkataan2 [Frekuensi2] [Jenis2]
...
1
2
3
2
3
Contoh:
Kecerdasan buatan 1000 n
Pemprosesan bahasa semula jadi 800 n
ServBay 500 nz
1
2
3
2
3
Simpan koleksi perkataan anda dalam fail teks seperti my_dict.txt
. Pastikan encodingnya seragam dengan set karakter yang anda mahu gunakan (disyorkan UTF-8).
Menjana Fail Kamus xdb
ServBay menyediakan alat scws-gen-dict
untuk menukar kamus teks ke format xdb.
- Buka aplikasi Terminal macOS.
- Gunakan
cd
ke direktori bin ServBay, atau panggilscws-gen-dict
dengan laluan penuh. Biasanya, alat ini terletak di direktori bin ServBay:bashGanti/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
dengan laluan sebenar fail kamus.-o
menetapkan laluan dan nama fail xdb keluaran, sebaiknya letakkan dalam/Applications/ServBay/etc/scws
.-c utf8
bermakna input anda menggunakan UTF-8.
Konfigurasi SCWS Untuk Guna Kamus Anda
Selepas fail xdb dijana, anda boleh menetapkan SCWS untuk guna kamus tersebut di dalam kod PHP anda:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Tetapkan set karakter, mesti padan dengan kod fail kamus
// Tetapkan laluan kamus utama, boleh guna kamus default atau xdb anda sendiri
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Untuk tambah lebih banyak kamus
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT = tambah kamus pengguna
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Tetapkan fail peraturan, telah disediakan dalam ServBay
// ... operasi pemotongan kata selanjutnya ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
set_dict()
— Tetapkan kamus utama (biasanya kamus rasmi SCWS).add_dict()
— Muatkan kamus pengguna tambahan.SCWS_XDICT_TXT
— pemalar untuk kamus yang anda tentukan sendiri.
Contoh Penggunaan SCWS Dalam PHP
Selepas SCWS diaktifkan dan kamus dikonfigurasi, anda boleh memanggil fungsi SCWS untuk pemotongan kata dalam kod PHP. Contoh ringkas penggunaannya:
php
<?php
// Pastikan sambungan SCWS telah dimuatkan
if (!extension_loaded('scws')) {
die('Sambungan SCWS tidak dimuatkan.');
}
// Mulakan objek SCWS
$scws = scws_new();
if (!$scws) {
die('Inisialisasi SCWS gagal.');
}
// Tetapkan set karakter (mesti padan dengan teks & kamus)
$scws->set_charset('utf8');
// Tetapkan laluan fail kamus (laluan default ServBay)
// set_dict() untuk kamus utama
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() untuk menambah kamus pengguna
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Tetapkan laluan fail peraturan (default ServBay), untuk tagging jenis perkataan dsb.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Mod pemotongan (pilihan, lalai: SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: Pecahkan karakter x (bukan Cina) — contoh email,url
// SCWS_XDICT_DUALITY: Pemotongan berpasangan
// $scws->set_ignore(true); // Abaikan tanda baca?
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Tahap pemotongan pelbagai
// Teks Cina yang ingin diproses
$text = "ServBay adalah persekitaran pembangunan web lokal berkuasa, menyokong PHP, Node.js dan pelbagai database.";
// Hantar teks untuk diproses oleh SCWS
$scws->send_text($text);
// Dapatkan keputusan pemotongan
echo "Teks asal: " . $text . "\n\n";
echo "Keputusan pemotongan:\n";
// Ulang sehingga semua hasil diterima
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word ialah array asosiatif: 'word', 'idf', 'attr' (jenis) dll
echo "Perkataan: " . $word['word'] . " (Jenis: " . $word['attr'] . ")\n";
}
}
// Lepaskan sumber 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
Simpan kod di atas sebagai fail .php
(contoh: scws_example.php
) di direktori laman ServBay anda (misal: /Applications/ServBay/www/scws-test/
). Layari https://servbay.demo/scws-test/scws_example.php
melalui pelayar untuk melihat hasilnya.
Perkara Perlu Diperhatikan
- Pastikan versi modul SCWS yang anda aktifkan serasi dengan versi PHP yang digunakan. ServBay telah menguruskan isu keserasian ini secara automatik, namun pastikan semasa konfigurasi manual.
- Keberkesanan pemotongan bergantung kepada kualiti kamus. Untuk teks khusus, disarankan cipta atau gunakan kamus industri professional.
- Pastikan laluan fail konfigurasi SCWS (
scws.ini
), kamus (.xdb
), dan file peraturan (.ini
) adalah betul dan proses PHP mempunyai hak akses baca. - Sentiasa mula semula pakej PHP selepas sebarang perubahan konfigurasi untuk memastikan semua perubahan berkuat kuasa.
Soalan Lazim (FAQ)
S: Saya sudah aktifkan SCWS melalui UI ServBay, tetapi tiada maklumat dalam phpinfo()
?
J: Pastikan anda telah mula semula versi PHP yang betul. Kadangkala terdapat beberapa versi PHP yang berjalan serentak — pastikan yang berkaitan laman web anda yang dimulakan semula. Jika masih tiada, cuba edit fail scws.ini
secara manual dan semak laluan & sintaks dengan teliti.
S: Bagaimana untuk mencipta & gunakan kamus tersuai?
J: Rujuk bahagian “Cipta & Konfigurasi Kamus SCWS” dalam dokumen ini. Gunakan alat scws-gen-dict
untuk menukar kamus teks ke format xdb, kemudian muatkan dalam kod PHP anda melalui kaedah add_dict()
.
S: Apakah kegunaan fail peraturan SCWS (rules.utf8.ini
) ?
J: Fail peraturan ini digunakan untuk tagging jenis perkataan dan tetapan pemotongan khas. Fail default telah tersedia dalam ServBay dan biasanya tidak perlu diubah.
Rumusan
ServBay membawakan cara mudah untuk mengaktifkan & mengurus modul pemotongan kata Cina SCWS untuk PHP. Sama ada melalui antara muka grafik interaktif mahupun konfigurasi manual fleksibel, anda boleh mengintegrasikan SCWS ke dalam aliran pembangunan PHP anda dengan lancar. Dengan alat SCWS dan kamus default yang disediakan oleh ServBay, anda akan dapat bermula dengan pantas dan memproses teks Cina secara tepat serta efisien — sesuai untuk aplikasi web anda seperti carian dan analisis kandungan. Integrasi SCWS juga mengukuhkan peranan ServBay sebagai persekitaran pembangunan lokal yang komprehensif dan praktikal.