开源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 相关文章推荐
对盗链说再见...
Oct 09 PHP
967 个函式
Oct 09 PHP
我的论坛源代码(十)
Oct 09 PHP
DedeCms模板安装/制作概述
Mar 11 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
php控制文件下载速度的方法
Mar 24 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 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
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
深入分析PHP设计模式
2020/06/15 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Django卸载之后重新安装的方法
2017/03/15 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
解读python如何实现决策树算法
2018/10/11 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
自我评价是什么
2014/01/04 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
研讨会通知
2015/04/27 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
muduo TcpServer模块源码分析
2022/04/26 Redis
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python