标签归档:中文分词

scws-1.2.0 发布,支持 PHP5.4 新增用于多线程的 scws_fork()

2012-3-29: SCWS-1.2.0 Released.

1) 修改 php 扩展代码以兼容支持 php 5.4.x
2) 修正 php 扩展中 scws_get_tops 的 limit 参数不允许少于 10 的问题
3) libscws 增加 scws_fork() 从既有的 scws 实例产生分支并共享词典/规则集,主要用于多线程开发。
4) 新增部分版本的 win32 的 dll 扩展,详见下载页面

最新下载地址:http://www.xunsearch.com/scws/download.php
演示地址:http://www.xunsearch.com/scws/demo.php

[patch] php-scws 扩展在 5.4.x 下的编译兼容补丁

近期 php5.4.x 已经正式发布,已有网友在使用并汇报说 scws 的 PHP 扩展无法编译通过。

刚看了一下,因为 5.4.x 起 php 移除了 safe_mode 导致一些代码错误不通过编译,简单修改补丁如下,请大家先手动修改一下,稍后 scws-1.1.10 发布时会同步解决,并推出 5.4 的 win32 dll 文件。

Index: php_scws.c
===================================================================
RCS file: /home/cvsroot/scws/phpext/php_scws.c,v
retrieving revision 1.13
diff -c -r1.13 php_scws.c
*** php_scws.c 23 Dec 2011 07:05:26 -0000 1.13
--- php_scws.c 5 Mar 2012 03:32:46 -0000
***************
*** 359,368 ****
--- 359,370 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);
***************
*** 408,417 ****
--- 410,421 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);
***************
*** 456,465 ****
--- 460,471 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);

scws-1.1.9 发布,明确采用 BSD 协议;改进复合分词修正BUG等

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

最新下载地址:http://www.xunsearch.com/scws/download.php
演示地址:http://www.xunsearch.com/scws/demo.php

SCWS-1.1.7 发布,修正少量BUG。

下载地址
http://www.xunsearch.com/scws/download.php

主要更新记录:

1) 删除 __PARSE_XATTR__ 宏中企图修改 xattr 的内容的作法, 当 xattr 为常量字符串时会出错.
2) 调整 config.h 的包含方式移入 .c 文件而非 .h 文件
3) 增加一些PHP测试脚本, 位于phpext/scws_test.php, 精选了一些岐义较多的语句进行测试。
4) 修正 scws_has_word() 的一处内存汇露 (感谢lauxinz)
5) 修改调试模式的编译选项,去除-O2避免源码和代码无法对应。 (感谢lauxinz)

scws-1.1.6 发布

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>

下载地址:http://www.xunsearch.com/scws/download.php

SCWS-1.1.5 发布,修正重要BUG,须升级。

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

下载地址:http://www.xunsearch.com/scws/download.php