• 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 来设定,否则可能出现意外错误。
  • 相关阅读:
    Oracle数据表解锁
    VS2008 新建网站时没有模板解决办法
    64位WIN2008中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法
    Log4Net Appender配置
    使用过滤器过滤asp.net mvc输出内容
    Html.DropDownList也能绑定数据
    iirf有时有效,有时返回404错误的解决方法
    Oracle优化AutoTrace输出内容的含义
    Oracle使用Sql把XML解析成表(Table)的方法
    文件跨系统ftp传输后无法还原了,哎
  • 原文地址:https://www.cnblogs.com/feixiablog/p/8733940.html
Copyright © 2020-2023  润新知