今天發現一個很好用的中文分詞工具,分享一下
CWS 是 Simple Chinese Word Segmentation 的首字母縮寫(即:簡易中文分詞系統)。
這是一套基于詞頻詞典的機械式中文分詞引擎,它能將一整段的中文文本基本正確地切分成詞。 詞是中文的最小語素單位,但在書寫時并不像英語會在詞之間用空格分開, 所以如何準確并快速分詞一直是中文分詞的攻關難點。
SCWS 采用純 C 語言開發,不依賴任何外部庫函數,可直接使用動態鏈接庫嵌入應用程序, 支持的中文編碼包括 GBK、UTF-8 等。此外還提供了 PHP 擴展模塊, 可在 PHP 中快速而方便地使用分詞功能。
分詞算法上并無太多創新成分,采用的是自己采集的詞頻詞典,并輔以一定的專有名稱,人名,地名, 數字年代等規則識別來達到基本分詞,經小范圍測試準確率在 90% ~ 95% 之間, 基本上能滿足一些小型搜索引擎、關鍵字提取等場合運用。首次雛形版本發布于 2005 年底。
二、scws安裝
- # wget -c http://www.xunsearch.com/scws/down/scws-1.2.1.tar.bz2
- # tar jxvf scws-1.2.1.tar.bz2
- # cd scws-1.2.1
- # ./configure --prefix=/usr/local/scws
- # make && make install
三、scws的PHP擴展安裝
- # cd ./phpext
- # phpize
- # ./configure --with-php-config=/usr/local/php5410/bin/php-config
- # make && make install
- # echo "[scws]" >> /usr/local/php5410/etc/php.ini
- # echo "extension = scws.so" >> /usr/local/php5410/etc/php.ini
- # echo "scws.default.charset = utf-8" >> /usr/local/php5410/etc/php.ini
- # echo "scws.default.fpath = /usr/local/scws/etc/" >> /usr/local/php5410/etc/php.ini
四、詞庫安裝
- # wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
- # tar jxvf scws-dict-chs-utf8.tar.bz2 -C /usr/local/scws/etc/
- # chown www:www /usr/local/scws/etc/dict.utf8.xdb
例子:
- header("Content-Type:text/html; charset=utf-8");
- define('APP_ROOT', str_replace('//', '/', dirname(__FILE__)));
- $test = '真怕有一天我們再次成為交叉線,我想那時就再也不可能回歸了,快樂永遠是拿痛苦做代價,你現在多幸福,多快樂,你以后就會越傷心越難過,不想發生!';
- function get_tags_arr($title)
- {
- require(APP_ROOT.'/pscws4.class.php');
- $pscws = new PSCWS4();
- $pscws->set_dict(APP_ROOT.'/scws/dict.utf8.xdb');
- $pscws->set_rule(APP_ROOT.'/scws/rules.utf8.ini');
- $pscws->set_ignore(true);
- $pscws->send_text($title);
- $words = $pscws->get_tops(5);
- $tags = array();
- foreach ($words as $val) {
- $tags[] = $val['word'];
- }
- $pscws->close();
- return $tags;
- }
- print_r(get_tags_arr($test));
- function get_keywords_str($content){
- require(APP_ROOT.'/phpanalysis.class.php');
- PhpAnalysis::$loadInit = false;
- $pa = new PhpAnalysis('utf-8', 'utf-8', false);
- $pa->LoadDict();
- $pa->SetSource($content);
- $pa->StartAnalysis( false );
- $tags = $pa->GetFinallyResult();
- return $tags;
- }
- print(get_keywords_str($test));
新聞熱點
疑難解答