scws中文分词安装和使用
一、下载源码
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 tar xvjf scws-1.2.3.tar.bz2
二、执行配置脚本和编译
具体选项参数执行 ./configure --help 查看。常用选项为:--prefix=指定安装目录
cd scws-1.2.3 ./configure --prefix=/usr/local/scws make && make install
检查是否安装成功
ls -al /usr/local/scws/lib/libscws.la /usr/local/scws/bin/scws -h
三、下载通用词典
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
四、编译PHP扩展
更新PHP扩展需要autoconf、automake及phpize工具,如果没有的话需要新安装。
apt-get install autoconf cd /root/scws-1.2.3/phpext phpize ./configure --with-scws=/usr/local/scws --with-php-config=/usr/local/bin/php-config make && make install
在 php.ini 中加入以下几行
[scws] extension=scws.so scws.default.charset=gbk scws.default.fpath=/usr/local/scws/etc
在php程序中用 ini_get('scws.default.fpath') 读取scws.default.fpath目默认字典录设置
使用时指定词典路径和编码:
$scws = scws_new(); $scws->set_charset('utf8'); //指定编码 $scws->set_dict('/usr/local/scws/etc/dict.utf8.xdb');//指定词典路径,可以是绝对路径,也可以是相对路径
测试分词程序
php /root/scws-1.2.3/phpext/scws_test.php
如果运行失败,很可能是未正确指定词典路径
六、两个例子
(1)使用类方法分词
<?php $so = scws_new(); $so->set_charset('gbk'); $so->set_dict('/usr/local/scws/etc/dict.xdb'); $so->set_rule('/usr/local/scws/etc/rules.ini'); // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 $so->send_text("我是一个中国人,我会C++语言,我也有很多T恤衣服"); while ($tmp = $so->get_result()) { print_r($tmp); } $so->close(); ?>
(2)使用函数提取高频词
<?php $sh = scws_open(); scws_set_charset($sh, 'gbk'); scws_set_dict($sh, '/usr/local/scws/etc/dict.xdb'); scws_set_rule($sh, '/usr/local/scws/etc/rules.ini'); $text = "我是一个中国人,我会C++语言,我也有很多T恤衣服"; scws_send_text($sh, $text); $top = scws_get_tops($sh, 5); print_r($top); ?>
注意:输入的文字,词典、规则文件这三者的字符集必须统一,如果不是默认的 gbk 字符集请调用 SimpleCWS::set_charset 或 scws_set_charset 来设定,否则可能出现意外错误。