scws中文分词php扩展详细安装说明

2018-09-03 20:53:54 / 4695 / 编程代码

因最近写的一段代码,需要用到中文分词,在网上找了一下,发现了scws这个不错的插件,故根据文档安装使用,下面记录下安装的全过程

系统:centos

安装scws

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

下载词典

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配置

cd ~/scws-1.2.3

cd phpext

/www/server/php/56/bin/phpize(这里的配置按照实际的php地址配置,这里是宝塔面板环境下的地址)

./configure --with-scws=/usr/local/scws --with-php-config=/www/server/php/56/bin/php-config(这里的配置按照实际配置,这里是宝塔面板环境下的地址)

make

make install

在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

保存后重新启动php环境

测试代码

<?php
   $so = scws_new();
   $so->set_charset('gbk');
   // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件
   $so->send_text("小姐姐,我喜欢你,做我女朋友吧!");
   while ($tmp = $so->get_result()){
        print_r($tmp);
   }
   $so->close();
?>

小小吐槽

ps:这里吐槽一下,该项目作者的产品,xunsearch中也包含了scws分词,我一开始用的就是这个,但是,如果长时间执行,会提示超时。
修改配置,查看源代码,修改stocket链接超时也不起作用,百度在论坛上发现类似问题,但是没有解答。
故,如果使用分词,最好还是用scws搭建。


gravatar头像