PHP利用PSCWS4分词,
看看PSCWS4 是何使用的?
import("Org.Util.Pscws.Pscws4"); //这是使用PSCWS4的实例: $pscws=new \PSCWS4('utf8'); $pscws->set_dict(ROOTPATH.'/Public/Pscws/dict.utf8.xdb'); $pscws->set_rule(ROOTPATH.'/Public/Pscws/rules.utf8.ini'); //分词调用 send_text() 将待分词的字符串传入, //紧接着循环调用 get_result() 方法取回一系列分好的词 //直到 get_result() 返回 false 为止 //返回的词是一个关联数组, 包含: word 词本身, idf 逆词率(重), //off 在text中的偏移, len 长度, attr 词性 $text=I("get.title"); $pscws->send_text($text); $fc=[]; while ($some = $pscws->get_result()){ foreach($some as $sv){ if(mb_strlen($sv['word'],"utf-8")>1){ $fc[]=$sv['word']; } } } $this->assign("fc",implode(",",$fc));
下载文件
如何在Tp中使用:
第一步:把文件放在 ThinkPHP\Library\Org\Util\Pscws
需要建立 Pscws 这个文件夹,把以下两个文件放在这里
第二步:把检索库放在 根目录 /Public/Pscws 这个目录下
第三步:在tp的一个控制器中键入如下代码
import("Org.Util.Pscws.Pscws4");
这是引入分词程序
//这是使用PSCWS4的实例: $pscws=new \PSCWS4('utf8'); $pscws->set_dict(ROOTPATH.'/Public/Pscws/dict.utf8.xdb'); $pscws->set_rule(ROOTPATH.'/Public/Pscws/rules.utf8.ini'); //分词调用 send_text() 将待分词的字符串传入, //紧接着循环调用 get_result() 方法取回一系列分好的词 //直到 get_result() 返回 false 为止 //返回的词是一个关联数组, 包含: word 词本身, idf 逆词率(重), //off 在text中的偏移, len 长度, attr 词性 $text=I("get.title"); $pscws->send_text($text); $fc=[]; while ($some = $pscws->get_result()){ foreach($some as $sv){ if(mb_strlen($sv['word'],"utf-8")>1){ $fc[]=$sv['word']; } } } $this->assign("fc",implode(",",$fc));
把所有的关键字,存储在 fc 中。
使用 print_r($fc); 检测拆分好的词组。
$text="我是中国人";
这是结果,对于一个字来说,我们划分词组是没有意义的,因此有这么一段话:
if(mb_strlen($sv['word'],"utf-8")>1){ $fc[]=$sv['word']; }
如果字数不大于1 就不要返回了,返回来也是一个字,没意义。
如果这段代码加上后,就得到一个词:中国人