Aktivieren und Konfigurieren des SCWS PHP Moduls in ServBay
ServBay ist eine leistungsfähige lokale Web-Entwicklungsumgebung speziell für macOS, die PHP, Node.js, Python, Go, Java und viele weitere Laufzeitumgebungen sowie Datenbanken wie MySQL, PostgreSQL, MongoDB, Redis und Webserver wie Caddy und Nginx integriert. Speziell für Entwickler:innen, die in PHP-Anwendungen chinesische Texte verarbeiten möchten, stellt ServBay das performante Modul SCWS (Simple Chinese Word Segmentation) bereit, das einfach aktiviert werden kann.
In dieser Anleitung erfahren Sie, wie Sie die SCWS PHP-Erweiterung in ServBay aktivieren, Wörterbuchdateien konfigurieren und anhand von Beispielcode die grundlegende Nutzung demonstrieren.
Überblick über das SCWS-Modul
SCWS ist eine Open-Source-Engine zur chinesischen Wortsegmentierung, bekannt für ihre hohe Performance und Genauigkeit. Das System kombiniert Wörterbuchabgleich mit statistischen Modellen und ermöglicht so eine schnelle und präzise Segmentierung chinesischer Texte. Es ist hervorragend geeignet für Suchmaschinen, Text Mining, Content-Analyse, Keyword-Extraktion und Part-Of-Speech-Tagging.
Hauptmerkmale
- Hohe Performance: Dank optimierter Algorithmen verarbeitet SCWS auch große Mengen chinesischer Texte effizient.
- Hohe Genauigkeit: Mit der Kombination aus Wörterbüchern und Statistikmodellen erzielt SCWS exzellente Ergebnisse.
- Vielfältige Funktionen: Neben Basis-Segmentierung werden auch Keyword-Extraktion und Part-of-Speech-Tagging unterstützt.
- Einfache Integration: Übersichtliche APIs ermöglichen eine unkomplizierte Integration in PHP-Anwendungen.
- Open Source & Kostenlos: SCWS steht als Open-Source-Software zur freien Verfügung und kann frei angepasst werden.
SCWS-Versionen in ServBay
ServBay unterstützt verschiedene PHP-Versionen und liefert für jede Version das passende SCWS-Modul mit aus. Stand dieses Dokuments ist die SCWS 1.2.3 Erweiterung für PHP 5.6 bis PHP 8.4 bereits vorinstalliert.
Wie aktiviere ich das SCWS-Modul?
Standardmäßig ist das SCWS-Modul in ServBay deaktiviert. Es gibt zwei Hauptmethoden zur Aktivierung: Über die grafische Oberfläche von ServBay oder durch manuelle Anpassung der Konfiguration.
Empfohlene Methode: Aktivierung über das ServBay-UI
So aktivieren Sie das Modul am schnellsten:
- Öffnen Sie das Hauptfenster von ServBay.
- Klicken Sie in der linken Navigationsleiste auf Sprachen (Languages), dann auf PHP.
- Suchen Sie in der rechten Liste die gewünschte PHP-Version (z.B.
PHP 8.4
), für die SCWS aktiviert werden soll. - Klicken Sie rechts neben der PHP-Version auf den Button Erweiterungen (Extensions).
- Suchen Sie das Modul
SCWS
in der Liste. - Aktivieren Sie den Schalter links neben
SCWS
(dieser wird normalerweise grün). - Klicken Sie unten im Fenster auf Speichern (Save).
- ServBay fordert Sie nun auf, das PHP-Paket neu zu starten, um die Änderung zu übernehmen. Klicken Sie auf Neustarten (Restart).
Nach diesen Schritten ist das SCWS-Modul für die gewählte PHP-Version aktiviert.
Manuelle Konfiguration (für Fortgeschrittene oder zur Fehlerbehebung)
Wer mehr Kontrolle oder eine Fehleranalyse benötigt, kann die Konfigurationsdatei direkt bearbeiten:
Konfigurationsdatei finden: Navigieren Sie zum
conf.d
-Verzeichnis der gewünschten PHP-Version. Die SCWS-Konfiguration befindet sich in der Dateiscws.ini
, typischerweise unter:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Ersetzen Sie
X.Y
durch Ihre PHP-Versionsnummer, z.B.8.4
.Bearbeiten der
scws.ini
: Öffnen Sie die Datei in einem Texteditor. Suchen Sie folgenden Abschnitt:ini[scws] ; Kommentieren Sie die folgende Zeile zur Aktivierung von scws aus ;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
, so dass folgende Zeile aktiv ist:ini[scws] ; Kommentieren Sie die folgende Zeile zur Aktivierung von scws aus extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5(Optional) Sie können hier auch den Standardzeichensatz und den Wörterbuchpfad einstellen. Es empfiehlt sich jedoch meist, dies dynamisch im PHP-Code zu setzen. Falls gewünscht, entfernen Sie je nach Bedarf das Semikolon und passen Sie den Wert an, z.B. für UTF-8:
ini[scws] ; Kommentieren Sie die folgende Zeile zur Aktivierung von scws aus 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 neustarten: Öffnen Sie die ServBay-Oberfläche, navigieren Sie zu Pakete (Packages), wählen Sie die passende PHP-Version (z.B. PHP 8.4) und klicken Sie auf das Neustart-Symbol.
Überprüfen, ob das SCWS-Modul geladen wurde
Nach der Aktivierung sollten Sie überprüfen, ob das Modul erfolgreich geladen ist. Die zuverlässigste Methode ist der Blick in die Ausgabe von phpinfo()
:
- Erstellen Sie im empfohlenen ServBay-Webverzeichnis
/Applications/ServBay/www
einen neuen Unterordner, z.B.scws-test
. - Legen Sie in diesem Verzeichnis eine Datei namens
phpinfo.php
an. - Fügen Sie folgenden PHP-Code ein:php
<?php phpinfo(); ?>
1
2
3 - Stellen Sie sicher, dass Ihr ServBay-Webserver (Caddy oder Nginx) läuft und Zugriff auf das Verzeichnis
/Applications/ServBay/www
besteht. Vorgabemäßig verweist die Domainservbay.demo
auf dieses Verzeichnis. - Rufen Sie im Browser
https://servbay.demo/scws-test/phpinfo.php
auf. - Suchen Sie auf der informativen PHP-Übersichtsseite nach dem Abschnitt "SCWS". Finden Sie dort Angaben zur Version und Konfiguration, ist das Modul erfolgreich geladen.
(Hinweis: Der Bildpfad ist ein Beispiel – bitte entnehmen Sie den tatsächlichen Pfad der ServBay-Dokumentation.)
Erstellung und Konfiguration eines SCWS-Wörterbuchs
SCWS segmentiert Wörter auf Basis von Wörterbüchern. Die Segmentierungsqualität hängt also maßgeblich vom verwendeten Wörterbuch ab. ServBay liefert ein Standardwörterbuch und eine Regeldatei unter /Applications/ServBay/etc/scws
. Natürlich können Sie auch eigene Wörterbücher verwenden oder erstellen.
Format von SCWS-Wörterbüchern
SCWS unterstützt Text- und Binärformate (xdb) für Wörterbücher. Das xdb-Format wird wegen schnellerem Laden und geringerem Ressourcenbedarf empfohlen.
Ein Wörterbuch im Textformat sieht folgendermaßen aus (ein Eintrag pro Zeile, optional gefolgt von Frequenz und Wortart):
Wort1 [Frequenz1] [Wortart1]
Wort2 [Frequenz2] [Wortart2]
...
2
3
Beispiel:
Künstliche Intelligenz 1000 n
Verarbeitung natürlicher Sprache 800 n
ServBay 500 nz
2
3
Speichern Sie Ihre individuellen Einträge als Textdatei, z.B. my_dict.txt
. Achten Sie auf das gewünschte Text-Encoding (empfohlen: UTF-8).
Erstellen einer Wörterbuchdatei im xdb-Format
ServBay beinhaltet das SCWS-Tool scws-gen-dict
, das Textwörterbücher in xdb-Dateien umwandelt.
- Öffnen Sie das terminal von macOS.
- Navigieren Sie ins ServBay-Bin-Verzeichnis oder nutzen Sie die vollständige Pfadangabe zum Befehl. Der Pfad lautet typischerweise: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 Pfad zu Ihrer Wörterbuchdatei. Der Parameter-o
gibt den Zielpfad an (empfohlen:/Applications/ServBay/etc/scws
). Mit-c utf8
bestimmen Sie das Datei-Encoding.
SCWS für die Verwendung eines Wörterbuchs konfigurieren
Nach dem Erstellen der xdb-Datei können Sie diese im PHP-Code angeben:
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Zeichensatz, passend zum Wörterbuch-Encoding
// Hauptwörterbuch festlegen (SCWS-Standard oder eigenes xdb)
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Zusätzliche Wörterbücher können ergänzt werden
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT steht für zusätzliches User-Wörterbuch
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Regeldatei, nötig für z.B. Wortarten, ist in ServBay enthalten
// ... Folgende Segmentierungsoperationen ...
?>
2
3
4
5
6
7
8
9
10
11
set_dict()
weist SCWS das Hauptwörterbuch zu, meist das offizielle Standardwörterbuch. Mit add_dict()
wird ein benutzerdefiniertes Wörterbuch ergänzt. Das Flag SCWS_XDICT_TXT
signalisiert die Verwendung eines individuellen Wörterbuchs.
Beispiel: SCWS im Einsatz
Sobald das SCWS-Modul aktiviert und das Wörterbuch eingerichtet ist, können Sie es im PHP-Code wie folgt nutzen:
<?php
// Prüfen, ob die SCWS-Erweiterung geladen wurde
if (!extension_loaded('scws')) {
die('SCWS extension is not loaded.');
}
// Initialisierung von SCWS
$scws = scws_new();
if (!$scws) {
die('Failed to initialize SCWS.');
}
// Zeichenkodierung setzen (muss mit Text- und Wörterbuch-Encoding übereinstimmen)
$scws->set_charset('utf8');
// Wörterbuchpfad festlegen (ServBay-Standard)
// set_dict() ist für das Hauptwörterbuch
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() kann zusätzliche User-Wörterbücher anhängen
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Pfad der Regeldatei (ServBay-Standard), nötig für Wortarten etc.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Segmentierungsmodus festlegen (optional, Standard: SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: Trennt "x"-Zeichen(fremdsprachige Buchstaben), z.B. in E-Mail, URLs
// SCWS_XDICT_DUALITY: Komposit-Segmentierung (Bigramme)
// $scws->set_ignore(true); // Satzzeichen ignorieren?
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Grad der Komposit-Segmentierung
// Beispieltext für die Segmentierung
$text = "ServBay ist eine leistungsfähige lokale Web-Entwicklungsumgebung mit Support für PHP, Node.js und verschiedene Datenbanken.";
// An SCWS senden
$scws->send_text($text);
// Ausgabe der Ergebnisse
echo "Originaltext: " . $text . "\n\n";
echo "Segmentierungsergebnis:\n";
// Ergebnisse iterativ auslesen
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word ist ein assoziatives Array mit 'word', 'idf', 'attr' (Wortart) u.ä.
echo "Wort: " . $word['word'] . " (Wortart: " . $word['attr'] . ")\n";
}
}
// SCWS-Instanz schließen
$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
Speichern Sie diesen Code z.B. als scws_example.php
im Webverzeichnis von ServBay (z.B. /Applications/ServBay/www/scws-test/
) und rufen Sie über https://servbay.demo/scws-test/scws_example.php
die Seite im Browser auf, um das Segmentierungsergebnis zu sehen.
Hinweise
- Stellen Sie sicher, dass die aktivierte SCWS-Version zur jeweiligen PHP-Version kompatibel ist. ServBay kümmert sich zwar im Regelfall darum, bei manueller Konfiguration müssen Sie jedoch darauf achten.
- Die Qualität der Wortsegmentierung hängt maßgeblich vom Wörterbuch ab – für Fachtext empfiehlt sich ein domänenspezifisches Wörterbuch.
- Prüfen Sie stets die Pfade zu SCWS-Konfigurationsdateien (
scws.ini
), Wörterbüchern (.xdb
) und Regeldateien (.ini
) und stellen Sie sicher, dass der PHP-Prozess darauf zugreifen kann. - Nach Änderungen an der PHP-Konfiguration ist stets ein Neustart des zugehörigen PHP-Pakets erforderlich.
Häufige Fragen (FAQ)
F: Ich habe SCWS über die ServBay-Oberfläche aktiviert, sehe aber kein SCWS in der phpinfo()
?
A: Bitte prüfen Sie, ob Sie das korrekte PHP-Paket neugestartet haben. Es kann sein, dass mehrere Versionen laufen. Starten Sie die Version neu, die mit Ihrer Website verbunden ist. Besteht das Problem weiter, editieren Sie die Datei scws.ini
manuell und kontrollieren Sie Pfad und Syntax.
F: Wie kann ich eigene Wörterbücher erstellen und verwenden?
A: Siehe den Abschnitt ”Erstellung und Konfiguration eines SCWS-Wörterbuchs” in diesem Dokument. Wandeln Sie Ihr Textwörterbuch per scws-gen-dict
in das xdb-Format um und binden Sie es in Ihrem PHP-Code via add_dict()
ein.
F: Wofür dient die SCWS-Regeldatei (rules.utf8.ini
)?
A: Die Regeldatei wird primär für Part-Of-Speech-Tagging und spezielle Segmentierungsregeln verwendet. ServBay liefert eine Standard-Regeldatei mit, die in den meisten Fällen unverändert genutzt werden kann.
Zusammenfassung
ServBay macht das Aktivieren und Verwalten des SCWS PHP-Moduls für chinesische Wortsegmentierung besonders einfach. Egal ob über das komfortable UI oder durch manuelle Konfiguration: Sie können SCWS nahtlos in Ihren PHP-Workflow integrieren. Mit den mitgelieferten SCWS-Tools und Wörterbüchern gelingt der Einstieg schnell, sodass Sie effiziente und präzise Textverarbeitung für Ihre Webanwendungen (etwa Suchfunktionen oder Textanalyse) bereitstellen können. Die Einbindung von SCWS erweitert außerdem die Vielseitigkeit und Praxistauglichkeit der ServBay-Umgebung für lokale Entwicklung.