Thinkphp32使用scws中文分詞 擷取關鍵字

PHP中文网
發布: 2016-07-29 09:13:07
原創
1236 人瀏覽過

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)放到ThinkPHPLibraryOrgUtil目錄下面。
3.接著修改Pscws.class.php
加入命名空間

1 namespace Org\Util;
登入後複製

將類別的名稱改為Pscws

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

4.解壓縮XDB 字典檔案
在Publicadmin目錄下新建一個dict資料夾,然後將XDB 字典檔案的dict.utf8.xdb解壓縮到字目錄下,再把scws類別的etc下面的rules.utf8.ini放到此目錄下面。

5.在入口檔案加入一行常數定義程式碼(其實就是定義字典檔案和設定檔的路徑)

namespace Org\Util;
登入後複製


6.在IndexController.class.php控制器建立一個私有方法,讓其他方法可以呼叫

define("CONF_PATH", dirname(__FILE__)."/Public/admin/dict/");
登入後複製

顯示的結果為:

/**
     * 中文分词  
         * @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);
    }
登入後複製
以上介紹了Thinkphp32使用scws中文分詞提取關鍵字,包括了require方面的內容,希望對PHP有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板