SCWS dalam ServBay: Panduan Pemasangan, Konfigurasi dan Penggunaan Pemotongan Perkataan Bahasa Cina
ServBay ialah persekitaran pembangunan web tempatan yang berkuasa dan merangkumi serta mengintegrasikan banyak alat serta perisian popular untuk pembangun. SCWS (Simple Chinese Word Segmentation) merupakan sistem pemotongan perkataan bahasa Cina yang cekap dan sangat penting semasa memproses teks Cina (seperti enjin carian, pemprosesan bahasa semulajadi, analisis kandungan dan sebagainya). ServBay telah memasang siap SCWS dan modul PHP berkaitan, jadi anda tidak perlu melalui proses pemasangan yang rumit. Artikel ini membimbing anda secara terperinci mengenai cara mengkonfigurasi dan menggunakan SCWS dalam persekitaran ServBay, meliputi penggunaan alat baris perintah dan API PHP.
Ringkasan
SCWS merupakan perpustakaan pemotongan bahasa Cina berprestasi tinggi, amat sesuai untuk senario yang memerlukan pemotongan teks Cina secara pantas dan tepat. Ia menyokong pelbagai mod pemotongan, kamus dan peraturan tersuai – menjadi alat asas untuk enjin carian Cina, cadangan kandungan, analisis teks dan banyak lagi. ServBay menyediakan integrasi SCWS berserta sambungan PHP yang telah dipra-bina, memudahkan proses penggunaan SCWS dalam persekitaran pembangunan tempatan anda.
Prasyarat
- Anda telah berjaya memasang dan menjalankan ServBay pada sistem operasi macOS.
Pemasangan & Konfigurasi
Pemasangan
Konsep asas ServBay adalah menyediakan persekitaran pembangunan yang sedia digunakan. SCWS, sebagai alat pemprosesan bahasa Cina penting, telah siap dipasang sebagai sebahagian daripada sistem ServBay. Anda tidak perlu memuat turun atau menulis binaan tambahan. Semua fail boleh laku, fail konfigurasi dan kamus berkaitan SCWS ditempatkan di direktori pemasangan ServBay, biasanya di laluan /Applications/ServBay/
.
Konfigurasi
Fail konfigurasi lalai SCWS terletak di /Applications/ServBay/etc/scws/scws.ini
dalam direktori pemasangan ServBay. Anda boleh mengubah suai fail ini mengikut keperluan untuk menyelaraskan tingkah laku pemotongan, set aksara, kamus serta peraturan SCWS.
Contoh kandungan lalai fail konfigurasi:
ini
[charset]
default = utf8
[rule]
rules = /Applications/ServBay/etc/scws/rules.ini
[dict]
dict = /Applications/ServBay/etc/scws/dict.utf8.xdb
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
[charset]
: Menentukan set aksara lalai, biasanya dikekalkan sebagaiutf8
.[rule]
: Menetapkan laluan fail peraturan pemotongan.[dict]
: Menetapkan laluan fail kamus pemotongan. Anda boleh menambah beberapa fail kamus, dipisahkan dengan koma,
.
Penggunaan Asas: Alat Baris Perintah
SCWS menyediakan alat baris perintah yang berkuasa, scws
, membolehkan anda menguji pemotongan teks atau memproses batch secara terus dari terminal. Executable scws
telah dimasukkan dalam direktori bin
ServBay dan biasanya /Applications/ServBay/bin
sudah ditambah ke PATH sistem anda, membolehkan anda terus menjalankan arahan scws
di terminal.
Contoh Pemotongan
Beberapa contoh asas penggunaan alat scws
:
Memotong Satu Rentetan
Salurkan rentetan kepada arahan scws
melalui paip:
bash
echo "这是一个中文分词的例子" | scws -i
1
Membaca Teks Dari Fail
Gunakan parameter -i
untuk menentukan fail input, dan -o
untuk output:
bash
scws -i input.txt -o output.txt
1
Menetapkan Peraturan Pemotongan
Gunakan parameter -r
untuk menetapkan laluan fail peraturan tersuai:
bash
scws -i input.txt -o output.txt -r /path/to/your/rules.ini
1
Menetapkan Kamus
Gunakan parameter -d
untuk menentukan laluan fail kamus tersuai:
bash
scws -i input.txt -o output.txt -d /path/to/your/dict.utf8.xdb
1
Penggunaan Lanjutan
Kamus Tersuai
Bagi meningkatkan ketepatan pemotongan – terutamanya untuk istilah bidang tertentu, nama orang, nama tempat dan perkataan baharu – anda boleh mencipta kamus tersuai. SCWS menggunakan format kamus xdb
yang cekap. Alat scws-gen
yang disediakan oleh ServBay boleh menukar kamus dalam format teks kepada format xdb
.
Langkah Membina Kamus Tersuai:
Cipta fail teks seperti
custom_dict.txt
. Setiap baris mengandungi satu perkataan, diikuti (pilihan) dengan satu ruang dan nilai beratnya (integer, sebagai keutamaan pemotongan).ServBay 10 Persekitaran pembangunan tempatan 8 Pemotongan perkataan Cina 9
1
2
3Gunakan alat
scws-gen
untuk menghasilkan fail kamusxdb
. Alat ini juga berada dalam direktoribin
ServBay.bashscws-gen -i custom_dict.txt -o custom_dict.xdb
1Edit bahagian
[dict]
di fail konfigurasi SCWS/Applications/ServBay/etc/scws/scws.ini
untuk menambah laluan kamus tersuai anda selepas kamus lalai, dipisahkan dengan koma.ini[dict] dict = /Applications/ServBay/etc/scws/dict.utf8.xdb,/path/to/your/custom_dict.xdb
1
2Pastikan
/path/to/your/custom_dict.xdb
ialah laluan sebenar di mana kamus anda disimpan.
Pelarasan Peraturan Pemotongan
Fail peraturan (lalai: /Applications/ServBay/etc/scws/rules.ini
) menentukan cara SCWS menangani struktur bahasa Cina yang kompleks atau memiliki kecelaruan makna. Mengubah fail ini biasanya memerlukan pengetahuan mendalam mengenai algoritma pemotongan SCWS. Untuk kebanyakan pengguna, menggunakan peraturan lalai bersama kamus tersuai sudah memadai. Jika perlu melaraskan peraturan, sila rujuk dokumentasi rasmi SCWS yang berkaitan (jika disediakan dalam pakej ServBay).
Contoh kandungan fail peraturan (biasanya mengandungi beberapa peraturan padanan corak):
ini
[rule]
# Anda boleh menambah peraturan pemotongan tersuai di sini
# Contoh: Mendefinisikan peraturan mudah
# pattern = result
1
2
3
4
2
3
4
Penggunaan API PHP
Bagi pembangun aplikasi web PHP, persekitaran PHP yang disertakan dengan ServBay sudah siap dengan sambungan SCWS. Anda tidak perlu memasang sambungan PHP secara berasingan – anda boleh mula menggunakan API SCWS dalam kod PHP anda dengan serta-merta.
Anda boleh semak sama ada sambungan SCWS telah diaktifkan menggunakan halaman phpinfo()
terbina dalam ServBay.
Contoh Penggunaan
Contoh kod PHP ringkas untuk pemotongan menggunakan SCWS API:
php
<?php
// Pastikan sambungan SCWS telah dimuatkan
if (!extension_loaded('scws')) {
die("Sambungan SCWS tidak dimuatkan.");
}
// Teks untuk pemotongan
$text = "ServBay 是一款强大的本地 Web 开发环境,支持 PHP、Node.js、Python 等多种语言,并集成了 MySQL、Nginx 等软件包。";
// Membuka instans pemotong SCWS
$sh = scws_open();
// Tetapkan set aksara – selarikan dengan pengekodan teks anda
scws_set_charset($sh, 'utf8');
// Tetapkan laluan kamus dan fail peraturan
// Pastikan ini adalah laluan sebenarnya dalam persekitaran ServBay
$dict_path = '/Applications/ServBay/etc/scws/dict.utf8.xdb';
$rule_path = '/Applications/ServBay/etc/scws/rules.ini';
if (!file_exists($dict_path)) {
die("Fail kamus SCWS tidak dijumpai: " . $dict_path);
}
if (!file_exists($rule_path)) {
die("Fail peraturan SCWS tidak dijumpai: " . $rule_path);
}
scws_set_dict($sh, $dict_path);
scws_set_rule($sh, $rule_path);
// Hantar teks ke instans SCWS untuk pemotongan
scws_send_text($sh, $text);
// Dapatkan hasil pemotongan
echo "Teks asal: " . $text . "\n";
echo "Hasil pemotongan:\n";
// Dapatkan dan paparkan setiap hasil pemotongan
// $res adalah tatasusunan, setiap elemen adalah hasil pemotongan (perkataan, kelas, dsb.)
while ($res = scws_get_result($sh)) {
foreach ($res as $word_info) {
// Papar perkataan sahaja
echo $word_info['word'] . " ";
// Jika perlu, anda juga boleh memaparkan maklumat lain, seperti:
// echo "Perkataan: " . $word_info['word'] . ", Kelas: " . $word_info['attr'] . ", Berat: " . $word_info['idf'] . "\n";
}
}
echo "\n";
// Tutup instans SCWS dan bebaskan sumber
scws_close($sh);
?>
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
Anda boleh menyimpan kod ini sebagai fail .php
(cth. segment_test.php
) dan letakkan di direktori root laman web ServBay, /Applications/ServBay/www/servbay.demo/
(andaian anda mempunyai konfigurasi tapak servbay.demo
). Seterusnya, akses fail ini melalui pelayar web atau jalankan dengan PHP CLI untuk melihat hasil pemotongan.
Fungsi-fungsi Penting
Beberapa fungsi teras dalam sambungan SCWS PHP:
scws_open()
: Inisialisasi dan buka instans pemotong SCWS. Berjaya akan pulangkan pemegang sumber; gagal akan pulangkanfalse
.scws_set_charset($sh, $charset)
: Tetapkan set aksara bagi instans$sh
.scws_set_dict($sh, $dict_path, $mode = SCWS_XDICT_TXT)
: Tetapkan laluan kamus untuk instans$sh
.$mode
menujukkan format kamus,SCWS_XDICT_TXT
untuk teks asal (tidak lagi digalakkan, gunakanxdb
). Secara am, cukup tetapkan$dict_path
ke failxdb
.scws_set_rule($sh, $rule_path)
: Tetapkan laluan fail peraturan untuk instans$sh
.scws_send_text($sh, $text)
: Hantar teks$text
kepada instans$sh
untuk pemprosesan.scws_get_result($sh)
: Dapatkan hasil pemotongan daripada instans$sh
. Setiap panggilan memulang tatasusunan maklumat perkataan, ulang sehinggafalse
.scws_close($sh)
: Tutup instans$sh
dan bebaskan sumber.
Untuk fungsi-fungsi lanjutan (cth. melangkau tanda baca, menetapkan mod, mendapatkan berat perkataan dan lain-lain), rujuk dokumentasi rasmi sambungan SCWS PHP.
Soalan Lazim (FAQ)
1. Bagaimana jika hasil pemotongan SCWS tidak tepat?
- Penyelesaian: Periksa laluan fail kamus (
dict
) dan peraturan (rule
) di dalam fail konfigurasi/Applications/ServBay/etc/scws/scws.ini
. Pastikan semua fail wujud dan boleh dibaca. Untuk teks bidang khusus atau perkataan baharu, bina kamus tersuai (gunascws-gen
untuk hasilkanxdb
) dan tambah laluan kamus anda dalam konfigurasi. Pelarasan berat kamus atau peraturan pemotongan juga boleh membantu, tapi ia memerlukan kefahaman yang lebih mendalam.
2. SCWS perlahan atau prestasi pemotongan tidak memuaskan?
- Penyelesaian: Pastikan SCWS menggunakan kamus dalam format
xdb
cekap, bukan format teks asal. Kamus dalam bentukxdb
dioptimumkan untuk kelajuan pemuatan dan carian. Tetapkan laluan kamus ke failxdb
dalam konfigurasi. Untuk teks yang sangat besar, pertimbangkan pemprosesan secara berketul.
3. Alat baris perintah SCWS tidak boleh dijalankan atau ‘command not found’?
- Penyelesaian: Lazimnya, ini kerana direktori fail boleh laku ServBay tidak ditambah ke pembolehubah PATH sistem. Cuba jalankan dengan laluan penuh seperti
/Applications/ServBay/bin/scws -i ...
. Atau, tambahkan/Applications/ServBay/bin
ke PATH dalam fail konfigurasi shell anda (seperti~/.bash_profile
,~/.zshrc
), kemudian muat semula atau mulakan semula terminal.
4. scws_open()
gagal atau fungsi tiada dalam PHP?
- Penyelesaian: Ini menandakan sambungan PHP SCWS belum dimuat dalam persekitaran PHP ServBay anda. Sahkan versi PHP yang digunakan melalui panel kawalan ServBay dan semak
phpinfo()
untuk memastikan sambunganscws
disenaraikan dan diaktifkan. Jika tidak diaktifkan, semak dalam fail konfigurasi PHP (php.ini
) sama ada terdapat barisextension=scws.so
atau seumpamanya, dan pastikan failscws.so
berada dalam direktori sambungan PHP (sudah diprapasang oleh ServBay). Jika masalah berterusan, cuba mulakan semula servis ServBay.
Rumusan
SCWS merupakan sistem pemotongan perkataan Cina yang berkuasa dan cekap. Dengan pakej perisian serta ekstensi PHP yang diintegrasikan ServBay, pembangunan tempatan pada macOS kini membolehkan anda memasang, mengkonfigurasi, dan menggunakan SCWS dengan mudah – sama ada melalui alat baris perintah untuk pemprosesan teks atau fungsi berasaskan PHP untuk pemotongan dinamik. Ikuti panduan ini untuk bermula dan manfaatkan keupayaan SCWS dalam projek anda bagi mempertingkatkan pemprosesan teks Cina.