CentOS Nginx php 安装中文分词SCWS扩展

2023-02-15 14:52:53 浏览数 (1)

最近正在做appsite框架传统网站架构的拓展、其中不免有SEO的部分。 在网上做了一点功课,meta中的 description比较关键,keywords据说已经不再受搜索引擎的关照了,不过这种事情现在不能盲目相信,既然做一个网站那么还是应该要照顾好关键词。但是没必要付出过高的人力成本,所以我这里想到的还是使用分词扩展来自动生成关键词。 这样做的好处是,无论搜索引擎是否在意关键词,我们有和内容相关度很高的关键词,这不会对我们带来损失。 基于程序算法生成的关键词,不需要我们花费人力成本,包括可以在后台控制是否开启该功能。

我这里选用的是对php支持比较好的 SCWS分词扩展。 如果分词的目的是更多的语义化分析、情感分析等,那还是应该考虑一下其他的分词库,不过基本上没有php支持。

进入正题

SCWS中文分词下载 SCWS安装说明

从官网上有详细的安装指导,我这里做一下简单的整理

(基于习惯选择UTF8)

代码语言:javascript复制
1. 取得 scws-1.2.3 的代码
$ wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2

2. 解开压缩包
$ tar xvjf scws-1.2.3.tar.bz2

3. 进入目录执行配置脚本和编译
$ cd scws-1.2.3
$ ./configure --prefix=/usr/local/scws ; make ; make install

注:这里和通用的 GNU 软件安装方式一样,具体选项参数执行 ./configure --help 查看。
常用选项为:--prefix=<scws的安装目录>

4. 顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在
$ ls -al /usr/local/scws/lib/libscws.la

5. 试试执行 scws-cli 文件
$ /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 目录中
$ cd /usr/local/scws/etc
$ wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
$ tar xvjf scws-dict-chs-utf8.tar.bz2

进入源码目录的 phpext/ 目录 ( cd ~/scws-1.2.3 )
$ cd ~/scws-1.2.3
$ cd phpext 
# 这一步缺少会报找不到config.m4
$ phpize
$ ./configure --with-scws=/usr/local/scws 
#若 php 安装在特殊目录 $php_prefix, 则请在 configure 后加上 --with-php-config=$php_prefix/bin/php-config
# 经测试出现问题时 这样做没有用,解决方案 找到实际使用的php安装目录 
# 使用 whereis php , which php 查找,如果还找不到 在页面中使用 phpinfo()找到对应的路径
# 我这里的实际地址是: /www/server/php/72/
# 2019-12-17更新,有可能位置会在其他地方,如果报错 找不到php-config 建议核实具体配置文件的位置 如 /www/server/php/72/bin/php-config

$ ./configure --with-scws=/usr/local/scws --with-php-config=/www/server/php/72/php-config
$ make
$ make install
# 这一步最后会输出扩展安装到的目录,注意拷贝 /.../extensions/....../scws.so 

编辑php.ini (最后插入)
extension = /.../extensions/....../scws.so # 使用绝对路径
scws.default.charset = utf8
scws.default.fpath = /usr/local/scws/etc

# 使用php -m 没有看到
# phpinfo可以看到扩展已经安装完毕

使用起来也是比较简单的

代码语言:javascript复制
$sh = scws_open();
$text = "和欣赏风景不同的是,自然探索针对目的地最具当地特色的文化元素、独特的自然动物和风景近距离接触。自然探索难度有低有高,带儿童出游的自然探索可以锁定交通方便、环境相对舒适的城镇郊外、风景区、自然保护区等。喜欢有挑战性的,可以选择极地、雨林、岛屿等野生地区,也可以跟随经验丰富的探索大师组队出发。无论是去哪个地区探索,都需要因地制宜准备出行装备。";
scws_send_text($sh, $text);
$top = scws_get_tops($sh, 30);
print_r($top);

0 人点赞