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

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

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

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

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

动态

  • 推荐!!基于 scws + Xapian 的开源全文搜索引擎 xunsearch(迅搜)发布,是非常好用的 php 全文解决方案!
  • 2013-7-11: SCWS-1.2.2 Released.1) 改进中英夹杂的长词复合分法,比如 "奥迪A6/奥迪/A6"2) 修正 pscws23 演示文件的一些写法与新版 PHP 不兼容3) 修正一些 configure 检测错误
  • 2013-1-15: SCWS-1.2.1 Released.1) 将源码迁移并托管到 github2) 改进 C API 中 scws_fork() 的算法,使之更为合理3) 迁移并修改新版官方主页:http://www.xunsearch.com/scws
  • 2012-3-29: SCWS-1.2.0 Released.1) 修改 php 扩展代码以兼容支持 php 5.4.x2) 修正 php 扩展中 scws_get_tops 的 limit 参数不允许少于 10 的问题3) libscws 增加 scws_fork() 从既有的 scws 实例产生分支并共享词典/规则集,主要用于多线程开发。4) 新增部分版本的 win32 的 dll 扩展,详见下载页面
  • 2011-12-26: SCWS-1.1.9 Released.1) 明确使用开源协议 New BSD License 发布新版本2) 深度优化复合分词中的 SCWS_MULTISHORT 选项,更为合理有效,符合全文检索的需求3) 测试脚本自动加载当前目录下的 dict_user.txt 文本词典4) 修正 scws.c 中 __PARSE_XATTR__ 宏的 BUG 导致 scws_get_tops 和 scws_get_words 的 xattr 参数工作不正常的问题5) 移除 scws.c 中关于 jabberd2s10 的注释,已不包含它的代码6) 为独立使用的 .h 文件添加 C++ 的 extern "C" 标记以便直接使用:xdb.h,xdict.h,xtree.h,pool.h,darray.h
  • 2011-07-30: SCWS-1.1.8 Released.1) win32/目录新增 vc9 工程文件, 默认为 php-5.3.x 提供的 php_scws.dll 采用 VC9(thread-safety) 编译2) 修改英语专有名词的识别方式, 原先 X.Y.Z 必须字母全大写,现也允许小写3) 修改 congiure.in 在 ---enable-developer 选项的处理方式,不覆盖预设的 CFLAGS4) 改变数字字母单独成词时的规则,当其中同时包含2个连续字母以及2个连续数字时强制拆分。例:原先单独的 iso9001 是整词,新规则切为 iso+9001 而 i9001 则保持不变仍为。这样做更有利于全文检索。
  • 2011-05-21: SCWS-1.1.7 Released.1) 删除 __PARSE_XATTR__ 宏中企图修改 xattr 的内容的作法, 当 xattr 为常量字符串时会出错.2) 调整 config.h 的包含方式移入 .c 文件而非 .h 文件3) 增加一些PHP测试脚本, 位于phpext/scws_test.php, 精选了一些岐义较多的语句进行测试。4) 修正 scws_has_word() 的一处内存泄露 (感谢lauxinz)5) 修改调试模式的编译选项,去除-O2避免源码和代码无法对应。 (感谢lauxinz)
  • 2011-04-20: SCWS-1.1.6 Released.1) 修正夹杂在汉字中间的1-2个英文字符的词性为 en 而不是原来的 un 导致清除符号时消失.2) 调整将数字后面的独立 % 纳入整词作为百分比,如 33.3% 作为整词而不再是 33.3 和 %3) 修改连字符(-)和下划线(_)的规则,当出现在字母单词之间时视为同一词而不再强行切开,此时如果激活复合分词的 DUALITY 选项,则仍能将符号切开作为复合词。4) 修正浮点数的识别规则,避免将IPv4地址识别为2个小数的尴尬,比如 192.168.1.1 以前会被切成 192.168 和1.1 2个数字,现在不会了。5) libscws 安装后将所有的头文件(*.h)按装到 $prefix/include/scws 而不是以前的 $prefix/include,故采用C API开发时头部建议写 #include <scws/scws.h>
  • 2010-12-31: SCWS-1.1.5 Released.1) 修正 xdb.c 中存在的一处缓冲区溢出, 感谢论坛网友 hovea.2) 修正 phpext/ 中 scws_get_result() 参数解析里多了一个z 的问题,感谢网友(阿男)告知3) 修正 scws.c 中某些字符在ignore symbol设置下无效的问题4) 修正 1.1.4 的 xdb.c 270行处由于书写错误导致的严重错误, 1.1.4版作废应及时升为 1.1.5
  • 2010-12-02: 新增基于HTTP/post的SCWS在线分词API,供一些云平台的应用程序简易轻型调用。
  • 2010-09-15: SCWS-1.1.3 Released.1) 将 cli/ 下的工具程序命名下划线改成连接线(减号), gen_scws_dict 改为 gen-scws-dict2) 消除 php5.3 的警告信息, 重写 phpext/ 中的部分zend API, 统一采用 zend_parse_parameters()
  • 2010-05-09: SCWS-1.1.2 Released.1) 这是一个bug fixed的发布, 修正非内存模式的词典返回的 malloced 标识与 zflag_symbol 冲突导致姓名识别失败.2) 附带修正 phptool_for_scws_xdb.zip 导出词典时最后出现负偏移的 bug3) 新增支持 php-5.3.x 的 php_scws.dll,编译环境为 VC6, x86, ThreadSafe4) 关于 1.1.x 的新功能的详细用法及介绍请点此进入BLOG查看文本自动分类新词TF/IDF计算器
  • 2010-03-04: SCWS-1.1.1 Released, 修正在 xdict 中针对 SCWS_WORD_MALLOCED 定义过大(应为0x80)导致内存泄露.
  • 2010-03-19: 简体中文 xdb 词典更新, 修正部分生冷汉字被误当符号清除的 Bug(感谢 iSS的反馈), 点击这里重新下载XDB词典.
  • 2010-01-28: SCWS-1.1.0 Released.1) 新增功能: 支持载入纯文本词典(TXT), 一次分词可使用多个词典, 以实现不改变核心词库的原则下快速增减词。2) 新增功能:判断文本中是否包含指定词性的词汇及获取指定词性的词汇列表(词性参数和scws_get_tops相同)3) 该版本同步编译支持 Win32 的 php_scws.dll,支持 5.2.x 及 4.4.x 系列的 PHP4) scws_gen_dict 所有的文本词典格式更为宽松与add_dict兼容,允许多个空格或制表符分割,可省略除词外的选项
  • 2009-7-31 SCWS 发布 1.0.4, 修正紧贴在中文后结尾的1~2个英文字母返回长度多1的bug。
  • 2009-7-16 SCWS 中的 php 扩展实现略作修改以正确支持 PHP5.3+, 版本号没有改变, 但即日起的下载包已作更新。
  • 2009-7-1 发布一套用纯 php 开发的 xdb 词典导入与导出工具,有需要的请下载参考使用(phptool_for_scws_xdb.zip)。
  • 2009-5-26 SCWS 发布更新 1.0.3 版,整合yanbin提供的win32编译工程文件及少数地方的兼容,但需要用户自己编译,因为我也没有编译环境,只是将代码调整到兼容win32环境。
  • 2009-5-15 SCWS 发布更新 1.0.2 版,加入词性规则消岐,很好的处理了大部分短词岐义分词。
  • 2008-12-21 SCWS 划入 FTPHP 项目,作为子项目重建本网站。
  • 2006 - 2007 陆续开发纯 PHP 实现的 PSCWS 第二版与第三版,2007-06-09 发布 scws-0.0.1 pre 版,功能基本完整,2008-03-08 发布 scws-1.0.0 正式版。

版本列表

版本 类型 平台 性能 其它
SCWS-1.1.x C 代码 *Unix*/*PHP* 准确: 95%, 召回: 91%, 速度: 1.2MB/sec 
PHP扩展分词速度: 250KB/sec
[下载] [文档] [安装说明]
php_scws.dll(1) PHP扩展库 Windows/PHP 4.4.x 准确: 95%, 召回: 91%, 速度: 40KB/sec [下载] [文档] [安装说明]
php_scws.dll(2) PHP扩展库 Windows/PHP 5.2.x 准确: 95%, 召回: 91%, 速度: 40KB/sec [下载] [文档] [安装说明]
php_scws.dll(3) PHP扩展库 Windows/PHP 5.3.x 准确: 95%, 召回: 91%, 速度: 40KB/sec [下载] [文档] [安装说明]
php_scws.dll(4) PHP扩展库 Windows/PHP 5.4.x 准确: 95%, 召回: 91%, 速度: 40KB/sec [下载] [文档] [安装说明]
PSCWS23 PHP源代码 不限 (不支持UTF-8) 准确: 93%, 召回: 89%, 速度: 960KB/min [下载] [文档]
PSCWS4 PHP源代码 不限 准确: 95%, 召回: 91%, 速度: 160KB/min [下载] [文档]

scws的更多相关文章

  1. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

  2. SCWS分词扩展在UNIX/LINUX下的安装方法

    <?php/** * 中文分词处理方法 *+--------------------------------- * @param stirng  $string 要处理的字符串 * @param ...

  3. SCWS分词扩展在WINDOWS下的安装方法

    安装之前先确认您是否拥有主机的安装权限,否则无法进行安装,安装步骤如下: 1. 根据您当前用的 PHP 版本,下载相应已编译好的 php_scws.dll 扩展库. 目前支持以下版本   [PHP-4 ...

  4. Sphinx 之 Coreseek、Sphinx-for-chinaese、Sphinx+Scws 评测

    Sphinx是一个基于SQL的全文检索引擎:普遍使用于很多网站:但由于中英文的差异,其本身,对中文的支持并不好.主要体现在对一段话断词:英文只需按照空格对其分词即可:但对于博大精深的中文来说,却是件困 ...

  5. Thinkphp3.2使用scws中文分词 提取关键词

    SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统).1.下载scws官方提供的类(这里使用的是pscws第四版的)http://www ...

  6. php+中文分词scws+sphinx+mysql打造千万级数据全文搜索

    转载自:http://blog.csdn.net/nuli888/article/details/51892776 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图 ...

  7. 中文分词 sphni与scws

    1.安装sphnixcd /usr/local/srcwget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gztar -zxvf ...

  8. scws安装

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

  9. scws简单中文分词

    demo如下: /** * 中文分词 * @param $keyword * @param $getTop * @param $limit * @return array */ function sp ...

  10. php分词工具scws

    分词工具   sphinx  支持php版本5.2.2~6.0因此选用scws 文档地址 http://www.xunsearch.com/scws/docs.php#instscws 简单的demo ...

随机推荐

  1. phpCURL抓取网页内容

    参考代码1:<?php // 创建一个新cURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, " ...

  2. hibernate工作流程、session

    hibernate是对jdbc的封装,不建议直接使用jdbc的connection操作数据库,而是通过session操作数据库.session可以理解为操作数据库的对象. session与connec ...

  3. VBA/VBScript提取Word(*.doc)文件中包含的图片(照片)

    VBA/VBScript提取Word(*.doc)文件中包含的图片(照片)   要处理的人事简历表是典型的Word文档,其中一人一份doc,里面包含有个人的照片,如果要把里面的照片复制出来就比较麻烦了 ...

  4. 使用GetMirror一次镜像多个实体

    public static void GetMirror(this ObjectIdCollection ids, Point3d p1, Point3d p2, bool s, params Ent ...

  5. ThinkPHP框架表单验证AJAX

    验证有两种方式:静态验证与动态验证. 一.静态验证 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 验证时要在test表的Model里面加验证条件:新建testModel.class. ...

  6. Centos7搭建ansible运维自动化工具

    1)设置主机名和hosts文件 2)配置阿里云repo源 Wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Ce ...

  7. 跟着alex学习了格式化输出,最大的感受就是编程这个事,一定要自己动手去做,才能学会。看会和自己会做完全是两码事

    学习了三天,现在学到格式化输出.看视频教程,alex和那个美女学员打情骂俏,真是羡慕啊. 教程看懂很容易,完全会了. 可是上手编程马上歇菜. 就这么几行的代码,我遇到了n多错误 首先是中文输入的错误, ...

  8. Atcoder Code Festival 2017 qual C 10.22 D题题解

    [题意概述] 给出一个只有小写字母的序列,问最少把序列分成几段可以满足每一段可以通过变换成为回文串.变换指的是交换子序列中的字母的位置. [题解] 我们把a~z分别设为2^0~2^25,每个子序列满足 ...

  9. 6.3.1 使用 pickle 模块读写二进制文件

    Python 标准库 pickle 提供的 dump() 方法 用于将数据进行序列化并写入文件(dump() 方法的protocol 参数为True 时可以实现压缩的效果),而load() 用于读取二 ...

  10. sql简单优化点滴

    select uppagent.agent_no AGENT_NO, ISNULL(countsubagent,0) REFERRAL_AGENT_NUM, ISNULL(countsubcustom ...