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


Posted in PHP onApril 11, 2014

一、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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
destoon之一键登录设置
Jun 21 PHP
PHP中require和include路径问题详解
Dec 25 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 #PHP
PHP动态生成javascript文件的2个例子
Apr 11 #PHP
php实现数组筛选奇数和偶数示例
Apr 11 #PHP
php求正负数数组中连续元素最大值示例
Apr 11 #PHP
PHP入门经历和学习过程分享
Apr 11 #PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 #PHP
php中的curl使用入门教程和常见用法实例
Apr 10 #PHP
You might like
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue如何截取字符串
2019/05/06 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python中的lambda表达式用法详解
2016/06/22 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python上下文管理器和with块详解
2017/09/09 Python
pandas实现导出数据的四种方式
2020/12/13 Python
python绘制汉诺塔
2021/03/01 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
金属材料工程个人求职的自我评价
2013/12/04 职场文书
技校生自我鉴定
2013/12/08 职场文书
结婚典礼证婚词
2014/01/11 职场文书
写自荐信的注意事项
2014/03/09 职场文书
爽歪歪广告词
2014/03/20 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
高一化学教学反思
2016/02/22 职场文书
小数乘法教学反思
2016/02/22 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
cypress测试本地web应用
2022/06/01 Javascript