开源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下一个非常全面获取图象信息的函数
Nov 20 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
CURL状态码列表(详细)
Jun 27 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
php生成QRcode实例
Sep 22 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
CI框架数据库查询之join用法分析
May 18 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php查询内存信息操作示例
May 09 PHP
零基础php编程好学吗
Oct 11 PHP
PHP autoload使用方法及步骤详解
Sep 05 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 cookie使用方法学习笔记分享
2013/11/07 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
vue实现简单图片上传
2020/06/30 Javascript
基于python的七种经典排序算法(推荐)
2016/12/08 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
python新手学习使用库
2020/06/11 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
文秘专业毕业生就业推荐信
2013/11/08 职场文书
中英文自我评价常用句型
2013/12/19 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
店面出租协议书范本
2014/11/28 职场文书
安全责任协议书范本
2016/03/23 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫