Como Ativar e Configurar o Módulo SCWS PHP no ServBay
O ServBay é um ambiente local de desenvolvimento web robusto para macOS e Windows, integrando diversos runtimes como PHP, Node.js, Python, Go, Java, além de bancos de dados como MySQL, PostgreSQL, MongoDB, Redis e servidores web como Caddy e Nginx. Para desenvolvedores que precisam lidar com texto chinês em aplicações PHP, o ServBay vem equipado com o eficiente módulo SCWS (Simple Chinese Word Segmentation) para segmentação de palavras chinesas, que pode ser ativado com grande facilidade.
Este guia detalha como ativar a extensão SCWS para PHP no ServBay, configurar arquivos de dicionário e apresenta exemplos práticos de uso.
Visão Geral do Módulo SCWS
O SCWS é um mecanismo open source de segmentação de textos em chinês, reconhecido por sua alta performance e precisão. Ele utiliza uma combinação de correspondência de dicionário e modelos estatísticos para segmentar rapidamente textos chineses, sendo ideal para soluções como motores de busca, mineração de texto, análise de conteúdo, extração de palavras-chave e marcação de classes gramaticais.
Principais Características
- Segmentação de Alto Desempenho: O SCWS possui algoritmo otimizado, capaz de processar grandes volumes de texto chinês com eficiência.
- Alta Precisão: Combinando dicionário e modelo estatístico, o SCWS entrega resultados precisos para segmentação de palavras.
- Recursos Avançados: Além da segmentação básica, oferece extração de palavras-chave, marcação de classes gramaticais e outras funções sofisticadas.
- Fácil Integração: APIs simplificadas facilitam a inclusão do SCWS em aplicações PHP.
- Open Source e Gratuito: Totalmente livre para uso ou personalização conforme demanda.
Versão SCWS Pré-instalada no ServBay
O ServBay oferece suporte a múltiplas versões do PHP, e para cada uma delas inclui o respectivo módulo SCWS. Até o momento da redação, o ServBay traz pré-instalado a extensão SCWS 1.2.3 para as versões PHP 5.6 até PHP 8.4.
Como Ativar o Módulo SCWS
Por padrão, o módulo SCWS está desativado no ServBay. Há duas maneiras principais para ativá-lo: via interface gráfica do ServBay ou manualmente editando o arquivo de configuração.
Método recomendado: Ativação pela Interface Gráfica do ServBay
É o processo mais simples e rápido:
- Abra a interface principal do ServBay.
- No menu lateral, clique em Languages (Linguagens) e selecione PHP.
- Na lista de versões à direita, localize a versão PHP desejada (exemplo:
PHP 8.4
). - Clique no botão Extensions (Extensões) ao lado da versão PHP escolhida.
- Encontre o módulo
SCWS
na lista de extensões. - Ative o SCWS usando o seletor à esquerda do nome (normalmente fica verde ao ativar).
- Clique em Save (Salvar) no rodapé da janela.
- O ServBay solicitará que você reinicie o pacote PHP para aplicar as mudanças. Clique em Restart (Reiniciar).
Depois desses passos, o módulo SCWS estará ativo para a versão PHP selecionada.
Ativação Manual por Edição de Arquivo de Configuração (para usuários avançados ou troubleshooting)
Caso prefira maior controle ou esteja solucionando problemas, pode editar diretamente o arquivo de configuração do PHP:
Localizar o arquivo de configuração: Primeiro, encontre o diretório
conf.d
relativo à versão PHP utilizada. O SCWS está configurado no arquivoscws.ini
dentro desse diretório, seguindo a estrutura:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1Troque
X.Y
pelo número exato da versão PHP, exemplo8.4
.Editar o arquivo
scws.ini
: Abra oscws.ini
num editor de texto e localize: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 (
;
) da frente deextension = scws.so
: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) Você pode definir charset e caminho do dicionário aqui, mas normalmente é melhor ajustar isso via código PHP para maior flexibilidade. Caso opte por configurar neste arquivo e seu dicionário for 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.
Reiniciar o pacote PHP: Volte à interface do ServBay, vá até Packages (Pacotes), encontre a versão PHP editada (exemplo PHP 8.4) e clique em reiniciar (ícone circular de seta).
Verificando se o Módulo SCWS Foi Carregado Corretamente
Após a ativação, é importante verificar se o módulo SCWS está realmente ativo. O método mais comum é usando o resultado do phpinfo()
:
- No diretório raiz recomendado do ServBay (
/Applications/ServBay/www
), crie uma pasta de teste, por exemploscws-test
. - Dentro de
/Applications/ServBay/www/scws-test
crie um arquivo chamadophpinfo.php
. - Adicione o seguinte código ao arquivo:php
<?php phpinfo(); ?>
1
2
3 - Certifique-se de que o servidor web do ServBay (Caddy ou Nginx) esteja ativo e acessando o diretório de sites. Por padrão, ServBay registra o domínio
servbay.demo
apontando para esse diretório. - Acesse
https://servbay.demo/scws-test/phpinfo.php
pelo navegador. - Na página de informações PHP, procure pela seção "SCWS". Caso apareça com detalhes de versão e configuração, significa que o módulo foi carregado com sucesso.
(Nota: o caminho da imagem é exemplo, consulte as imagens reais da documentação do ServBay)
Criando e Configurando Dicionários SCWS
O SCWS utiliza dicionários para realizar a segmentação de palavras, e a qualidade do resultado depende diretamente dos arquivos de dicionário. O ServBay vem com dicionários e regras padrão, normalmente localizados em /Applications/ServBay/etc/scws
. Você pode criar ou importar seus próprios dicionários customizados.
Formato dos Arquivos de Dicionário SCWS
O SCWS aceita arquivos em texto simples e no formato binário xdb (recomendado por ser mais rápido e eficiente em memória).
Formato do arquivo texto: cada linha traz uma palavra seguida (opcionalmente) da frequência (número, maior quer mais comum) e da classe gramatical:
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 seus termos personalizados em um arquivo texto, como meu_dict.txt
, garantindo que a codificação seja UTF-8.
Convertendo o Dicionário para Formato xdb
O ServBay inclui a ferramenta scws-gen-dict
para converter dicionários em texto para xdb.
- Abra o Terminal no macOS.
- Use o comando
cd
para navegar até o diretório bin do ServBay, ou especifique caminho completo da ferramenta. Exemplo:bashTroque/Applications/ServBay/bin/scws-gen-dict -i /path/to/your/meu_dict.txt -o /Applications/ServBay/etc/scws/meu_dict.utf8.xdb -c utf8
1/path/to/your/meu_dict.txt
pelo caminho real do seu arquivo texto, e escolha como destino/Applications/ServBay/etc/scws/meu_dict.utf8.xdb
. O parâmetro-c utf8
define a codificação.
Configurando o SCWS para Usar o Dicionário
Depois de gerar o arquivo xdb, você pode informar ao SCWS, pelo PHP, para usá-lo:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // Define o charset, combinando com o dicionário
// Define o caminho do dicionário principal (padrão do ServBay ou seu arquivo xdb personalizado)
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// Para múltiplos dicionários, use add_dict
$scws->add_dict('/Applications/ServBay/etc/scws/meu_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT indica inclusão de dicionário customizado
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // Regras para marcação gramatical etc., padrão do ServBay
// ... continue com a segmentação ...
?>
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 (geralmente o oficial do SCWS). add_dict()
inclui um dicionário personalizado do usuário. SCWS_XDICT_TXT
é a constante para inclusão dessas palavras customizadas.
Exemplo de Uso do SCWS
Com o SCWS e dicionários configurados, você pode segmentar textos diretamente no PHP. Veja um exemplo básico:
php
<?php
// Certifica que a extensão SCWS está carregada
if (!extension_loaded('scws')) {
die('Extensão SCWS não está carregada.');
}
// Inicializa o objeto SCWS
$scws = scws_new();
if (!$scws) {
die('Falha ao inicializar o SCWS.');
}
// Define charset (deve coincidir com texto e dicionário)
$scws->set_charset('utf8');
// API para indicar o arquivo de dicionário (ServBay padrão)
// set_dict() define dicionário principal
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() pode incluir dicionário do usuário
// $scws->add_dict('/Applications/ServBay/etc/scws/meu_dict.utf8.xdb', SCWS_XDICT_TXT);
// Define arquivo de regras (ServBay padrão), para marcação gramatical etc.
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// Configura modos de segmentação (opcional, padrão é SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: separa caracteres x (não-chineses), como e-mails, URLs
// SCWS_XDICT_DUALITY: segmentação composta (bigrama)
// $scws->set_ignore(true); // Ignorar pontuação?
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // Configura grau de segmentação composta
// Texto chinês a ser segmentado
$text = "ServBay é um ambiente local de desenvolvimento Web poderoso, compatível com PHP, Node.js e bancos de dados diversos.";
// Envia texto para processamento SCWS
$scws->send_text($text);
// Exibe resultados
echo "Texto original: " . $text . "\n\n";
echo "Resultado da segmentação:\n";
// Laço para obter os resultados das palavras
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word é array com 'word', 'idf', 'attr' (classe gramatical) etc.
echo "Palavra: " . $word['word'] . " (Classe: " . $word['attr'] . ")\n";
}
}
// Libera recursos 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 este código como .php
(exemplo: scws_exemplo.php
) e coloque na pasta do site do ServBay (ex: /Applications/ServBay/www/scws-test/
). Acesse https://servbay.demo/scws-test/scws_exemplo.php
pelo navegador para ver os resultados da segmentação.
Observações Importantes
- Verifique se a versão SCWS ativada é compatível com a versão PHP utilizada. O ServBay gerencia isso automaticamente, mas em configurações manuais é essencial.
- A qualidade do dicionário impacta diretamente os resultados da segmentação. Para textos de áreas específicas, prefira dicionários especializados.
- Certifique-se que caminhos do arquivo de configuração (
scws.ini
), dicionários (.xdb
) e regras (.ini
) estejam corretos e acessíveis para o processo PHP. - Sempre reinicie o pacote PHP após editar configurações para que as mudanças entrem em vigor.
Perguntas Frequentes (FAQ)
P: Ativei o SCWS pela interface do ServBay, mas não aparece no phpinfo()
?
R: Confirme se reiniciou o pacote PHP correto. Pode haver múltiplas versões ativas; reinicie aquela associada ao seu site. Persistindo o problema, tente editar manualmente o arquivo scws.ini
e verifique o caminho e possíveis erros de sintaxe.
P: Como criar e usar dicionários personalizados?
R: Siga os passos da seção "Criando e Configurando Dicionários SCWS" deste guia, utilizando o scws-gen-dict
para converter o texto em xdb e o método add_dict()
para carregar o arquivo customizado em PHP.
P: Para que serve o arquivo de regras do SCWS (rules.utf8.ini
)?
R: Ele controla marcação de classes gramaticais e regras especiais de segmentação. O ServBay já inclui um arquivo padrão, normalmente não é necessário alterar.
Conclusão
O ServBay simplifica para desenvolvedores unir e gerenciar o módulo de segmentação de palavras em chinês SCWS no PHP. Com interface gráfica intuitiva ou configuração manual, você pode integrar o SCWS facilmente ao fluxo de trabalho em PHP. Aproveite as ferramentas e dicionários padrão do ServBay para começar rápido, processando texto chinês com velocidade e precisão – seja para motores de busca ou análise de conteúdo em seus projetos web. Integrado ao amplo ecossistema de pacotes do ServBay, o SCWS fortalece ainda mais este ambiente local, tornando-o completo e versátil para qualquer desenvolvedor.