首頁  >  文章  >  後端開發  >  php 無法載入scws怎麼辦

php 無法載入scws怎麼辦

藏色散人
藏色散人原創
2021-09-06 09:06:231943瀏覽

php無法載入scws是因為沒有安裝成功,其解決方法:1、找到「scws-1.2.1.tar.bz2」;2、透過「make install」進行安裝;3、安裝scws的PHP擴充;4、安裝詞庫即可。

php 無法載入scws怎麼辦

本文操作環境:windows7系統、PHP5.4版、Dell G3電腦。

php 無法載入scws怎麼辦?開源php中文分詞系統SCWS安裝與使用實例

一、SCWS簡介

SCWS 是Simple Chinese Word Segmentation 的縮寫(即:簡易中文分詞系統)。

這是一套以詞頻字典為基礎的機械式中文分詞引擎,它能將一整段的中文文字基本上正確地切分成字。詞是中文的最小語素單位,但在書寫時並不像英語會在詞之間用空格分開, 所以如何準確并快速分詞一直是中文分詞的攻關難點。

SCWS 採用純 C 語言開發,不依賴任何外部庫函數,可直接使用動態連結庫嵌入應用程序, 支援的中文編碼包括 GBK、UTF-8 等。另外也提供了 PHP 擴充模組, 可在 PHP 中快速且方便地使用分詞功能。

分詞演算法上並無太多創新成分,採用的是自己採集的詞頻詞典,並輔以一定的專有名稱,人名,地名, 數字年代等規則識別來達到基本分詞,經小範圍測試準確率在90% ~ 95% 之間, 基本上能滿足一些小型搜尋引擎、關鍵字提取等場合運用。首次雛形版本發佈於 2005 年底。

SCWS 由 hightman 開發, 並以 BSD 授權協議開源發布,原始碼託管在 github。

二、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

五、php實例程式碼。可以詳細看下SCWS官方API說明

程式碼如下:

//实例化分词插件核心类
 $so = scws_new();
 //设置分词时所用编码
 $so->set_charset('utf-8');
 //设置分词所用词典(此处使用utf8的词典)
 $so->set_dict('/usr/local/scws/etc/dict.utf8.xdb');
 //设置分词所用规则
 $so->set_rule('/usr/local/scws/etc/rules.utf8.ini ');
 //分词前去掉标点符号
 $so->set_ignore(true);
 //是否复式分割,如“中国人”返回“中国+人+中国人”三个词。
 $so->set_multi(true);
 //设定将文字自动以二字分词法聚合
 $so->set_duality(true);
 //要进行分词的语句
 $so->send_text(“欢迎来到火星时代IT开发”);
 //获取分词结果,如果提取高频词用get_tops方法
 while ($tmp = $so->get_result())
 {
     print_r($tmp);
 }
 $so->close();

傳回陣列結果說明:

程式碼如下:

word   _string_ 词本身 
idf        _float_ 逆文本词频 
off         _int_ 该词在原文本路的位置 
attr       _string_ 词性

推薦學習:《PHP影片教學

以上是php 無法載入scws怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多