Centos中文分词SCWS安装和使用 PHP使用SCWS进行中文分词

本文介绍了如何在PHP环境中安装和配置SCWS(Simple Chinese Word Segmentation)进行中文分词。从下载源码、安装、检查、安装PHP扩展到测试代码,详细阐述了整个过程,并特别提到了在遇到open_basedir限制时的解决方法。
摘要由CSDN通过智能技术生成

前言

开发的程序需要通过搜索出所需要的信息,因用户搜索的关键字过于模糊,所以采用分词进行搜索。


安装步骤

1.下载源码

cd /usr/local/src
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
tar xvjf scws-1.2.3.tar.bz2
cd scws-1.2.3
./configure --prefix=/usr/local/scws
make && make install

2.检查是否安装成功

/usr/local/scws/bin/scws -h

3.下载通用词典

cd /usr/local/scws/etc
wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2
wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
tar xvjf scws-dict-chs-gbk.tar.bz2
tar xvjf scws-dict-chs-utf8.tar.bz2

4.安装 php 扩展

注意:/www/server/php/73/bin/ 要看清楚自己PHP安装的目录

cd ./scws-1.2.3 /phpext/
locate phpize
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config --with-scws=/usr/local/scws
make && make install

5.在 php.ini 中加入以下几行

注意:需要重启服务器php.ini才会生效,成功后在phpinfo中可以查询到scws

extension = scws.so
scws.default.charset = utf8
scws.default.fpath = /usr/local/scws/etc

6.测试代码

<?php
	$scws = scws_open();
	scws_set_charset($scws, 'utf-8');
	scws_set_dict($scws, '/usr/local/scws/etc/dict.utf8.xdb');
	scws_set_rule($scws, '/usr/local/scws/etc/rules.utf8.ini');
	$text = "我爱写代码";
	scws_send_text($scws, $text);
	$tops = scws_get_tops($scws, 5);
	print_r($tops);
?>
// 输出结果
//Array
//(
//[0] => Array
//(
//[word] => 代码
//[times] => 1
//[weight] => 4.8200001716614
//[attr] => n
//)
//
//[1] => Array
//(
//[word] => 我爱
//[times] => 1
//[weight] => 4.5900001525879
//[attr] => n
//)
//
//)

注意

本人在测试过程中出现了:open_basedir restriction in effect. File(/usr/local/scws/etc/dict.utf8.xdb) is not within the allowed path(s) 这个错误提示。由于我是宝塔面板安装的,只需要在相应的网站目录,勾选掉防跨站攻击(open_basedir)即可。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值