作为程序员一定要保持良好的睡眠,才能好编程

中文分词PSCWS4使用说明_自动分词

发布时间:2016-06-26

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));


下载文件 

Pscws.zip


如何在Tp中使用:


第一步:把文件放在 ThinkPHP\Library\Org\Util\Pscws

            需要建立 Pscws 这个文件夹,把以下两个文件放在这里

         

d61.png

第二步:把检索库放在 根目录  /Public/Pscws 这个目录下


d62.png


第三步:在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));




d63.png


把所有的关键字,存储在 fc 中。


使用 print_r($fc);  检测拆分好的词组。





$text="我是中国人";


d64.png


这是结果,对于一个字来说,我们划分词组是没有意义的,因此有这么一段话:

if(mb_strlen($sv['word'],"utf-8")>1){
    $fc[]=$sv['word'];
}


如果字数不大于1 就不要返回了,返回来也是一个字,没意义。

如果这段代码加上后,就得到一个词:中国人