中文分词scws在linux下支持php扩展安装方法

    SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。

    这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点。

    SCWS 采用纯 C 语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序, 支持的中文编码包括 GBK、UTF-8 等。此外还提供了 PHP 扩展模块, 可在 PHP 中快速而方便地使用分词功能。

    并且兼容支持 PHP7 扩展。

    

    开发环境:虚拟机+php7+nginx 1.10.2


    实际安装步骤:

    第一部分:

1、进入服务器的根目录
[root@root /]# cd /usr/local/src

2、取得 scws的代码
[root@root src]#  wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2

3、解开压缩包 
[root@root src]# tar xvjf scws-1.2.3.tar.bz2

4、进入目录
[root@root src]# cd scws-1.2.3

5、执行配置脚本和编译
[root@root scws-1.2.3]# ./configure --prefix=/usr/local/scws
[root@root scws-1.2.3]# make
[root@root scws-1.2.3]# make install

6、顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在
[root@root scws-1.2.3]# ls -al /usr/local/scws/lib/libscws.la
-rwxr-xr-x 1 root root 916 11月 27 17:52 /usr/local/scws/lib/libscws.la

7、
[root@root scws-1.2.3]# /usr/local/scws/bin/scws -h
如果安装成功会显现类似下面的信息
scws (scws-cli/1.2.3)
Simple Chinese Word Segmentation - Command line usage.
Copyright (C)2007 by hightman.

8、用 wget 下载并解压词典,或从主页下载然后自行解压再将 *.xdb 放入
[root@root scws-1.2.3]# cd /usr/local/scws/etc
[root@root etc]# wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2
[root@root etc]# wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
[root@root etc]# tar xvjf scws-dict-chs-gbk.tar.bz2
dict.xdb
[root@root etc]# tar xvjf scws-dict-chs-utf8.tar.bz2
dict.utf8.xdb
[root@root etc]# ls
dict.utf8.xdb  dict.xdb  rules_cht.utf8.ini  rules.ini  rules.utf8.ini  scws-dict-chs-gbk.tar.bz2  scws-dict-chs-utf8.tar.bz2


    第二部分:

1、进入到scws源码的安装目录的(即: /usr/local/src/scws-1.2.3)
[root@root src]# cd scws-1.2.3/
[root@root scws-1.2.3]# ls
aclocal.m4  AUTHORS    cli      config.guess  config.h.in  config.status  configure     COPYING  etc      install-sh  libtool    
Makefile     Makefile.in  NEWS    README    win32API.md      ChangeLog  compile  config.h      config.log   config.sub     
configure.ac  depcomp  INSTALL  libscws     ltmain.sh  Makefile.am  missing      phpext  stamp-h1

2、进入源码目录的 phpext/ 目录 
[root@root scws-1.2.3]# cd phpext/

3、执行 phpize (在PHP安装目录的bin/目录下)
[root@root phpext]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

4、执行 ./configure --with-scws=/usr/local/scws 若php安装在特殊目录$php_prefix, 
则请在 configure 后加上 --with-php-config=$php_prefix/bin/php-config
[root@root phpext]# ./configure --with-scws=/usr/local/scws --with-php-config=/usr/local/php7/bin/php-config
[root@root phpext]# make
[root@root phpext]# make test 
[root@root phpext]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
[root@root phpext]#

5、在 php.ini 中加入以下几行
[root@root local]# vim  /etc/php.ini

[scws]
extension = scws.so
scws.default.charset = utf-8
scws.default.fpath = /usr/local/scws/etc

6、重新启动php.ini
[root@root src]# systemctl restart  php-fpm.service


    最后编写一个测试文件,查看中文分词效果:

    在本机添加host:(C:\Windows\System32\drivers\etc)

192.168.216.154  www.laravel.com

    在本机访问 http://www.laravel.com/test.php 即可访问虚拟机的该测试文件。


冷暖自知一抹茶ck  



冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论