Thinkphp3.2使用scws中文分词提取关键词

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

SCWS 是 Simple ChineseWordSegmentation 的首字母缩写(即:简易中文分词系统)。

1.下载scws官方提供的类(这里使用的是pscws第四版的)

http://www.xunsearch.com/scws/down/pscws4-20081221.tar.bz2

下载XDB 词典文件 (这里使用的是utf8简体中文词典包)

http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2

2.解压scws类Pscws.class.php(这里我把pscws4.class.php文件名换成了pscws.class.php)和XDB_R.class.php(这里我把xdb_r.class.php文件名换成了大写的XDB_R.class.php)放到ThinkPHP\Library\Org\Util目录下面。

3.然后修改Pscws.class.php

加入命名空间

1namespace Org\Util;

将类的名称改为Pscws

把require_once (dirname(__FILE__) . '/XBD_R.class.php');这段代码删除掉。

修改XDB_R.class.php

加入命名空间

namespace Org\Util;

4.解压XDB 词典文件

在Public\admin目录下新建一个dict文件夹,然后将XDB 词典文件的dict.utf8.xdb解压到词目录下,再把scws类中的etc下面的rules.utf8.ini放到此目录下面。

5.在入口文件加入一行常量定义代码(其实就是定义词典文件和配置文件的路径)

define("CONF_PATH",dirname(__FILE__)."/Public/admin/dict/");

6.在IndexController.class.php控制器里面建立一个私有方法,供其他方法调用

/**

* 中文分词

* @params string $title 需要分词的语句

* @params int $num 分词个数,默认不用填写

**/PRivatefunctionget_tags($title,$num=null){$pscws=new\Org\Util\Pscws('utf8');$pscws->set_dict(CONF_PATH . 'dict.utf8.xdb');$pscws->set_rule(CONF_PATH . 'rules.utf8.ini');$pscws->set_ignore(true);$pscws->send_text($title);$words=$pscws->get_tops($num);$pscws->close();$tags=array();foreach($wordsas$val) {$tags[] =$val['word'];

}returnimplode(',',$tags);

}/**

* 商品搜索结果页

**/publicfunctionsearch(){$rzt=$this->get_tags("新款 牛漆皮小尖头直跟高跟单鞋910033 灰羊猄(7.31发货) 39");print_r($rzt);

}

显示的结果为:

漆皮,单鞋,尖头,高跟,新款,发货,910033,7.31,39

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航