开源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 相关文章推荐
PHP4.04简明安装
Oct 09 PHP
一步一步学习PHP(5) 类和对象
Feb 16 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
php给图片加文字水印
Jul 31 PHP
10款实用的PHP开源工具
Oct 23 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 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 之入门篇
2006/12/04 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php模板函数 正则实现代码
2012/10/15 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python 获取url中的参数列表实例
2018/12/18 Python
Python Web版语音合成实例详解
2019/07/16 Python
python、Matlab求定积分的实现
2019/11/20 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
新闻专业个人自我评价
2013/09/21 职场文书
《钱学森》听课反思
2014/03/01 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python