Hightman 论坛

完整版: SCWS切分的字符串是否有长度限制?
您当前正在浏览的是一个简化版本. 要观看完整版本, 请点这儿.
在linux下装了scws1.1.2,并且装了php5的扩展,但是发现在分词时对于较长的字符串会自动截取前多少个字符进行切分,不知这是不是一个BUG?
这是SCWS的一个功能吧,参见 scws_set_multi
我看了一下scws_set_multi,似乎不能解决我得问题。我再描述一下,打个比方,我要切分一段有200个汉字的字符串,但是返回的分词数组只包含了前100个汉字的词。
我还是把代码贴出来吧。

<?php
$so = scws_new();
$title = "周冰倩在上海音乐学院接受了长达13年的正规音乐教育,而后转战歌坛。那首经典的《真的好想你》曾经红遍大江南北,很多歌迷在表情达意时都会首选这支歌。周冰倩的两大爱好:烧菜与玩车。烧菜最拿手是“炒鸡蛋”。别以为炒鸡蛋是最简单的活,她炒的可是与众不同,从敲蛋到调匀,从下油到火候,从调料到配菜,她都另有一功,炒成的鸡蛋又鲜又嫩,谁尝都夸“味道好极了!”玩车却是车盲。所谓“玩”只是鉴赏,家中私车由她出主意选购,造型、性能她谈得头头是道,却由爸妈专用,而她压根儿不会开,原因是对路一窍不通。";
$so->send_text($title);
$tmp = $so->get_result();
print_r($tmp);
$so->close();
?>

从返回的分词数组可以看出来,语句的后半句“从下油到火候,从调料到配菜,她都另有一功,炒成的鸡蛋又鲜又嫩,谁尝都夸“味道好极了!”玩车却是车盲。所谓“玩”只是鉴赏,家中私车由她出主意选购,造型、性能她谈得头头是道,却由爸妈专用,而她压根儿不会开,原因是对路一窍不通。" 并没有切分,请问这是怎么回事?
请仔细看说明,$so->get_result() 并不是一次调用,需要多次调用直到返回FALSE

例子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();
?>
Reference URL's