2009年1月4日星期日

Bamboo 安装指南

  • 文档属主: 刘鑫

  • 目标读者: 软件事业部全体员工
  • 版本历史:

环境需求

实现本文过程使用的环境如下: ::

  • Ubuntu 8.10
  • gcc 4.2
  • g++ 4.1
  • PostgreSQL 8.3.5

关于 Bamboo

Bamboo项目是一个中文语言分析引擎,开发者是Postgre领域久负盛誉的eeee团队。目前使用者还不算多,但是从http://code.google.com/p/nlpbamboo/wiki/Benchmark|测试数据来看也有着不错的成绩 。它最大的亮点是集成了PostgreSQL接口。

Bamboo项目提供DEB、RPM等几种格式的安装程序,不过源码编译也很方便。

参考资料

Bamboo 项目站点

Bamboo 安装入门

PostgreSQL 数据库系统 *NIX 简易安装指南

Bamboo 与 Tsearch2 的集成配置

环境准备

CRF++

编译Bamboo需要CRF++库支持,可以从这里下载

CRF++的安装并不复杂,标准的configure/make:

./configure
make
sudo make install

但是此时如果编译Bamboo,会提示找不到libcrfpp.so.0,因为默认情况下crf安装到/usr/local,我们可以修改path,也可以configure的时候指明--prefix参数。这里我建立了一个ln:

sudo ln -s /usr/local/lib/libcrfpp.so.0.0.0 /usr/lib/libcrfpp.so.0

CMake

Bamboo 安装需要cmake支持,在ubuntu下可以用apt安装:

sudo apt-get install cmake

安装

假设用户位于~/third-party目录下,Bamboo的源码包在~/downloads下:

tar vxf ~/downloads/bamboo-1.1.0.tar.bz2
cd bamboo-1.1.0
mkdir build
cd build
cmake ..
make
sudo make install

默认情况下bamboo安装在/opt/bamboo目录下,此时的bamboo还不能直接使用,因为需要辞典,训练过程很简单,详见Bamboo 安装入门。简单来说可以这样:

sudo /opt/bamboo/bin/autobuild -t crf_seg

这个过程非常漫长,在AMD 2300+ CPU,1G内存,kubuntu 8.10的机器上用时超过了12小时。我没有尝试,但是也许可以直接把编译生成的data和index目录复制过去使用。

Bamboo项目现在还支持词性、实体词和主题词分析,详见Bamboo 安装入门

PostgreSQL 集成

要在PostgreSQL中使用全文索引,首先应该安装Tsearch2引擎,详见PostgreSQL 数据库系统 *NIX 简易安装指南

配置好PostgreSQL后,进入Bamboo目录安装PostgreSQL支持,在默认设置下,我们需要编辑一下Make命令,将PG_CONFIG 指定为 /usr/local/pgsql/bin/pg_config。执行命令如下:

cd /opt/bamboo/exts/postgresql/chinese_parser
make
sudo make install

形式上我们需要一个stop word文件,实际上bamboo并不需要它的支持,所以可以在如下位置(默认安装路径)建立如下的空文件:

/usr/local/pgsql/share/tsearch_data/chinese_utf8.stop

接下来以超级用户登录到需要支持中文搜索的数据库,执行:

# \i /usr/local/pgsql/share/contrib/pg_bamboo.sql
# \i /usr/local/pgsql/share/contrib/chinese_parser.sql

如果没有错误,就可以执行SQL测试一下分词效果了:

select bamboo('中文分词');

SELECT to_tsvector('chinesecfg', '我爱北京天安门');

1 条评论:

Unknown 说...

为什么我找不到pg_bamboo.sql?还有bamboo.so