您的位置:首页 > 其它

scws简单中文分词

2017-07-28 16:11 281 查看
demo如下:

/**
* 中文分词
* @param $keyword
* @param $getTop
* @param $limit
* @return array
*/
function splitWords($keyword, $getTop = false, $limit = 5): array
{
if (! $keyword) {
return [];
}

$filePath = ini_get('scws.default.fpath');
$handle = scws_new();
$handle->set_charset('utf-8');

// 添加分词字典
$handle->add_dict($filePath . '/dict.utf8.xdb');

// 设置分词规则
$handle->set_rule($filePath . '/rules.utf8.ini');

// 是否复式分割
$handle->set_duality(false);

// 忽略标点符号
$handle->set_ignore(true);

// 是否将闲散文字自动以二字分词法聚合
$handle->set_multi(SCWS_MULTI_SHORT);
$handle->send_text($keyword);

if ($getTop) {
$words = $handle->get_tops($limit);
} else {
$words = $handle->get_result();

// 根据词频降序排列
if ($words) {
$sortIdf = array_map(function($item){
return $item['idf'];
}, $words);
array_multisort($sortIdf, SORT_DESC, $words);
$words = array_slice($words, 0, $limit);
}
}

return $words ? $words : [];
}


附官网文档:http://www.xunsearch.com/scws/docs.php

php+中文分词scws+sphinx+mysql打造千万级数据全文搜索:http://blog.csdn.net/nuli888/article/details/51892776
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: