1. 程式人生 > >scws中文分詞安裝和使用

scws中文分詞安裝和使用

pre tex gbk 文件 log with default pat lib

一、下載源碼

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 來設定,否則可能出現意外錯誤。

scws中文分詞安裝和使用