ThinkPHP3.2添加scws中文分词
前言
前一段时间,公司网站做站内搜索,只简单针对输入的文字进行搜索,作全匹配检索,搜索出来的内容很少。如何达到模糊搜索,匹配到更多的内容成了需要解决的问题。于是,今天想到可以做分词检索,如何对输入的一段文字进行分词就是关键,本着不做轮子的想法网上找找,还真有一些分词方案scws中文分词。
正文
1.引入PSCWS4文件包和XDB词典文件(utf-8),放进Vendor文件夹:
2.通过PSCWS4工具类进行分词操作:
//搜索页面
public function searched($keyword,$type=0,$page=1){
$keyword = rawurldecode($keyword);
Vendor('scws.pscws4');
$pscws = new \PSCWS4();
$pscws->set_dict(VENDOR_PATH.'scws/lib/dict.utf8.xdb');
$pscws->set_rule(VENDOR_PATH.'scws/lib/rules.utf8.ini');
//$keywords='第三方中文分词';
$pscws->set_ignore(true);
$pscws->send_text($keyword);
$words = $pscws->get_tops(5);
$tags = array();
foreach ($words as $val) {
$tags[] = $val['word'];
}
$pscws->close();
}
其中,$tag就是所得的分词。