开源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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
ajax 的post方法实例(带循环)
Jul 04 PHP
ThinkPHP标签制作教程
Jul 10 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
PHP读取PPT文件的方法
Dec 10 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
PHP 对象接口简单实现方法示例
Apr 13 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 Undefined index的问题
2009/06/01 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
第六章 php目录与文件操作
2011/12/30 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
公证委托书标准格式
2014/09/11 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
成绩单评语
2015/01/04 职场文书
沈阳故宫导游词
2015/01/31 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书