请输入您要查询的百科知识:

 

词条 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扩展分词速度: 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 

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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 12:33:12