开源php中文分词系统SCWS安装和使用实例

2015-01-24信息快讯网

这篇文章主要介绍了开源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_ 词性

六、在线API

也可以使用在线API实现中文分词,API地址:http://www.xunsearch.com/scws/api.php,详细说明也在地址中。

 

php利用scws实现mysql全文搜索功能的方法
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
php修改指定文件后缀的方法
Linux下PHP安装mcrypt扩展模块笔记
PHP下的Oracle客户端扩展(OCI8)安装教程
CentOS 6.3下安装PHP xcache扩展模块笔记
PHP使用Mysql事务实例解析
使用PHP和HTML5 FormData实现无刷新文件上传教程
Yii使用find findAll查找出指定字段的实现方法
使用YUI+Ant 实现JS CSS压缩
访问编码后的中文URL返回404错误的解决方法
phpword插件导出word文件时中文乱码问题处理方案
phpExcel中文帮助手册之常用功能指南
PHP中使用asort进行中文排序失效的问题处理
PHP解码unicode编码的中文字符代码分享
PHPAnalysis中文分词类详解
PHP header()函数常用方法总结
PHP获取网页标题的3种实现方法代码实例
PHP动态生成javascript文件的2个例子
php实现数组筛选奇数和偶数示例
php求正负数数组中连续元素最大值示例
PHP入门经历和学习过程分享
php中的curl使用入门教程和常见用法实例
免费手机号码归属地API查询接口和PHP使用实例分享
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
PHP读取大文件的类SplFileObject使用介绍
C#使用PHP服务端的Web Service通信实例
php5.2 Json不能正确处理中文、GB编码的解决方法
php ctype函数中文翻译和示例
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
使用Discuz关键词服务器实现PHP中文分词
php网页标题中文乱码的有效解决方法
©2014-2024 dbsqp.com