中文分词语料库(借助 NlpBamboo 中文分词打造 PostgreSQL 的全文检索)
PostgreSQL 从 8.3 开始内建了全文检索功能 ,对于我们来说 ,只需要再找一个中文分词组件即可利用 PostgreSQL 打造完善的全文检索应用 。我选择的是 NlpBamboo 这个分词库 。
以下是在 FreeBSD 7.2 + PostgreSQL 8.3 环境下的配置过程(FreeBSD 和 PostgreSQL 相关的安装和设置请自行找资料)。
1 、安装 CMake:
print?
2 、安装 crf++:
print?
3、NlpBamboo 路径比较特殊 ,建立以下符号链接(其实不是全部需要;或者你偷懒一点 ,直接拷贝拉倒):
print?
4 、获取 NlpBamboo:
从 Google Code 取出 NlpBamboo 代码;或者从 NlpBamboo 下载打包文件 。
5 、进行 FreeBSD 下的补丁修改:
这里需要注意 ,由于 NlpBamboo 中的 bamboo 工具用到了 getline 这个函数 ,但 FreeBSD 默认没有提供 ,你可以找一个替代品 。我比较偷懒 ,直接把相关代码注释掉了 ,因为我实际上根本不会在服务器上用这个工具 。我都是在本地进行相关训练统计 。
这个 nlpbamboo-freebsd.patch(2.0 KB) 是我当前在用的一个 Patch 文件,你可以参考 。
6 、编译并安装 NlpBamboo:
print?
NlpBamboo 默认会安装到 /opt/bamboo/ 目录 ,有特殊要求 ,自己修改 。
NlpBamboo 安装后的目录结构:
/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++的头文件7 、下载分词库数据文件:
请到 NlpBamboo 下载 index.tar.bz2 或类似文件,解压到 /opt/bamboo/index 目录:
print?
8 、安装中文分词扩展到 PostgreSQL:
print?
9 、在需要的数据库中导入分词:
print?
10 、如果没有错误 ,你现在可以用以下命令测试了:
print?
更多关于 NlpBamboo 的资料 ,可以到 NlpBamboo Wiki 里好好研究一下 。
恩,最后 ,怎么使用 ,可以参看 PostgreSQL 的帮助文档 。或者等有空我写个在 Django 中的使用方法 。
动物凶猛 ,路过注意:
使用 PostgreSQL 8.3 更早版本的同学需要安装 tsearch2 才能使用; 使用 FreeBSD 7.2 更早版本的同学请先升级 ,NlpBamboo 用到了 7.2 才新增 strndup(3) 函数; 请更新 Ports 到最新版本 ,某些东西会有一定版本依赖 ,比如 NlpBamboo 需要 CMake 2.6 以上版本;创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!