Hightman 论坛

完整版: SCWS不支持英文和中英文混合分词吗?
您当前正在浏览的是一个简化版本. 要观看完整版本, 请点这儿.
我现在想要做屏蔽词,只载入自定义的屏蔽词库,但好像英文及中英文混合分词都无效。
譬如:
$so = scws_new();
$so->set_charset('utf8');
$so->set_dict('words.txt',SCWS_XDICT_TXT);
$so->set_ignore(true);
$so->send_text("GMhello指导员");
echo '<pre>';
while ($tmp = $so->get_result())
{
var_dump($tmp);
}
$so->close();

在words.txt只定义如下内容
GM 1.0 1.0 *
hello指导员 1.0 1.0 *

而输出结果为:
array(1) {
[0]=>
array(5) {
["word"]=>
string(7) "GMhello"
["off"]=>
int(0)
["len"]=>
int(7)
["idf"]=>
float(4.86477518082)
["attr"]=>
string(2) "en"
}
}

"GM"和"hello"被合并了且"attr"变成了"en"而不是定义的"*",而"hello指导员"被拆分了。
实际上我只载入了我自定义的词库。
如果我只用全中文的分词是正常的。
不知道SCWS是不是不支持英文的分词啊。
除中文外其余的只按标点符号或空格切分,无缝连在一起的单词字母是不支持的。
Reference URL's