开源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个人网站架设连环讲(三)
Oct 09 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
Windows7下的php环境配置教程
Feb 28 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
php封装的mysqli类完整实例
Oct 18 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 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中实现简单的ACL 完结篇
2011/09/07 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
Ionic快速安装教程
2016/06/03 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
用Python shell简化开发
2018/08/08 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
python中列表的含义及用法
2020/05/26 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
初任培训自我鉴定
2013/10/07 职场文书
外国语学院毕业生自荐信
2013/10/28 职场文书
技术总监岗位职责
2013/12/05 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技