scws 中文分词 文档地址 :http://www.xunsearch.com/scws/docs.php
1. 取得 scws-1.2.3 的代码
复制代码
1wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
2. 解开压缩包
复制代码
1[hightman@d1 ~]$ tar xvjf scws-1.2.3.tar.bz2
3. 进入目录执行配置脚本和编译
复制代码
1
2[hightman@d1 ~]$ cd scws-1.2.3 [hightman@d1 ~/scws-1.2.3]$ ./configure --prefix=/usr/local/scws && make && make install
注:这里和通用的 GNU 软件安装方式一样,具体选项参数执行 ./configure --help 查看。
常用选项为:--prefix=<scws的安装目录>
4. 顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在
复制代码
1[hightman@d1 ~/scws-1.2.3]$ ls -al /usr/local/scws/lib/libscws.la
5. 试试执行 scws-cli 文件
复制代码
1
2
3
4[hightman@d1 ~/scws-1.2.3]$ /usr/local/scws/bin/scws -h scws (scws-cli/1.2.3) Simple Chinese Word Segmentation - Command line usage. Copyright (C)2007 by hightman.
6 用 wget 下载并解压词典,或从主页下载然后自行解压再将 *.xdb 放入 /usr/local/scws/etc 目录中
复制代码
1
2
3
4
5[hightman@d1 ~/scws-1.2.3]$ cd /usr/local/scws/etc [hightman@d1 /usr/local/scws/etc]$ wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2 [hightman@d1 /usr/local/scws/etc]$ wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2 [hightman@d1 /usr/local/scws/etc]$ tar xvjf scws-dict-chs-gbk.tar.bz2 [hightman@d1 /usr/local/scws/etc]$ tar xvjf scws-dict-chs-utf8.tar.bz2
7.8.9. 这三步是用C程序测试 直接跳过 我们要做的是php测试
10. 在 php 中调用分词,安装 php 扩展。
假设您已经将 scws 按上述步骤安装到 /usr/local/scws 中。
安装此扩展要求您的 php 和系统环境安装了相应的 autoconf automake 工具及 phpize 。
1) 进入源码目录的 phpext/ 目录 ( cd ~/scws-1.2.3 )
这里出现
-bash: /usr/local/src/php-5.6.3/scripts/phpize: Permission denied
解决办法:
复制代码
1
2$ cd ~/scws-1.2.3/phpext/ $ locate phpize
2) 执行 phpize (在PHP安装目录的bin/目录下)
复制代码
1$ /usr/local/php/bin/phpize
3) 执行 ./configure --with-scws=/usr/local/scws
若 php 安装在特殊目录 $php_prefix, 则请在 configure 后加上 --with-php-config=$php_prefix/bin/php-config
编译出现错误
configure: error: Cannot find php-config. Please use --with-php-config=PATH
解决办法:
下面第一条命令 查找php-config 目录位置
复制代码
1
2$ locate php-config $ ./configure --with-php-config=/usr/local/php/bin/php-config --with-scws=/usr/local/scws
4) 执行 make 然后用 root 身份执行 make install
复制代码
1# make && make install
安装成功后 扩展共享目录:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
5) 在 php.ini 中加入以下几行
我的地址:/usr/local/php/etc/php.ini
复制代码
1
2
3
4
5
6
7
8[scws] ; ; 注意请检查 php.ini 中的 extension_dir 的设定值是否正确, 否则请将 extension_dir 设为空, ; 再把 extension = scws.so 指定绝对路径。 ; extension = scws.so scws.default.charset = utf8 scws.default.fpath = /usr/local/scws/etc
6) 命令行下执行 php -m 就能看到 scws 了或者在 phpinfo() 中看看关于 scws 的部分,记得要重启 web 服务器
才能使新的 php.ini 生效。
注意 可能有的php 客户端版本比较低, 使用 php -m 显示的是客户端的版本 并不是实际安装的版本
那么可以通过 程序中的 phpinfo() 在浏览器上访问查看
重启脚本如下
复制代码
1
2$ service php-fpm restart $ service nginx restart
7) 这样就算安装完成了,余下的工作只是PHP代码编写问题了。
关于 PHP 扩展的使用说明请参看代码中 phpext/README.md 文件或其它文档章节。
复制代码
1$ cat README.md #获取函数使用说明
下面 写一个常用的 去重的分词结果:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36<?php $so = scws_new(); $so->set_charset('utf8'); // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 $so->send_text("我是一个中国人,我会C++语言,我也有很多T恤衣服"); $words = array(); while ($tmp = $so->get_result()) { foreach ($tmp as $val) { if(!new_in_array($val, $words,'word')){ $words[] = array( 'word' => $val['word'], 'weight' => $val['idf'], ); } } } print_r($words); $so->close(); function new_in_array($need,$array,$column=''){ $flag = false; foreach ($array as $val) { if($val[$column] == $need[$column]){ $flag = true; break; } } return $flag; } ?>
最后
以上就是懵懂啤酒最近收集整理的关于php 中文分词使用的全部内容,更多相关php内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复