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