废话不多说,直接上代码
常用的也就两种:
SCWS 和 phpanalysis
先给一段字符串:
$str = '真怕有一天,我们jg1552再次成为交叉线,我想那时就再也不可23454能回归了,快乐永远!$%是拿痛苦做代价,你现在^&%多幸福,多快乐,你以后^^&就会越FG伤心越难过,不想发生!';
一、SCWS
1、下载这两
a、pscws4中的 pscws4.class.php和xdb_r.class.php文件放到根目录的/extend/org下
b、修改命名规则,使之符合tp5
c、加命名空间,方便引入与调用
2、开始测试
$result=$this->get_tags($str);
dump($result);
//scws分词函数
public function get_tags($title){
//新建实例对象
$pscws=new Pscws('utf8');
$path = \Env::get('root_path');
$path = str_replace('\\','/',$path);
//设置字典文件和规则集文件
$pscws->set_dict($path . 'application/Common/Conf/etc/dict.utf8.xdb');
$pscws->set_rule($path . 'application/Common/Conf/etc/rules.utf8.ini');
//调用send_text()方法
$pscws->send_text($title);
$tags['words']= $pscws->get_result();
$pscws->close();
return $tags;
}
结果图
二、phpanalysis
下载文件包
1、放到根目录extend中,修改命名并加命名空间
2、测试结果
$pa = new PhpAnalysis();
$pa::$loadInit = false;
$pa->LoadDict();
$pa->SetSource($str);
$pa->StartAnalysis( false );
$result = $pa->GetFinallyResult();
$result = explode(' ',$result);
dump($result);
结果图
因此,可以看出,SCWS只能分割中文,遇到标点、字母、数字就会停止分割。但是分词速度很快
phpanalysis分词比较全面,会稍微慢点