加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

SCWS 中文分词 php安装使用示例

发布时间:2023-10-04 10:45:20 所属栏目:PHP教程 来源:
导读:今天发现一个很好用的中文分词工具,分享一下

CWS 是 Simple Chinese Word Segmentation 的首字母缩写。

这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。 词是中文的最
今天发现一个很好用的中文分词工具,分享一下

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)); 
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章