============================================
1. 取得 scws-1.2.0 的代碼
wget http://www.ftphp.com/scws/down/scws-1.2.0.tar.bz2
2. 解開壓縮包
[hightman@d1 ~]$ tar xvjf scws-1.2.0.tar.bz2
3. 進入目錄執行配置腳本和編譯
[hightman@d1 ~]$ cd scws-1.2.0
[hightman@d1 ~/scws-1.2.0]$ ./configure --prefix=/usr/local/scws ; make ; make install
4. 順利的話已經編譯並安裝成功到 /usr/local/scws 中了,執行下面命令看看文件是否存在
[hightman@d1 ~/scws-1.2.0]$ ls -al /usr/local/scws/lib/libscws.la
5 用 wget 下載並解壓詞典,或從主頁下載然後自行解壓再將 *.xdb 放入 /usr/local/scws/etc 目錄中
[hightman@d1 ~/scws-1.2.0]$ cd /usr/local/scws/etc
[hightman@d1 /usr/local/scws/etc]$ wget http://www.ftphp.com/scws/down/scws-dict-chs-
gbk.tar.bz2
[hightman@d1 /usr/local/scws/etc]$ wget http://www.ftphp.com/scws/down/scws-dict-chs-
utf8.tar.bz2
[hightman@d1 /usr/local/scws/etc]$ tar xvjf scws-dict-chs-gbk.tar.bz2
[hightman@d1 /usr/local/scws/etc]$ tar xvjf scws-dict-chs-utf8.tar.bz2
6. 如果您需要在 php 中調用分詞,建議繼續閱讀本文安裝 php 擴展(和安裝APC一樣)。
假設您已經將 scws 按上述步驟安裝到 /usr/local/scws 中。
tar -zxvf xampp-linux-devel-1.7.7.tar.gz
cp -r ./lampp/include /opt/lampp/
yum install php-devel pcre-devel
yum groupinstall "Development Tools"
cd ~/scws-1.2.0/phpext/
/opt/lampp/bin/phpize
whereis php-config
找到php-config的路徑,下面用
./configure --with-scws=/usr/local/scws --with-php-config=/opt/lampp/bin/php-config
make
make install
vi /opt/lampp/etc/php.ini
添加
[scws]
;
; 注意請檢查 php.ini 中的 extension_dir 的設定值是否正確, 否則請將 extension_dir 設爲空,
; 再把 extension = scws.so 指定絕對路徑。
;
extension = scws.so
scws.default.charset = gbk
scws.default.fpath = /usr/local/scws/etc
/opt/lampp/lampp stopapache
/opt/lampp/lampp startapache
6) 命令行下執行 php -m 就能看到 scws 了或者在 phpinfo() 中看看關於 scws 的部分,記得要重
啓 web 服務器
才能使新的 php.ini 生效。
二、安裝sphider
============================================
1、創建shpider數據庫(GBK編碼)
2、導入table.sql或者用admin/install.php安裝,可能數據庫創建會失敗
3、sphider/setting/database.php修改配置
三、結合
============================================
兩者部署無誤後,修改Sphider,找到admin文件夾下的spider文件,首先在開始加入代碼初始化分詞程序
$cws = scws_new();
$cws->set_charset('gbk');
$cws->set_rule('/usr/local/scws/etc/rules.ini'); //注意路徑
$cws->set_dict('/usr/local/scws/etc/dict.xdb');
$cws->set_ignore(true);
注意這裏使用的gbk,如果你的網頁用的utf8編碼,要把這裏以及詞典和規則文件的位置更改一下
在index_url函數中,把原有的英文分詞替換掉,在$wordarray = unique_array(explode(" ", $data
['content']));前面加上
global $cws;
$cws->send_text($data['content']);
$list = $cws->get_tops(1000, $xattr);
settype($list, 'array');
$wordarray=array();
$i=0;
// segment
foreach ($list as $tmp)
{
$wordarray[$i][1]=$tmp['word'];
$wordarray[$i][2]=$tmp['times'];
$i++;
}
刪除
$wordarray = unique_array(explode(" ", $data['content']));
和
$wordarray = calc_weights ($wordarray, $title, $host, $path, $data['keywords']);
兩個語句,因爲Sphider原有的英文分詞這裏就完全沒必要用了,這裏可以自行對$wordarray進行限制和
優化,這裏我寫的很簡單。
修改完成後,爬蟲就能正常對中文進行分詞了,效果還不錯,注意如果出現亂碼注意網頁或者辭典編碼是
utf8還是gb2312。
把/sphider/templates/standard/header.html的charset改爲gb2312