Jak włączyć i skonfigurować moduł SCWS dla PHP w ServBay
ServBay to zaawansowane lokalne środowisko programistyczne dla macOS i Windows, które integruje środowiska uruchomieniowe dla PHP, Node.js, Pythona, Go, Java oraz bazy danych, takie jak MySQL, PostgreSQL, MongoDB, Redis. Obsługuje również serwery WWW, np. Caddy i Nginx. Dla deweloperów, którzy przetwarzają chiński tekst w aplikacjach PHP, ServBay oferuje preinstalowany, wydajny moduł SCWS (Simple Chinese Word Segmentation) do segmentacji chińskich słów, który można włączyć w kilku prostych krokach.
W tym artykule wyjaśniamy szczegółowo, jak aktywować rozszerzenie SCWS dla PHP w ServBay, skonfigurować pliki słownika i przedstawiamy przykładowe użycie narzędzia.
Przegląd modułu SCWS
SCWS to otwarte narzędzie do segmentacji chińskich słów, znane z wysokiej wydajności i precyzji. Łączy podejście słownikowe ze statystycznym modelem, pozwalając na szybkie i dokładne przetwarzanie chińskiego tekstu. Idealnie sprawdza się w wyszukiwarkach, eksploracji danych, analizie treści, ekstrakcji fraz kluczowych czy oznaczaniu części mowy w języku chińskim.
Najważniejsze cechy
- Błyskawiczna segmentacja: SCWS wykorzystuje zoptymalizowane algorytmy, które efektywnie obsługują duże ilości chińskiego tekstu.
- Wysoka dokładność: Dzięki połączeniu słownika i modelu statystycznego SCWS osiąga świetne rezultaty w segmentacji.
- Rozbudowane funkcje: Poza podstawową segmentacją oferuje ekstrakcję słów kluczowych i oznaczanie części mowy.
- Łatwa integracja: Proste API pozwala szybko dodać SCWS do aplikacji PHP.
- Open-source: Narzędzie jest całkowicie bezpłatne i można je dostosować do własnych potrzeb.
Wersja SCWS dostępna w ServBay
ServBay obsługuje wiele wersji PHP, każda zawiera odpowiedni moduł SCWS. W chwili pisania tekstu ServBay dostarcza rozszerzenie SCWS 1.2.3 dla PHP od 5.6 do 8.4.
Jak włączyć moduł SCWS
Domyślnie, SCWS jest wyłączony w ServBay. Możesz go aktywować na dwa sposoby: poprzez graficzny interfejs ServBay lub ręcznie, edytując plik konfiguracyjny.
Zalecana metoda: włączenie przez interfejs ServBay
Najłatwiejszym sposobem jest:
- Otwórz główny interfejs ServBay.
- W menu nawigacyjnym po lewej wybierz Languages (Języki), a następnie PHP.
- W liście wersji PHP po prawej znajdź tę, dla której chcesz włączyć SCWS (np.
PHP 8.4
). - Kliknij przycisk Extensions (Rozszerzenia) obok danej wersji PHP.
- W otwartym oknie znajdź moduł
SCWS
. - Aktywuj SCWS, przesuwając przełącznik obok nazwy (kolor powinien zmienić się na zielony).
- Kliknij Save (Zapisz) na dole okna.
- ServBay zapyta, czy chcesz zrestartować pakiet PHP – potwierdź przyciskiem Restart.
Po zakończeniu tych kroków SCWS będzie aktywny dla wybranej wersji PHP.
Ręczna edycja pliku konfiguracyjnego (dla zaawansowanych lub do rozwiązywania problemów)
Jeśli chcesz mieć większą kontrolę lub wyeliminować błędy, możesz aktywować SCWS przez edycję konfiguracji PHP:
Lokalizowanie pliku konfiguracyjnego: Znajdź katalog
conf.d
odpowiadający używanej wersji PHP. Konfiguracja SCWS znajduje się w plikuscws.ini
, zazwyczaj pod ścieżką:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Zamień
X.Y
na rzeczywistą wersję PHP, np.8.4
.Edytuj plik
scws.ini
: Otwórz plik w edytorze tekstu. Znajdź fragment: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
5Usuń znak
;
z początku liniiextension = scws.so
, aby uzyskać: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(Opcjonalnie) Jeśli chcesz ustawić domyślne kodowanie i ścieżkę do słownika, odkomentuj odpowiednie linie i wprowadź wartości. Na przykład, jeśli używasz słownika zakodowanego w 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
5Zapisz i zamknij plik.
Restart pakietu PHP: Uruchom ServBay, przejdź do sekcji Packages (Pakiety), znajdź wersję PHP (np. PHP 8.4), a potem kliknij przycisk restartu (ikona okrągłej strzałki).
Jak sprawdzić, czy SCWS został poprawnie załadowany
Po aktywacji warto sprawdzić, czy rozszerzenie działa. Najprostszą metodą jest użycie phpinfo()
:
- W katalogu głównym serwera WWW ServBay (
/Applications/ServBay/www
) utwórz nowy podkatalog np.scws-test
. - W środku (
/Applications/ServBay/www/scws-test
) utwórz plik o nazwiephpinfo.php
. - Skopiuj poniższą zawartość:php
<?php phpinfo(); ?>
1
2
3 - Upewnij się, że Twój serwer WWW (Caddy lub Nginx) jest poprawnie skonfigurowany i obsługuje katalog
/Applications/ServBay/www
. Domyślnie domenaservbay.demo
wskazuje właśnie na ten katalog. - Otwórz przeglądarkę i przejdź na adres
https://servbay.demo/scws-test/phpinfo.php
. - Na wyświetlonej stronie znajdź sekcję "SCWS". Jeśli widzisz informacje o wersji i opcjach SCWS, moduł został prawidłowo załadowany.
(Uwaga: ścieżka obrazka jest przykładowa, zobacz dokumentację ServBay w celu użycia prawidłowego obrazu)
Jak tworzyć i konfigurować słowniki SCWS
SCWS wykorzystuje słowniki, dlatego jakość segmentacji zależy od wybranego pliku. ServBay zawiera domyślny słownik oraz plik zasad, zazwyczaj w katalogu /Applications/ServBay/etc/scws
. Możesz też dodać własny słownik.
Format pliku słownika SCWS
Słowniki SCWS występują w formacie tekstowym lub binarnym xdb, zalecane jest xdb – szybciej się ładuje i zużywa mniej pamięci.
Format pliku tekstowego:
słowo1 [częstotliwość1] [część mowy1]
słowo2 [częstotliwość2] [część mowy2]
...
1
2
3
2
3
Przykład:
sztuczna inteligencja 1000 n
przetwarzanie języka naturalnego 800 n
ServBay 500 nz
1
2
3
2
3
Zapisz własny zestaw słów w pliku tekstowym, np. my_dict.txt
. Sprawdź, czy kodowanie pliku pasuje do oczekiwanego (zalecane: UTF-8).
Tworzenie binarnego słownika xdb
ServBay ma narzędzie scws-gen-dict
, które konwertuje słownik tekstowy do xdb.
- Otwórz aplikację Terminal (macOS).
- Przejdź do katalogu bin ServBay lub podaj pełną ścieżkę do narzędzia:bashPodmień
/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
na realną ścieżkę pliku. Argument-o
określa miejsce zapisu słownika xdb – najlepiej w katalogu/Applications/ServBay/etc/scws
.-c utf8
ustawia kodowanie wejściowego pliku.
Konfiguracja SCWS do użycia własnego słownika
Po wygenerowaniu pliku xdb wskaż go w kodzie PHP:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Ustaw kodowanie zgodne ze słownikiem
// Podaj główną ścieżkę do słownika – domyślny lub własny xdb
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Jeśli masz dodatkowe słowniki, załaduj je jako uzupełnienie
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT = dodatkowy słownik użytkownika
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Plik zasad, domyślny w ServBay
// ... dalsze operacje segmentacji ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
set_dict()
ustawia główny słownik (zwykle oficjalny), add_dict()
dodaje Twój własny. SCWS_XDICT_TXT
oznacza ładowanie słownika użytkownika.
Przykład użycia SCWS
Gdy SCWS oraz słowniki są gotowe, możesz przetestować segmentację w PHP. Przykład:
php
<?php
// Sprawdź, czy rozszerzenie SCWS jest załadowane
if (!extension_loaded('scws')) {
die('SCWS extension is not loaded.');
}
// Inicjalizuj obiekt SCWS
$scws = scws_new();
if (!$scws) {
die('Failed to initialize SCWS.');
}
// Ustaw kodowanie (musi pasować do tekstu i słownika)
$scws->set_charset('utf8');
// Ścieżka do słownika (domyślny katalog ServBay)
// set_dict() ustawia główny słownik
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() dodaje własny słownik
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// Ustaw plik zasad, używany do oznaczania części mowy itp.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Ustaw tryb segmentacji (opcjonalnie, domyślnie: SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: dzielenie znaków x (niechińskich), np. email, url
// SCWS_XDICT_DUALITY: segmentacja dwuwyrazowa (bigramowa)
// $scws->set_ignore(true); // ignorowanie znaków interpunkcyjnych
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // poziom segmentacji bigramowej
// Przykładowy tekst do segmentacji
$text = "ServBay jest zaawansowanym lokalnym środowiskiem WWW, obsługuje PHP, Node.js i wiele baz danych.";
// Przetwórz tekst z użyciem SCWS
$scws->send_text($text);
// Pobierz wynik segmentacji
echo "Tekst źródłowy: " . $text . "\n\n";
echo "Wynik segmentacji:\n";
// Pętla po wszystkich wynikach
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word = tablica z: 'word', 'idf', 'attr' (część mowy) itd.
echo "Słowo: " . $word['word'] . " (część mowy: " . $word['attr'] . ")\n";
}
}
// Zwolnij zasoby 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
Zapisz kod do pliku (np. scws_example.php
) w katalogu strony ServBay (/Applications/ServBay/www/scws-test/
). Następnie odwiedź https://servbay.demo/scws-test/scws_example.php
, aby zobaczyć wynik.
Wskazówki
- Upewnij się, że wersja SCWS pasuje do używanego PHP. ServBay dba o kompatybilność, lecz przy ręcznej konfiguracji zwracaj na to uwagę.
- Jakość segmentacji zależy od słownika – dla tekstów branżowych stwórz dedykowany słownik.
- Ścieżki do plików konfiguracyjnych (
scws.ini
), słownika (.xdb
) oraz zasad (.ini
) muszą być poprawne i dostępne dla PHP. - Po każdej zmianie w plikach konfiguracyjnych zrestartuj odpowiedni pakiet PHP.
Najczęściej zadawane pytania (FAQ)
Q: Włączyłem SCWS przez interfejs ServBay, ale nie widzę go w phpinfo()
?
A: Upewnij się, że zrestartowałeś właściwy pakiet PHP (możesz mieć aktywne kilka wersji). Zrestartuj ten, którego używa Twoja strona. Jeśli dalej nie działa, spróbuj ręcznie edytować scws.ini
, sprawdź ścieżki i składnię.
Q: Jak stworzyć i używać własny słownik?
A: Sprawdź sekcję „Jak tworzyć i konfigurować słowniki SCWS”. Użyj scws-gen-dict
do konwersji tekstu do xdb, a potem add_dict()
w kodzie PHP.
Q: Do czego służy plik zasad (rules.utf8.ini
) SCWS?
A: Plik zasad pozwala na oznaczanie części mowy i wprowadza specjalne reguły segmentacji. ServBay udostępnia domyślny plik, zwykle nie ma potrzeby go zmieniać.
Podsumowanie
ServBay umożliwia programistom łatwą obsługę i zarządzanie modułem segmentacji chińskich słów SCWS dla PHP. Intuicyjny interfejs graficzny bądź elastyczna konfiguracja ręczna sprawiają, że integracja SCWS do workflow PHP jest prosta. W pakiecie ServBay znajdziesz nie tylko narzędzie do generowania słowników, ale też domyślne pliki i reguły, dzięki czemu szybko rozpoczniesz pracę z efektywną segmentacją chińskiego tekstu. Funkcjonalność SCWS wzbogaca ekosystem ServBay, czyniąc go kompletnym i praktycznym środowiskiem do tworzenia aplikacji webowych z zaawansowanym przetwarzaniem języka chińskiego.