SCWS PHP Modul in ServBay aktivieren und konfigurieren
ServBay ist eine leistungsstarke lokale Webentwicklungsumgebung für macOS und Windows, die unter anderem Laufzeiten für PHP, Node.js, Python, Go, Java sowie Datenbanken wie MySQL, PostgreSQL, MongoDB, Redis und Webserver wie Caddy und Nginx mitbringt. Entwickler, die chinesische Texte in PHP-Anwendungen verarbeiten möchten, profitieren von dem vorinstallierten SCWS (Simple Chinese Word Segmentation) Modul, das sich besonders einfach aktivieren lässt.
In diesem Leitfaden wird Schritt für Schritt erklärt, wie Sie die SCWS PHP-Erweiterung in ServBay aktivieren, Wörterbuchdateien konfigurieren und anhand von Beispielcode grundlegende Anwendungsweisen kennenlernen.
Überblick zum SCWS Modul
SCWS ist eine Open-Source-Engine für chinesische Wortsegmentierung, bekannt für hohe Leistung und Genauigkeit. Die Kombination aus Wörterbuchabgleich und statistischen Modellen ermöglicht schnelle und präzise Verarbeitung chinesischer Texte – ideal für Suchmaschinen, Text Mining, Inhaltsanalyse, Schlüsselwort-Extraktion und POS-Tagging.
Hauptmerkmale
- Hochleistungs-Segmentierung: SCWS nutzt optimierte Algorithmen, um große Mengen chinesischer Textdaten effizient zu verarbeiten.
- Hohe Genauigkeit: Dank Wörterbuch und Statistikmodell erzielt SCWS eine sehr präzise Wortsegmentierung.
- Umfangreiche Funktionen: Neben Basissegmentierung unterstützt SCWS unter anderem Schlüsselwort-Extraktion und POS-Tagging.
- Einfache Integration: Mit einem klar strukturierten API ist die Einbindung in PHP-Apps besonders unkompliziert.
- Open Source und kostenfrei: SCWS ist kostenlos nutzbar und kann nach eigenen Anforderungen angepasst werden.
Vorgefertigte SCWS-Versionen in ServBay
ServBay unterstützt mehrere PHP-Versionen und installiert für jede die passende Version des SCWS Moduls. Zum Zeitpunkt dieses Artikels ist SCWS 1.2.3 für PHP 5.6 bis PHP 8.4 verfügbar und vorinstalliert.
SCWS-Modul aktivieren
Standardmäßig ist das SCWS-Modul in ServBay deaktiviert. Die Aktivierung erfolgt am einfachsten über die ServBay-Benutzeroberfläche, kann aber auch manuell via Konfigurationsdatei erfolgen.
Empfohlene Methode: Aktivierung über die ServBay-Oberfläche
So gehen Sie vor:
- Öffnen Sie die ServBay-Hauptoberfläche.
- Klicken Sie im linken Navigationsmenü auf Languages und wählen Sie PHP.
- Suchen Sie rechts in der PHP-Versionsliste die gewünschte Version (z. B.
PHP 8.4
). - Klicken Sie auf den Extensions-Button rechts neben der Version.
- Suchen Sie im erscheinenden Dialog nach dem Modul
SCWS
. - Aktivieren Sie SCWS per Schieberegler (der Schalter wird in der Regel grün).
- Klicken Sie unten auf Save.
- ServBay fordert Sie auf, das PHP-Paket neu zu starten, um die Änderungen zu übernehmen. Klicken Sie auf Restart.
Nach diesen Schritten ist das SCWS Modul für Ihre gewählte PHP-Version aktiviert.
Erweiterte Methode: Manuelle Konfigurationsdatei-Bearbeitung
Diese Methode empfiehlt sich für erfahrene Nutzer oder bei Problemlösung:
Lokalisieren Sie die Konfigurationsdatei: Finden Sie das
conf.d
-Verzeichnis Ihrer PHP-Version. Das SCWS-Modul wird über die Dateiscws.ini
im entsprechenden Verzeichnis gesteuert:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Ersetzen Sie
X.Y
durch die konkrete PHP-Version, z. B.8.4
.Bearbeiten Sie die
scws.ini
: Öffnen Sie die Datei mit einem Texteditor. Suchen Sie folgenden Abschnitt:ini[scws] ; Kommentieren Sie die folgende Zeile aus, um SCWS zu aktivieren ;extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5Entfernen Sie das Semikolon vor
extension = scws.so
, sodass es so aussieht:ini[scws] ; Kommentieren Sie die folgende Zeile aus, um SCWS zu aktivieren extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5(Optional) Hier können Sie Charset und Wörterbuchpfad einstellen, es wird aber empfohlen, dies dynamisch im PHP-Code zu tun. Wenn Sie hier Anpassungen vornehmen, entfernen Sie das Semikolon und ändern Sie beispielsweise für UTF-8:
ini[scws] ; Kommentieren Sie die folgende Zeile aus, um SCWS zu aktivieren extension = scws.so scws.default.charset = utf8 scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5Speichern und schließen Sie die Datei.
PHP-Paket neu starten: Öffnen Sie die ServBay-Oberfläche, gehen Sie zu Packages, suchen Sie die entsprechende PHP-Version (z. B. PHP 8.4) und klicken Sie rechts auf das Restart-Symbol (meist ein runder Pfeil).
Überprüfung, ob das SCWS-Modul geladen ist
Um sicherzustellen, dass das Modul richtig aktiviert wurde, prüfen Sie am besten die Ausgabe von phpinfo()
:
- Erstellen Sie im vorgeschlagenen ServBay-Webverzeichnis
/Applications/ServBay/www
einen neuen Unterordner, z. B.scws-test
. - Legen Sie in
/Applications/ServBay/www/scws-test
eine Datei namensphpinfo.php
an. - Kopieren Sie folgenden PHP-Code in die Datei:php
<?php phpinfo(); ?>
1
2
3 - Stellen Sie sicher, dass Ihr ServBay-Webserver (z. B. Caddy oder Nginx) richtig läuft und auf das Verzeichnis
/Applications/ServBay/www
zugreifen kann. Standardmäßig ist die Domainservbay.demo
entsprechend eingerichtet. - Rufen Sie im Browser
https://servbay.demo/scws-test/phpinfo.php
auf. - Suchen Sie im PHP-Informationsfenster nach dem Abschnitt "SCWS". Finden Sie dort Versionsinfos und Konfigurationsoptionen, ist das Modul vollständig geladen.
(Hinweis: Pfad zum Bild ist ein Beispiel; nutzen Sie die reale ServBay-Dokumentation für Bilder)
SCWS-Wörterbücher erstellen und konfigurieren
Da SCWS die Segmentierung auf Wörterbüchern basiert, hängt die Genauigkeit vom verwendeten Wörterbuch ab. ServBay stellt im Verzeichnis /Applications/ServBay/etc/scws
Standardwörterbücher und Regeldateien bereit. Sie können auch eigene Wörterbücher erstellen oder einbinden.
Format von SCWS-Wörterbuchdateien
SCWS unterstützt einfache Textdateien und das effiziente xdb-Binärformat (Empfohlen, wegen schnellerer Ladezeiten und geringerer Speicherlast).
Das Textformat sieht etwa so aus (pro Zeile ein Eintrag, optional mit Häufigkeit und Wortart):
Wort1 [Häufigkeit1] [Wortart1]
Wort2 [Häufigkeit2] [Wortart2]
...
1
2
3
2
3
Zum Beispiel:
Künstliche Intelligenz 1000 n
Verarbeitung natürlicher Sprache 800 n
ServBay 500 nz
1
2
3
2
3
Speichern Sie Ihre individuellen Begriffe als Textdatei, z. B. my_dict.txt
. Achten Sie auf das Encoding (UTF-8 wird empfohlen).
xdb Wörterbuchdatei generieren
ServBay enthält das SCWS Tool scws-gen-dict
, mit dem Sie Textwörterbücher ins xdb-Format umwandeln.
- Öffnen Sie das Terminal unter macOS.
- Navigieren Sie mit
cd
zum ServBay-Bin-Ordner oder verwenden Sie den vollständigen Pfad zum Tool:bashErsetzen Sie/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
durch den korrekten Pfad zur Textdatei. Mit-o
legen Sie Ausgabepfad und Namen der xdb-Datei fest (Platzierung im Standardverzeichnis wird empfohlen).-c utf8
gibt das Encoding an.
Wörterbuch in SCWS konfigurieren
Nachdem Sie die xdb-Datei erzeugt haben, spezifizieren Sie im PHP-Code das Wörterbuch für SCWS:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Zeichenkodierung, passend zum Wörterbuch
// Pfad zum Hauptwörterbuch (Standard von ServBay oder eigenes xdb)
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Sie können weitere Wörterbücher anhängen
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT = User-Dictionary
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Regeldatei für POS-Tagging, mitgeliefert von ServBay
// ... Folgende Segmentierungsbefehle ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Mit set_dict()
wählen Sie das Hauptwörterbuch, meist das große SCWS-Standardwörterbuch. Über add_dict()
fügen Sie benutzerdefinierte Vokabellisten hinzu. Das Argument SCWS_XDICT_TXT
kennzeichnet das User-Wörterbuch.
Beispiel: SCWS im Einsatz
Nach Load und Konfiguration können Sie SCWS in PHP zur Wortsegmentierung verwenden. Hier ein einfaches Beispiel:
php
<?php
// Prüfen, ob SCWS geladen ist
if (!extension_loaded('scws')) {
die('SCWS extension is not loaded.');
}
// SCWS Objekt initialisieren
$scws = scws_new();
if (!$scws) {
die('Failed to initialize SCWS.');
}
// Zeichencodierung setzen (muss zu Text und Wörterbuch passen)
$scws->set_charset('utf8');
// Wörterbuchpfad (empfohlen: Standardpfad ServBay)
// set_dict() für Hauptwörterbuch
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() für benutzerdefinierte Vokabeln
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Pfad zur Regeldatei (ServBay-Standard), für Wortarten etc.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Segmentierungsmodus festlegen (optional, Standard ist SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: trennt x-Zeichen (Nicht-Chinesisch), z. B. E-Mail, URL usw.
// SCWS_XDICT_DUALITY: Dualitätssegmentierung (Bigramm)
// $scws->set_ignore(true); // Satzzeichen ignorieren
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Stufe der Mehrwort-Segmentierung
// Chinesischer Beispieltext
$text = "ServBay ist eine leistungsstarke lokale Webentwicklungsumgebung, unterstützt PHP, Node.js und diverse Datenbanken.";
// Text zur Segmentierung an SCWS senden
$scws->send_text($text);
// Ausgabe der Ergebnisse
echo "Originaltext: " . $text . "\n\n";
echo "Segmentierungsergebnis:\n";
// Alle Segmentierungsergebnisse ausgeben
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word ist ein Array mit 'word', 'idf', 'attr' (Wortart) u. a.
echo "Wort: " . $word['word'] . " (Wortart: " . $word['attr'] . ")\n";
}
}
// Ressourcen freigeben
$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
Speichern Sie diesen Beispielcode als .php
-Datei (z. B. scws_example.php
) im ServBay-Webverzeichnis (z. B. /Applications/ServBay/www/scws-test/
). Über den Browseraufruf https://servbay.demo/scws-test/scws_example.php
sehen Sie das Segmentierungsergebnis.
Hinweise
- Vergewissern Sie sich, dass die Version des SCWS-Moduls zur verwendeten PHP-Version passt. ServBay stellt Kompatibilität her, bei manueller Konfiguration sollten Sie darauf achten.
- Die Segmentierungsleistung hängt stark vom verwendeten Wörterbuch ab. Für spezielle Textbereiche empfiehlt sich ein branchenspezifisches Wörterbuch.
- Prüfen Sie, ob Pfade zu Konfigurationsdatei (
scws.ini
), Wörterbüchern (.xdb
) und Regeln (.ini
) stimmen und der PHP-Prozess auf die Dateien zugreifen kann. - Nach Änderungen an PHP-Konfigurationen muss das entsprechende PHP-Paket neugestartet werden, damit die Änderungen greifen.
FAQ (Häufige Fragen)
Q: Ich habe SCWS über die ServBay UI aktiviert, sehe es aber nicht in phpinfo()
?
A: Überprüfen Sie, ob Sie das passende PHP-Paket neugestartet haben. Es laufen ggf. mehrere PHP-Versionen – starten Sie die Version neu, die Ihr Webprojekt verwendet. Tritt das Problem weiterhin auf, prüfen Sie die scws.ini
-Datei und deren Pfad sowie auf Syntaxfehler.
Q: Wie erstelle und verwende ich ein eigenes Wörterbuch?
A: Orientieren Sie sich am Abschnitt „SCWS-Wörterbuch erstellen und konfigurieren“. Wandeln Sie Ihre Textliste mit dem Tool scws-gen-dict
ins xdb-Format um und laden Sie die Datei in Ihrem PHP-Code mit add_dict()
.
Q: Wozu dient die SCWS-Regeldatei (rules.utf8.ini
)?
A: Hiermit werden speziell POS-Tags und Segmentierungsregeln festgelegt. ServBay liefert eine Standardregeldatei mit, die meist unverändert genutzt werden kann.
Zusammenfassung
ServBay macht die Aktivierung und Verwaltung des SCWS PHP-Moduls zur chinesischen Wortsegmentierung ausgesprochen einfach. Über die benutzerfreundliche Oberfläche oder manuelle Konfiguration können Sie SCWS mühelos in Ihren PHP-Workflow integrieren. Mit den vorinstallierten Werkzeugen und Wörterbüchern sind Sie sofort startklar und können von der effizienten und präzisen Bearbeitung chinesischer Texte profitieren – etwa für Suchfunktionen oder Contentanalysen Ihrer Webanwendung. Als Teil des umfangreichen Software-Ökosystems von ServBay erweitert SCWS die Funktionsvielfalt und unterstreicht die Praxistauglichkeit von ServBay als lokale Entwicklungsumgebung.