程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Thinkphp3.2使用scws中文分詞 提取關鍵詞,

Thinkphp3.2使用scws中文分詞 提取關鍵詞,

編輯:關於PHP編程

Thinkphp3.2使用scws中文分詞 提取關鍵詞,


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

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved