词条 | SCWS |
释义 | 简介SCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。 这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。词是汉语的基本语素单位,而书写的时候不像英语会在词之间用空格分开,所以如何准确而又快速的分词一直是中文分词的攻关难点。 SCWS 在概念上其实并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。 SCWS 是开放源码并且免费的。 SCWS 智能卡网络服务器,是由SIM卡行业开发的一种解决方案,旨在为运营商提供一个功能丰富的便携式环境来开发基于多媒体SIM卡的应用。 特色与内容SCWS 采用标准C开发由 hightman 个人开发,无任何第三方库函数依赖。提供 C的接口、PHP的扩展(源码、WIN32的DLL文件),是目前使用最方便的开源免费中文分词软件之一。 SCWS 特别为全文索引考虑,提供了自创的复合分词,可以把长词再分成短词,把散字按二元切词法进行结合的功能。 SCWS 默认提供通用的互联网信息词库,提供 PHP编写的词典导入导出工具 。自 1.1.1 版起,支持用户自定义文本词典,支持基于词性的规则权重。 SCWS 软件包中除包含核心库代码外,还包含一个命令行工具、词典转换工具。 版本情况SCWS项目仍在不断开发和更新中,当前最新版本为 1.2.0 版。 SCWS-1.1.x C 代码 *Unix*/*PHP* 准确: 95%, 召回: 91%, 速度: 1.2MB/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 C语言范例一个简单的分词实例: #include <scws.h> #include <stdlib.h> main() { scws_t s; scws_res_t res, cur; char *text = "Hello, 我名字叫李那曲是一个中国人, 我有时买Q币来玩, 我还听说过C#语言"; if (!(s = scws_new())) { printf("error, can't init the scws_t!\"); exit(-1); } scws_set_charset(s, "gbk"); scws_set_dict(s, "/usr/local/scws/etc/dict.xdb", SCWS_XDICT_XDB); scws_set_rule(s, "/usr/local/scws/etc/rules.ini"); scws_send_text(s, text, strlen(text)); while (res = cur = scws_get_result(s)) { while (cur != NULL) { printf("Word: %.*s/%s (IDF = %4.2f)\", cur->len, text+cur->off, cur->attr, cur->idf); cur = cur->next; } scws_free_result(res); } scws_free(s); } 编译:gcc -o test -I/usr/local/scws/include -L/usr/local/scws/lib test.c -lscws -Wl,--rpath -Wl,/usr/local/scws/lib PHP调用范例例子1. 使用类方法分词 <?php $so = scws_new(); $so->set_charset('gbk'); // 这里没有调用 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, '/path/to/dict.xdb'); scws_set_rule($sh, '/path/to/rules.ini'); $text = "我是一个中国人,我会C++语言,我也有很多T恤衣服"; scws_send_text($sh, $text); $top = scws_get_tops($sh, 5); print_r($top); ?> |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。