• SCWS-PHP扩展的说明及用法

    日期:2008.04.08 | 分类:Linux&Unix | 标签: ,,,,,

    详细请访问:http://www.hightman.cn

    [SCWS 简介]

    SCWS 是 Simple Chinese Words Segmentation 的缩写(简易中文分词系统)。它是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词,因为词是汉语的基本语素单位,而书写的时候不像英语会在词之间用空格分开,所以如何准确快速的分词一直是中文分词的攻关难点。

    本分词法并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人名,地名,数字年代等规则识别来达到基本分词,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些小型搜索引擎、关键字提取等场合运用。首次雏形版本发布于 2005 年底。

    本系统支持的汉字编码包括 GBK、UTF-8


    [安装说明]

    以 Linux(FreeBSD) 操作系统为例

    1. 取得 scws-1.0.0 的代码
    wget http://www.hightman.cn/down/scws-1.0.0.tar.gz
    本地下载:http://lendy.9846.com/2008/04/08/scws-php-extension/scws-100tar/

    2. 解开压缩包
    [hightman@d1 ~]$ tar xvzf scws-1.0.0.tar.gz

    3. 进入目录执行配置脚本和编译
    [hightman@d1 ~]$ cd scws-1.0.0
    [hightman@d1 ~]$ ./configure –prefix=/usr/local/scws ; make ; make install
    注:这里和通用的 GNU 软件安装方式一样,具体选项参数执行 ./configure –help 查看。
    常用的三个选项为:
    –prefix=<scws的安装目录>
    –disable-mmap     <这表示禁用 MMAP 来读取 xdb,在 debian, ubuntu 的部分 Linux 中建议关闭 mmap>
    –enable-developer <这表示以开发者模式编译,主要是用于调试编译时加入了 -g 选项及部分标准输出的信息>
    4. 顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在
    [hightman@d1 ~]$ ls -al /usr/local/scws/lib/libscws.la

    [PHP 扩展安装说明]

    本软件包,在源码目录树中包含了 php 扩展的移植代码,可用于 php4或 php5 ,这里介绍它的安装方式,假设您已经将 scws-1.0.0 安装到/usr/local/scws 中或 $prefix 中。

    安装此扩展要求您的 php 和系统环境安装了相应的 autoconf automake工具及 phpize

    1. 进入源码目录的 phpext/ 目录

    2. 执行 phpize (在PHP安装目录的bin/目录下)

    3. 执行 ./configure –with-scws=/usr/local/scws
       若 php 安装在特殊目录 $php_prefix, 则请在 configure 后加上
       –with-php-config=$php_prefix/bin/php-config

    4. 执行 make 然后用 root 身份执行 make install

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

    [scws]
    extension = scws.so
    scws.default.charset = gbk
    scws.default.fpath = $prefix/etc

    6. 命令行下执行 php -m 就能看到 scws 了或者在 phpinfo() 中看看关于 scws 的部分

    我用的不是这种安装模式,是自己编译到 libphp5.so 里面。
    1. 把源码目录的 phpext 目录拷贝到 php 源码目录下的 ext 目录并重新命名为 scws

    2.进入 php 源码目录下,运行命令
    rm configure
    ./buildconf –force

    3.重新编译 php
    在 configure 后加上 –with-scws=/usr/local/scws

    4.执行 make 然后用 root 身份执行 make install

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

    [scws]
    scws.default.charset = gbk
    scws.default.fpath = $prefix/etc

    建议开发者增加一个 scws.enabled 的开关,方便此种编译模式下的用户能自行关闭和打开此模块功能。

    以 WinNT 操作系统为例

    1.WinNT 平台下的 dll 文件下载
    http://www.yanbin.org/php-scws-windows-edtion/
    或在本地下载:
    SCWS 扩展 PHP 4.4.x 版二进制文件:http://lendy.9846.com/2008/04/08/scws-php-extension/scws-100_win32_php-44x/
    SCWS 扩展 PHP 5.2.x 版二进制文件:http://lendy.9846.com/2008/04/08/scws-php-extension/scws-100_win32_php-52x/

    2.安装方法很简单,将dll文件放到 extension_dir 下,并修改 php.ini 文件
    [scws]
    extension = php_scws.dll
    scws.default.charset = gbk
    scws.default.fpath = D:\xampp\php\ext\scws #存放字典和规则文件目录名。

    提供 xdb 文件下载:
    GBK: http://lendy.9846.com/2008/04/08/scws-php-extension/dictgbktar/
    UTF8: http://lendy.9846.com/2008/04/08/scws-php-extension/dictutf8tar/

    查看 phpinfo 下是否有

     另:如若在 Linux(FreeBSD) 下安装,请将字典文件和规则文件权限设置成 httpd 能访问的权限,或者直接 chown 成 httpd 用户。