开源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 chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
php开发工具有哪五款
Nov 09 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
php处理json格式数据经典案例总结
May 19 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
根据key删除数组中指定的元素实现方法
Mar 02 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
php-fpm中max_children的配置
2019/03/15 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
详解如何较好的使用js
2016/12/16 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
Python中使用中文的方法
2011/02/19 Python
python实现多线程的两种方式
2016/05/22 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
详解python 爬取12306验证码
2019/05/10 Python
django序列化serializers过程解析
2019/12/14 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
光电信息专业应届生求职信
2013/10/07 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
上班打牌检讨书
2014/02/07 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
公司行政管理制度范本
2015/08/05 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
Python Numpy库的超详细教程
2022/04/06 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python