首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

開源中文分詞系統 SCWS 安裝與 PHP 整合完整教學

     編輯:PHP 綜合知識

什麼是 SCWS?

SCWS(Simple Chinese Word Segmentation)是一套基於詞頻詞典的機械式中文分詞引擎,由 hightman 開發,採 BSD 授權開源。核心以純 C 語言撰寫,無外部依賴,支援 GBK、UTF-8 等編碼,並提供 PHP 擴展模組,可直接在 PHP 程式中高效呼叫。分詞準確率約 90%~95%,適合小型搜尋引擎、關鍵字提取、文字分析等場景。

安裝步驟(Linux 環境)

1. 安裝 SCWS 核心庫

wget -c https://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

2. 安裝 PHP 擴展

cd phpext
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

隨後編輯 php.ini 載入擴展:

extension = scws.so
scws.default.charset = utf-8
scws.default.fpath = /usr/local/scws/etc/

3. 安裝詞典

wget https://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 使用範例

<?php
$so = scws_new();
$so->set_charset('utf-8');
$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 開發');

while ($res = $so->get_result()) {
    print_r($res);
    /* 回傳陣列結構:
       word  => 詞彙本身
       idf   => 逆文件頻率 (float)
       off   => 原文位置 (int)
       attr  => 詞性標註 (string)
    */
}
$so->close();

回傳結果說明

欄位型別說明
wordstring分出的詞彙
idffloat逆文件頻率,可作關鍵字權重參考
offint詞彙在原文的位移
attrstring詞性(如 n=名詞、v=動詞、ns=地名等)

線上 API 替代方案

若不想自建環境,可直接呼叫官方 API:
https://www.xunsearch.com/scws/api.php
支援 GET/POST,回傳 JSON 格式,適合低頻率呼叫或快速原型開發。

常見問題

  • phpize 找不到? 需安裝 php-dev 或 php-devel 套件
  • 詞典路徑錯誤? 確認 scws.default.fpath 指向正確目錄且結尾有斜線
  • 編碼不匹配? 統一使用 UTF-8,若資料為 GBK 需先 iconv 轉換
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved