首页 > 后端开发 > php教程 > Thinkphp32使用scws中文分词 提取关键词

Thinkphp32使用scws中文分词 提取关键词

PHP中文网
发布: 2016-07-29 09:13:07
原创
1238 人浏览过

SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。
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
加入命名空间

1 namespace 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  分词个数,默认不用填写
     **/
    private function get_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 ($words as $val) {
            $tags[] = $val['word'];
        }
        return implode(',', $tags);
    }
      /**
     * 商品搜索结果页
     **/
    public function search(){
        $rzt=$this->get_tags("新款 牛漆皮小尖头直跟高跟单鞋910033 灰羊猄(7.31发货) 39");
        print_r($rzt);
    }
登录后复制

显示的结果为:

漆皮,单鞋,尖头,高跟,新款,发货,910033,7.31,39
登录后复制

以上就介绍了Thinkphp32使用scws中文分词 提取关键词,包括了require方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板