ServBay’de SCWS PHP Modülü Nasıl Etkinleştirilir ve Yapılandırılır
ServBay, macOS için özel olarak tasarlanmış güçlü bir yerel web geliştirme ortamıdır. PHP, Node.js, Python, Go, Java gibi birçok dil çalışma zamanı ile MySQL, PostgreSQL, MongoDB, Redis gibi veritabanlarını entegre şekilde sunar ve Caddy ile Nginx gibi web sunucularını destekler. PHP uygulamalarında Çince metin işlemeye ihtiyaç duyan geliştiriciler için ServBay, yüksek performanslı SCWS (Simple Chinese Word Segmentation) Çincedeki kelime bölme modülünü öntanımlı olarak sunar ve kullanıma almak oldukça kolaydır.
Bu dokümanda ServBay’de SCWS PHP uzantısının nasıl etkinleştirileceği, sözlük dosyasının nasıl yapılandırılacağı ve temel kullanımla ilgili örnek kodları adım adım bulabilirsiniz.
SCWS Modülüne Genel Bakış
SCWS, yüksek performansı ve doğruluğuyla bilinen açık kaynaklı bir Çince kelime ayırma motorudur. Sözlük tabanlı yaklaşımı ve istatistiksel modelleri bir araya getirerek Çince metinleri hızlı ve doğru bir şekilde segmente edebilir. Özellikle Çince arama motoru inşa etmek, metin madenciliği, içerik analizi, anahtar kelime çıkarımı ve sözcük türü etiketleme gibi kullanım senaryoları için oldukça uygundur.
Temel Özellikler
- Yüksek performanslı segmentasyon: SCWS, optimize algoritmaları ile büyük hacimli Çince metinleri hızlıca işler.
- Yüksek doğruluk oranı: Sözlük ve istatistiksel modeli birleştirerek kelime bölme görevlerinde yüksek başarı sunar.
- Zengin fonksiyonlar: Temel kelime bölmenin yanı sıra anahtar kelime çıkarımı, sözcük türü etiketleme gibi gelişmiş özellikler de desteklenir.
- Kolay entegrasyon: Basit API arayüzü ile geliştiricilere PHP uygulamalarına kolayca entegre imkânı sağlar.
- Açık kaynak ve ücretsiz: SCWS açık kaynaklıdır, ücretsizdir ve ihtiyaçlara göre özelleştirilebilir.
ServBay’de Önceden Yüklenmiş SCWS Sürümü
ServBay, birden fazla PHP sürümünü destekler ve her bir sürüme uygun SCWS modülünü önceden yükler. Bu dokümanın hazırlandığı tarihte PHP 5.6’dan PHP 8.4’e kadar olan tüm sürümlerde SCWS 1.2.3 uzantısı hazır gelmektedir.
SCWS Modülünü Nasıl Etkinleştirirsiniz
Varsayılan olarak, ServBay’de SCWS modülü devre dışıdır. Modülü etkinleştirmenin iki temel yolu bulunur: ServBay’in grafik arayüzünü kullanmak veya yapılandırma dosyasını manuel olarak düzenlemek.
Tavsiye Edilen Yöntem: ServBay Arayüzünden Etkinleştirme
En kolay ve hızlı yol aşağıdaki adımları izlemektir:
- ServBay ana arayüzünü açın.
- Sol kenar çubuğundan Diller (Languages) bölümüne tıklayın, ardından PHP’yi seçin.
- Sağda listelenen PHP sürümlerinden SCWS’yi etkinleştirmek istediğiniz sürümü bulun (örneğin,
PHP 8.4
). - İlgili PHP sürümünün sağındaki Eklentiler (Extensions) butonuna tıklayın.
- Açılan eklenti listesinden
SCWS
modülünü bulun. SCWS
’nin solundaki anahtarı açık konuma getirin (genellikle yeşil olur).- Pencerenin altındaki Kaydet (Save) butonuna tıklayın.
- ServBay, değişikliklerin uygulanabilmesi için PHP paketini yeniden başlatmanız gerektiğini bildirecek. Yeniden Başlat (Restart) butonuna tıklayın.
Bu adımları tamamladığınızda, seçtiğiniz PHP sürümü için SCWS modülü başarıyla etkinleşmiş olur.
Manuel Yapılandırma Dosyası ile Etkinleştirme (Gelişmiş ve Sorun Giderme için)
Daha hassas kontrol veya sorun gidermek için PHP yapılandırma dosyasını elle düzenleyebilirsiniz:
Yapılandırma dosyasını bulun: Öncelikle ilgili PHP sürümünün
conf.d
klasörüne ulaşın. SCWS’nin ayarları burada bulunanscws.ini
dosyasındadır. Yol genellikle şu şekildedir:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Burada
X.Y
ifadesini, örneğin8.4
gibi, kendi PHP sürümünüz ile değiştirin.scws.ini
dosyasını düzenleyin: Bir metin düzenleyicisiylescws.ini
dosyasını açın ve aşağıdaki satırları bulun: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
5Burada
extension = scws.so
satırının başındaki;
karakterini kaldırın: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(İsteğe bağlı) Buradan varsayılan karakter seti ve sözlük yolu da ayarlayabilirsiniz; fakat genellikle esneklik için PHP kodunuzda dinamik olarak ayarlamanız tavsiye edilir. Eğer buradan da ayarlayacaksanız, ilgili satırlardaki
;
işaretini kaldırıp değerleri güncelleyin. Sözlüğünüz UTF-8 ise örnek: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
5Dosyayı kaydedip kapatın.
PHP paketini yeniden başlatın: ServBay ana arayüzüne dönün, Yazılım Paketleri (Packages) bölümüne gidin, ayarını değiştirdiğiniz PHP sürümünü bulun (örn., PHP 8.4) ve sağında yer alan tekrar başlatma düğmesine (genellikle yuvarlak bir ok simgesi) tıklayın.
SCWS’nin Yüklenip Yüklenmediğini Doğrulama
Modül etkinleştirildikten sonra yüklenip yüklenmediğini doğrulamak önemlidir. En yaygın yol, PHP’nin phpinfo()
çıktısına bakmaktır:
- ServBay’in önerilen web kök dizini
/Applications/ServBay/www
altında, test amaçlı yeni bir alt klasör oluşturun; örneğinscws-test
. - Bu klasörde (
/Applications/ServBay/www/scws-test
)phpinfo.php
adlı bir dosya oluşturun. - Aşağıdaki PHP kodunu dosyaya yapıştırın:php
<?php phpinfo(); ?>
1
2
3 - ServBay üzerinde, web sunucunuzun (ör. Caddy veya Nginx) yapılandırılmış ve çalışır olduğundan, ayrıca
/Applications/ServBay/www
dizinini erişilebilir kıldığından emin olun. ServBay, öntanımlı olarakservbay.demo
alan adını/Applications/ServBay/www
’ya bağlar. - Tarayıcıdan
https://servbay.demo/scws-test/phpinfo.php
adresini ziyaret edin. - Açılan PHP bilgi sayfasında "SCWS" başlıklı bir bölüm arayın. SCWS ile ilgili yapılandırma ve bilgi (örn., sürüm numarası, ayarlar) görüyorsanız, modül başarıyla yüklenmiş demektir.
(Not: Görsel yolu örnektir, lütfen gerçek ServBay belgelerinde belirtilen görselleri kontrol edin.)
SCWS Sözlüğü Oluşturma ve Yapılandırma
SCWS, sözlük temelli bir kelime bölme motorudur ve segmentasyon kalitesi büyük oranda kullanılan sözlüğe bağlıdır. ServBay, SCWS’nin öntanımlı sözlüğü ve kural dosyasını /Applications/ServBay/etc/scws
klasöründe sunar. Ayrıca kendi sözlüklerinizi de oluşturabilir veya kullanabilirsiniz.
SCWS Sözlük Dosyası Formatı
SCWS, düz metin formatında ve xdb uzantılı ikili formatta sözlük dosyalarını destekler. Daha hızlı yükleme ve daha az bellek kullanımı için xdb formatı önerilir.
Düz metin sözlüğü formatı şöyledir; her satır bir kelime olup ardından isteğe bağlı olarak kelimenin sıklığı (sayı, büyüdükçe kelime daha yaygın kabul edilir) ve sözcük türü gelir:
Kelime1 [Sıklık1] [Tür1]
Kelime2 [Sıklık2] [Tür2]
...
2
3
Örnek:
Yapay Zeka 1000 n
Doğal Dil İşleme 800 n
ServBay 500 nz
2
3
Özel kelime listenizi böylece bir metin dosyasına (örn., my_dict.txt
) kaydedin. Dosya kodlamasının (önerilen: UTF-8) beklentinizle uyumlu olduğundan emin olun.
xdb Formatına Sözlük Dosyası Dönüştürme
ServBay, SCWS’nin scws-gen-dict
aracını öntanımlı olarak sağlar; bu araç, düz metin sözlük dosyalarını xdb formatına dönüştürmek için kullanılır.
- macOS’ta Terminal uygulamasını açın.
cd
komutu ile ServBay’in bin klasörüne girin veya doğrudan tam yolu kullanın. Araç genellikle ServBay’in bin dizinindedir:bashBuradaki/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
yolunu kendi metin sözlüğünüzle değiştirin.-o
parametresi çıktı xdb dosyasının yolunu ve adını belirtir, genellikle/Applications/ServBay/etc/scws
dizinini kullanmak önerilir.-c utf8
ile giriş dosyasının kodlaması tanımlanır.
SCWS’ye Sözlük Dosyasını Tanıtmak
xdb dosyasını oluşturduktan sonra, PHP kodunuzda SCWS’nin bu sözlüğü kullanmasını sağlayabilirsiniz:
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Karakter setini belirtin, sözlük kodlamasıyla aynı olmalıdır
// Ana sözlük yolu, ServBay’in mevcut xdb’si veya sizin oluşturduğunuz xdb olabilir
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Eğer birden fazla sözlük eklemek isterseniz, aşağıdaki komutu kullanın
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT, kullanıcı sözlüğü eklemesini belirtir
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Kural dosyası, tür etiketleme vb. için, ServBay’de hazır sunulur
// ... Kelime bölme işlemlerine devam edin ...
?>
2
3
4
5
6
7
8
9
10
11
set_dict()
fonksiyonu ana (büyük) sözlüğü tanımlar — genellikle SCWS’nin resmi büyük sözlüğüdür. add_dict()
ise kullanıcıya özel sözlüklerin eklenmesini sağlar. SCWS_XDICT_TXT
sabiti, eklenenin kullanıcıya özel olduğuna işaret eder.
SCWS Kullanım Örneği
SCWS modülünü etkinleştirdikten ve sözlüğü yapılandırdıktan sonra, PHP kodunuzda SCWS fonksiyonlarını çağırarak kelime bölme işlemlerini gerçekleştirebilirsiniz. Temel bir örnek:
<?php
// SCWS eklentisinin yüklü olup olmadığını kontrol edin
if (!extension_loaded('scws')) {
die('SCWS eklentisi yüklenmemiş.');
}
// SCWS nesnesini başlatın
$scws = scws_new();
if (!$scws) {
die('SCWS başlatılamadı.');
}
// Karakter kodlamasını ayarlayın (metin ve sözlükle uyumlu olmalı)
$scws->set_charset('utf8');
// Sözlük dosya yolunu belirtin (ServBay öntanımlı yolu)
// set_dict() ana sözlüğü ayarlar
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() kullanıcıya özel ek sözlükleri dahil edebilir
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Kural dosyası yolu (ServBay’deki öntanımlı yol), tür etiketleme vb. için
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Bölme modu ayarlama (isteğe bağlı, varsayılan: SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: x karakterlerini (Çince olmayan karakterler) ayırır, örn. email, url vb.
// SCWS_XDICT_DUALITY: bileşik (ikili) segmentasyon
// $scws->set_ignore(true); // Noktalama işaretlerini yok sayacak mı?
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Bileşik kelime bölme seviyesi
// Bölünecek Çinçe metin
$text = "ServBay, PHP, Node.js ve çeşitli veritabanlarını destekleyen güçlü bir yerel web geliştirme ortamıdır.";
// Metni SCWS’ye gönderin
$scws->send_text($text);
// Segmentasyon sonuçlarını alın
echo "Orijinal metin: " . $text . "\n\n";
echo "Segmentasyon sonuçları:\n";
// Tüm segmentasyon sonuçlarını döngüyle alın
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word, 'word', 'idf', 'attr' (sözcük türü) gibi bilgileri içeren bir dizi
echo "Kelime: " . $word['word'] . " (Tür: " . $word['attr'] . ")\n";
}
}
// SCWS kaynaklarını kapatın
$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
Bu kodu, örneğin scws_example.php
adında kaydedip ServBay’in web dizinine (ör. /Applications/ServBay/www/scws-test/
) koyun. Ardından tarayıcıdan https://servbay.demo/scws-test/scws_example.php
adresine giderek segmentasyon sonuçlarını görüntüleyebilirsiniz.
Dikkat Edilmesi Gerekenler
- SCWS modülünün etkinleştirilen sürümünün kullandığınız PHP sürümüyle uyumlu olduğuna emin olun. ServBay bu uyumluluğu otomatik olarak sağlasa da, manuel yapılandırmalarda dikkat edilmelidir.
- SCWS segmentasyon kalitesi sözlük kalitesiyle doğrudan ilişkilidir. Belirli alanlardaki metinler için, uygun veya uzmanlık gerektiren sektör sözlükleri kullanmanız önerilir.
- SCWS yapılandırma dosyası (
scws.ini
), sözlük dosyası (.xdb
) ve kural dosyasının (.ini
) yolunun doğru olduğundan ve PHP’nin bu dosyalara okuma izni olduğundan emin olun. - PHP yapılandırmasında değişiklik yaptıktan sonra ilgili PHP paketini yeniden başlatmayı unutmayın.
Sıkça Sorulan Sorular (SSS)
S: ServBay arayüzünden SCWS’yi etkinleştirdim ama phpinfo()
da göremiyorum?
C: Doğru PHP paketini yeniden başlattığınızdan emin olun. Aynı anda birden fazla PHP sürümü çalışabilir; web sitenizle ilişkili olanı yeniden başlatmalısınız. Sorun devam ederse, scws.ini
dosyasını elle düzenleyip dosya yolu ve sözdizimi hatalarını kontrol edin.
S: Özel sözlüğü nasıl yaratırım ve kullanırım?
C: Bu dokümanın “SCWS Sözlüğü Oluşturma ve Yapılandırma” bölümünü takip edin; scws-gen-dict
aracıyla düz metin sözlüğünüzü xdb’ye dönüştürüp, PHP kodunda add_dict()
ile kullanın.
S: SCWS’nin kural dosyası (rules.utf8.ini
) ne işe yarar?
C: Kural dosyası, sözcük türü etiketleme ve bazı özel segmentasyon kuralları için kullanılır. ServBay öntanımlı bir kural dosyasıyla gelir, genellikle değiştirmenize gerek yoktur.
Sonuç
ServBay, geliştiricilere SCWS PHP Çince kelime segmentasyon modülünü etkinleştirmek ve yönetmek için oldukça pratik bir yol sunar. İster sezgisel grafik arayüzüyle ister esnek manuel yapılandırma yöntemiyle, SCWS’yi PHP geliştirme sürecinize kolayca entegre edebilirsiniz. ServBay’in sağladığı hazır SCWS araçları ve varsayılan sözlüklerle hızla başlayabilir, SCWS ile Çince metni hızlı ve doğru şekilde işleyerek web uygulamalarınız (arama, içerik analizi vb.) için güçlü bir dil desteği sağlayabilirsiniz. SCWS’nin ServBay’in zengin yazılım ekosistemine entegre olması, ServBay’i kapsamlı ve kullanışlı bir yerel geliştirme ortamı haline getirmektedir.