Bamboo项目介绍
- Bamboo项目是一个基于机器学习技术的中文自然语言处理平台。
- Bamboo项目的主要目标:
Bamboo安装部署
方法一: 安装打过包的最新稳定版
- 下载源代码
- 安装CRF++工具包
- 安装CMake编译环境
- Slackware 默认自带CMake
- Ubuntu & Debian 系统使用: apt-get install cmake
- archlinux系统: 使用pacman -S cmake
- 其他Linux/Unix系统,请去CMake官方下载源代码编译。地址是:http://www.cmake.org
- 注:cmake需要2.6版本以上
- 使用CMake编译Bamboo
cd bamboo
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=release
make all
- 安装Bamboo到/opt/bamboo目录
make install
- 编译Bamboo PHP扩展
cd /opt/bamboo/exts/php
phpize
make
- 安装Bamboo PHP扩展
make install
- 安装后Bamboo的目录结构
- /opt/bamboo/bin/ : 可执行程序和训练脚本文件
- /opt/bamboo/etc/ : 配置文件
- /opt/bamboo/template/ : CRF训练模板文件 (.tmpl)
- /opt/bamboo/processor/ : processor库
- /opt/bamboo/exts/ : 扩展接口
- /usr/lib/ : 动态链接库
- /usr/include/bamboo/ : C/C++的头文件
方法二:安装测试svn trunk的最新源码
- 从google code的subversion导出最新的bamboo trunk源码:
Bamboo配置
- Bamboo安装完成后,其默认的配置文件都在/opt/bamboo/etc/目录下,每个Bamboo Parser都有自己的配置文件
- Bamboo配置方法可以参见Bamboo Configure Guide,建议初次使用者保留参数不变;对于对程序内部流程相对了解的高级用户,可以根据需要对参数进行调整
- 在php.ini配置文件中添加如下2行:
- extension = bamboo.so
- bamboo.parsers = crf_seg,crf_pos,crf_ner_ns, keyword
Bamboo训练统计
- Bamboo中的分词,词性标注和命名实体识别算法都是基于由字构词的文本标注思想,因此在使用Bamboo之前需要准备好已完成标注的的文本语料,然后使用CRF++工具包和相应的特征模板进行训练,最终得出各自的字典,统计信息和模型文件
- Bamboo中的主题词抽取是在TF和IDF的基础上,用词句关系图分析的算法计算所有分词的权重,最终给出Top权重词,因此在使用Bamboo的主题词抽取前也需要收集一定规模的文本语料,对其中的分词进行统计和训练,得出各种词的IDF和同现关系,以供抽取时计算使用。
- Bamboo训练工具:
/opt/bamboo/bin/auto_build -t [train_type] -f [train_file.txt] -d [train_dir] -p [thread_number]
- auto_build的训练参数:
- -t 选项指定了训练的类型,即是分词、词性、实体词还是主题词的训练
- -f 选项指定了训练语料的路径,缺省会自动下载98年人民日报1月份的文章作为语料
- -d 选项指定了训练语料的目录,该目录下的.txt文本文件会被当做主题词抽取的语料
- -p 选项指定了CRF++训练的线程数量,推荐和cpu数量一致
- auto_build的配置文件是/opt/bamboo/etc/build_settings,默认训练完成后,会在/opt/bamboo/下产生2个新目录:data/和index/
- data目录中存放了文本格式的语料和字典文件
- index目录中存放了二进制格式的训练model和字典trie树文件
- 除了缺省字典,Bamboo还为用户提供了自定义字典的工具lexicon,其具体方法请参考Bamboo Tools,用户可以使用lexicon定制自己的user_combine和break辞典,其功能如下所示:
在代码树中训练模型
在svn co出来的代码树里面,我们可以直接用下面命令训练模型(在代码树根目录下):
./source/tools/auto_build -t seg
生成的字典文件会在代码树根目录下的 index 目录里。
Bamboo测试
- Bamboo命令行接口:
/opt/bamboo/bin/bamboo -p [bamboo_parser] -c [bamboo_cfg]
- -p 选项的取值可以是crf_seg, crf_pos, crf_ner_nr, crf_ner_ns, crf_ner_nt, keyword,分别对应相应的Bamboo Parser
- -c 选项可以指定配置文件的路径,缺省会用/opt/bamboo/etc/目录下默认的配置文件
- Bamboo命令从标准输入接收文本,并根据不同的Parser选项输出相应的结果,例如:分词,词性,地名,主题词等