Como Ativar e Configurar o Módulo SCWS PHP no ServBay
O ServBay é um ambiente de desenvolvimento Web local robusto, criado especificamente para macOS, que integra runtimes de múltiplas linguagens como PHP, Node.js, Python, Go e Java, além de bancos de dados como MySQL, PostgreSQL, MongoDB, Redis, e servidores web Caddy e Nginx. Para desenvolvedores que precisam processar texto chinês em aplicações PHP, o ServBay já vem com o eficiente módulo de segmentação de palavras em chinês SCWS (Simple Chinese Word Segmentation), e ativá-lo é bastante simples.
Este artigo explica detalhadamente como ativar a extensão SCWS PHP no ServBay, configurar arquivos de dicionário e demonstra o uso básico por meio de exemplos.
Visão Geral do Módulo SCWS
O SCWS é um mecanismo open source para segmentação de textos em chinês (tokenização), reconhecido por sua alta performance e precisão. Ele utiliza uma combinação de dicionários e modelos estatísticos, permitindo segmentação rápida e precisa de textos em chinês – ideal para motores de busca, mineração de texto, análise de conteúdo, extração de palavras-chave e aplicações com anotação de classes gramaticais.
Principais Características
- Segmentação de Alto Desempenho: O SCWS emprega algoritmos otimizados para lidar eficientemente com grandes volumes de dados em chinês.
- Alta Precisão: Ao combinar dicionário e estatísticas, SCWS oferece excelente precisão na segmentação.
- Funcionalidades Avançadas: Além da segmentação básica, suporta extração de palavras-chave, anotação de classes e outros recursos.
- Fácil de Integração: APIs simples facilitam a integração em projetos PHP.
- Open Source e Gratuito: SCWS é software livre, podendo ser usado e customizado sem custos.
Versão Pré-instalada do SCWS no ServBay
O ServBay suporta múltiplas versões de PHP, e cada uma já vem com o módulo SCWS correspondente instalado. Até a data desta documentação, o ServBay provê a extensão SCWS 1.2.3 para PHP 5.6 até PHP 8.4.
Como Ativar o Módulo SCWS
Por padrão, o SCWS vem desativado no ServBay. Há duas maneiras principais de ativá-lo: através da interface gráfica do ServBay ou editando manualmente o arquivo de configuração.
Recomendado: Ativando pelo Painel Gráfico do ServBay
Este é o método mais simples e prático:
- Abra o painel principal do ServBay.
- No menu à esquerda, clique em Languages (Linguagens) e selecione PHP.
- Na lista à direita, encontre a versão PHP na qual deseja ativar o SCWS (por exemplo,
PHP 8.4
). - Clique no botão Extensions (Extensões) correspondente a essa versão.
- Na lista de extensões que será aberta, localize o módulo
SCWS
. - Ative a chave à esquerda de
SCWS
(ela ficará verde ao ativar). - Clique no botão Save (Salvar) no rodapé da janela.
- O ServBay solicitará o reinício do pacote PHP para aplicar a alteração. Clique em Restart (Reiniciar).
Depois desses passos, o módulo SCWS estará ativado para a versão PHP selecionada.
Ativação Manual via Configuração (para usuários avançados e troubleshooting)
Se você precisa de mais controle ou está diagnosticando algum problema, também pode ativar o SCWS direto no arquivo de configuração do PHP:
Localize o arquivo de configuração: Encontre a pasta
conf.d
correspondente à sua versão do PHP. O arquivo do SCWS éscws.ini
, normalmente no caminho:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Troque
X.Y
pela versão exata do seu PHP, por exemplo,8.4
.Edite o arquivo
scws.ini
: Abrascws.ini
em um editor de texto. Procure este trecho: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
5Remova o ponto e vírgula (
;
) do início da linhaextension = scws.so
, ficando assim: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(Opcional) Ajuste também o charset e caminho do dicionário aqui, se desejar, mas normalmente recomenda-se configurar isso dinamicamente via código PHP para maior flexibilidade. Caso configure manualmente, remova o
;
das linhas correspondentes e ajuste os valores. Exemplo para dicionário em 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
5Salve e feche o arquivo.
Reinicie o PHP: No painel principal do ServBay, vá em Packages (Pacotes), encontre o PHP alterado (ex: PHP 8.4) e clique no ícone de reiniciar (normalmente um círculo com seta).
Como Verificar se o SCWS foi Carregado Corretamente
Após ativar o módulo, é importante confirmar sua ativação. A forma mais comum é usando o phpinfo()
:
- Crie um diretório de testes em
/Applications/ServBay/www
, comoscws-test
. - No diretório
/Applications/ServBay/www/scws-test
, crie o arquivophpinfo.php
. - Insira este código PHP no arquivo:php
<?php phpinfo(); ?>
1
2
3 - Certifique-se que seu servidor web ServBay (como Caddy ou Nginx) está rodando e configurado para acessar
/Applications/ServBay/www
. Por padrão, o domínioservbay.demo
aponta para este diretório. - Acesse
https://servbay.demo/scws-test/phpinfo.php
pelo navegador. - Na tela de informações do PHP, localize a seção chamada "SCWS". Se aparecerem as opções e informações do módulo (ex: versão, parâmetros), o SCWS está ativo.
(Nota: o caminho da imagem é ilustrativo, consulte a documentação do ServBay para as imagens reais)
Criando e Configurando Dicionários SCWS
O SCWS é baseado em dicionário – sua qualidade de segmentação depende muito do dicionário utilizado. O ServBay já inclui dicionários e regras padrão, normalmente localizados em /Applications/ServBay/etc/scws
. Você também pode criar os seus.
Formato do Arquivo de Dicionário SCWS
O SCWS aceita arquivos texto simples e também dicionários binários em formato xdb. Recomenda-se usar xdb por ser mais rápido e eficiente em memória.
Formato do dicionário texto:
palavra1 [frequência1] [classe1]
palavra2 [frequência2] [classe2]
...
1
2
3
2
3
Exemplo:
inteligência artificial 1000 n
processamento de linguagem natural 800 n
ServBay 500 nz
1
2
3
2
3
Salve seu dicionário como, por exemplo, meu_dict.txt
. Certifique-se de que o arquivo está no charset correto (recomendado UTF-8).
Gerando Arquivo de Dicionário xdb
O ServBay inclui a ferramenta scws-gen-dict
para converter arquivos texto de dicionário em xdb.
- Abra o Terminal do macOS.
- Use
cd
ou forneça o caminho completo para acessar o binário do ServBay, por exemplo:bashSubstitua/Applications/ServBay/bin/scws-gen-dict -i /caminho/para/seu/meu_dict.txt -o /Applications/ServBay/etc/scws/meu_dict.utf8.xdb -c utf8
1/caminho/para/seu/meu_dict.txt
pelo caminho real do seu dicionário. O parâmetro-o
define onde será salvo o xdb gerado (recomenda-se/Applications/ServBay/etc/scws
). O-c utf8
define o charset.
Configurando o SCWS para Utilizar o Dicionário
Após gerar o xdb, configure a biblioteca no seu PHP para usar esse dicionário:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Charset deve coincidir com o dicionário
// Defina o dicionário principal (o padrão ou seu xdb)
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Para adicionar mais de um dicionário:
$scws->add_dict('/Applications/ServBay/etc/scws/meu_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT indica dicionário adicional do usuário
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Regras para anotação, já inclusas no ServBay
// ... operações de segmentação a seguir ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
set_dict()
define o dicionário principal, normalmente o oficial do SCWS. add_dict()
adiciona dicionários personalizados. SCWS_XDICT_TXT
indica um dicionário extra do usuário.
Exemplo de Uso do SCWS
Com o SCWS ativado e dicionários configurados, você já pode utilizar suas funções PHP para segmentar texto em chinês. Exemplo básico:
php
<?php
// Verifica se o SCWS está carregado
if (!extension_loaded('scws')) {
die('A extensão SCWS não está carregada.');
}
// Inicializa SCWS
$scws = scws_new();
if (!$scws) {
die('Falha ao inicializar SCWS.');
}
// Define o charset (tem que ser igual ao texto e dicionário)
$scws->set_charset('utf8');
// Define caminho do dicionário principal (padrão ServBay)
// set_dict() define o principal
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() serve para incluir dicionários do usuário
// $scws->add_dict('/Applications/ServBay/etc/scws/meu_dict.utf8.xdb', SCWS_XDICT_TXT);
// Define o arquivo de regras (do ServBay) para anotação, etc.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Configure modo de segmentação (opcional, padrão é SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: separa caracteres x (não chineses), tipo emails, urls
// SCWS_XDICT_DUALITY: segmentação composta
// $scws->set_ignore(true); // Ignorar pontuação?
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Nível de segmentação avançada
// Texto a ser segmentado
$text = "ServBay é um poderoso ambiente local para desenvolvimento Web, suportando PHP, Node.js e diversos bancos de dados.";
// Envia o texto para segmentação
$scws->send_text($text);
// Exibe resultado
echo "Texto original: " . $text . "\n\n";
echo "Resultado da segmentação:\n";
// Itera sobre todos os resultados
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word é um array associativo com 'word', 'idf', 'attr' (classe), etc.
echo "Palavra: " . $word['word'] . " (Classe: " . $word['attr'] . ")\n";
}
}
// Libera recursos do 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
Salve como, por exemplo, scws_example.php
e coloque na pasta do seu site no ServBay (como /Applications/ServBay/www/scws-test/
). Acesse https://servbay.demo/scws-test/scws_example.php
no navegador para ver o resultado da segmentação.
Observações
- Certifique-se de que a versão do SCWS está compatível com sua versão do PHP. O ServBay já cuida da compatibilidade, mas verifique ao configurar manualmente.
- A qualidade da segmentação depende do dicionário. Para textos de nicho, use ou crie dicionários específicos do setor.
- Caminhos para os arquivos de configuração (
scws.ini
), dicionário (.xdb
) e regras (.ini
) devem estar corretos e o PHP precisa ter permissão de leitura nesses arquivos. - Sempre reinicie o pacote PHP correspondente depois de mudanças na configuração.
FAQ – Perguntas Frequentes
P: Ativei o SCWS pela interface do ServBay, mas não aparece nada no phpinfo()
?
R: Verifique se reiniciou o pacote PHP correto. O ServBay pode executar múltiplas versões do PHP ao mesmo tempo. Reinicie aquela vinculada ao seu site. Se ainda houver problemas, tente editar diretamente o scws.ini
e confira os caminhos e sintaxe.
P: Como criar e usar meu próprio dicionário?
R: Siga a seção “Criando e Configurando Dicionários SCWS” deste guia, converta o arquivo texto para xdb com o scws-gen-dict
e carregue usando add_dict()
no seu PHP.
P: Para que serve o arquivo de regras SCWS (rules.utf8.ini
)?
R: Ele é responsável principalmente pela marcação de classes/atributos gramaticais e regras especiais de segmentação. O ServBay já provê uma versão padrão e, normalmente, não é necessário customizá-la.
Conclusão
O ServBay torna simples a habilitação e gestão do módulo SCWS PHP para segmentação de texto em chinês. Tanto pela interface gráfica quanto via configuração manual, você pode integrar o SCWS facilmente ao seu workflow PHP. Com as ferramentas e dicionários padrão já embutidos, fica rápido começar a operar, utilizando todo o poder e precisão do SCWS para busca, análise de conteúdo ou qualquer aplicação que exija processamento de chinês. Integrado à ampla oferta de pacotes do ServBay, o SCWS reforça ainda mais a completude e praticidade desse ambiente de desenvolvimento local.