开源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 相关文章推荐
php处理json时中文问题的解决方法
Apr 12 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 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
php实现图片添加水印功能
2014/02/13 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
js实现日历与定时器
2017/02/22 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Python中编写数据库模块的教程
2015/04/29 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python unittest实现api自动化测试
2018/04/04 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python 面试中 8 个必考问题
2018/11/16 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Python 文件数据读写的具体实现
2020/01/24 Python
Python模块相关知识点小结
2020/03/09 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
html5实现滑块功能之type="range"属性
2020/02/18 HTML / CSS
医药代表个人的求职信分享
2013/12/08 职场文书
经销商培训邀请函
2014/01/21 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
python三子棋游戏
2022/05/04 Python
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis