一、SCWS了解一下

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

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

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

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

SCWS 由 hightman 开发, 并以 BSD 许可协议开源发布,源码托管在 github。

参考官方文档:http://www.xunsearch.com/scws/index.php

二、安装步骤:

1. 取得 scws-1.2.3 的代码

wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2

2. 解开压缩包

[hightman@d1 ~]$ tar xvjf scws-1.2.3.tar.bz2

3. 进入目录执行配置脚本和编译

[hightman@d1 ~]$ cd scws-1.2.3

[hightman@d1 ~/scws-1.2.3]$ ./configure --prefix=/usr/local/scws ; make ; make install

注:这里和通用的 GNU 软件安装方式一样,具体选项参数执行 ./configure --help 查看。

常用选项为:--prefix=<scws的安装目录>

4. 顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在

[hightman@d1 ~/scws-1.2.3]$ ls -al /usr/local/scws/lib/libscws.la

5. 试试执行 scws-cli 文件

[hightman@d1 ~/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.

...

6 用 wget 下载并解压词典,或从主页下载然后自行解压再将 *.xdb 放入 /usr/local/scws/etc 目录中{笔者所用字符集是utf-8}

[hightman@d1 ~/scws-1.2.3]$ cd /usr/local/scws/etc

[hightman@d1 /usr/local/scws/etc]$ wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2

[hightman@d1 /usr/local/scws/etc]$ tar xvjf scws-dict-chs-utf8.tar.bz2

gbk下载:wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2【utf-8的伙伴略过此条】

7、进入源码目录的 phpext/ 目录

8、执行 phpize (在PHP安装目录的bin/目录下)

9、执行 ./configure --with-scws=/usr/local/scws --with-php-config=/usr/local/php/bin/php-config (php-config绝对路径)

10、 执行 make 后再执行 make test 查看是否有错,最后在执行 make install

11、 在 php.ini 中加入以下几行

[scws]

;未指定extension_dir的情况下, extension 写 scws.so 的绝对路径

extension =scws.so

scws.default.charset = utf8

scws.default.fpath = /usr/local/scws/etc

中途错误汇总:

  • 出现如图错误 yum install gcc解决;
  • 出现如图错误 打开php.ini文件,取消禁用proc_open;
  • 有的人说重启php-fpm报错,那可能是因为你将[scws]的配置放在 php.ini末尾了!

最新文章

  1. 用django创建一个项目
  2. 升级npm
  3. HashTable初次体验
  4. Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)
  5. js实现99乘法表
  6. iOS- Could not find a storyboard named &#39;Main&#39; in bundle NSBundle
  7. mysql-mysql悲观锁和乐观锁
  8. 不含类解决最后一个li边距问题
  9. 转:《JavaScript—之对象参数的引用传递》
  10. ios开发中,A valid provisioning profile for this executable was not found,的解决方法
  11. 处理MVC中默认的Json方法返回时间的问题
  12. DEV中gridview常用属性的设置
  13. java按值传递理解(转)
  14. Android UI布局TableLayout
  15. 总结文件操作函数-文件夹(三)-C语言
  16. VMware GSX Server 3.2.1 Build 19281免费下载
  17. .NET程序保护专家.NET Reactor发布4.7版本
  18. 设计模式-单体模式(C++)
  19. [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义
  20. 2018第一波iOS经典笔试题(现场实拍)

热门文章

  1. angular1结合webpack构建工具
  2. iDempiere 使用指南 绿色版一键启动测试环境
  3. OSGi Bundle
  4. File GDB API
  5. percona mysql 5.7再centerOS 7上的安装
  6. django视图函数解析(三)
  7. Flask入门flask-script 蓝本 钩子函数(三)
  8. windows 服务器时间同步失败处理方法
  9. 如何使用Kubernetes里的NetworkPolicy
  10. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException 异常