首页IT科技中文分词语料库(借助 NlpBamboo 中文分词打造 PostgreSQL 的全文检索)

中文分词语料库(借助 NlpBamboo 中文分词打造 PostgreSQL 的全文检索)

时间2025-06-20 16:19:08分类IT科技浏览4055
导读:PostgreSQL 从 8.3 开始内建了全文检索功能,对于我们来说,只需要再找一个中文分词组件即可利用 PostgreSQL 打造完善的全文检索应用。我选择的是 NlpBamboo 这个分词库。...

PostgreSQL 从 8.3 开始内建了全文检索功能            ,对于我们来说                  ,只需要再找一个中文分词组件即可利用 PostgreSQL 打造完善的全文检索应用            。我选择的是 NlpBamboo 这个分词库                   。

以下是在 FreeBSD 7.2 + PostgreSQL 8.3 环境下的配置过程(FreeBSD 和 PostgreSQL 相关的安装和设置请自行找资料)      。

1            、安装 CMake:

view source

print?

1.cd /usr/ports/devel/cmake/
2.make install clean

2                   、安装 crf++:

view source

print?

1.cd /usr/ports/science/crf++/
2.make install clean

3      、NlpBamboo 路径比较特殊       ,建立以下符号链接(其实不是全部需要;或者你偷懒一点      ,直接拷贝拉倒):

view source

print?

1.ln -s /usr/local/lib/libcrfpp.a /usr/lib/libcrfpp.a
2.ln -s /usr/local/lib/libcrfpp.so /usr/lib/libcrfpp.so
3.ln -s /usr/local/lib/libcrfpp.so.0 /usr/lib/libcrfpp.so.0

4            、获取 NlpBamboo:

从 Google Code 取出 NlpBamboo 代码;或者从 NlpBamboo 下载打包文件            。

5                   、进行 FreeBSD 下的补丁修改:

这里需要注意                  ,由于 NlpBamboo 中的 bamboo 工具用到了 getline 这个函数             ,但 FreeBSD 默认没有提供      ,你可以找一个替代品                   。我比较偷懒                  ,直接把相关代码注释掉了             ,因为我实际上根本不会在服务器上用这个工具      。我都是在本地进行相关训练统计      。

这个 nlpbamboo-freebsd.patch(2.0 KB) 是我当前在用的一个 Patch 文件,你可以参考                   。

6      、编译并安装 NlpBamboo:

view source

print?

1.cd nlpbamboo-read-only # 这里应该是你自己解压或者代码取出后的目录
2.mkdir build
3.cd build
4.cmake .. -DCMAKE_BUILD_TYPE=release
5.make all
6.make install

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 目录:

view source

print?

1.cd /opt/bamboo/
2.wget http://nlpbamboo.googlecode.com/files/index.tar.bz2
3.tar -jxvf index.tar.bz2

8                   、安装中文分词扩展到 PostgreSQL:

view source

print?

1.cd /opt/bamboo/exts/postgres/pg_tokenize/
2.gmake install
3.cd /opt/bamboo/exts/postgres/chinese_parser/
4.gmake install
5.touch /usr/local/share/postgresql/tsearch_data/chinese_utf8.stop

9            、在需要的数据库中导入分词:

view source

print?

1.psql -Uddlog
2.ddlog=> \i /usr/local/share/postgresql/contrib/pg_tokenize.sql
3.ddlog=> \i /usr/local/share/postgresql/contrib/chinese_parser.sql

10      、如果没有错误            ,你现在可以用以下命令测试了:

view source

print?

1.psql -Uddlog
2.ddlog=> SELECT to_tsvector(chinesecfg, 我爱北京天安门);
3.to_tsvector
4.-----------------------------------
5.我:1 爱:2 北京:3 天安门:4
6.(1 row)

更多关于 NlpBamboo 的资料                   ,可以到 NlpBamboo Wiki 里好好研究一下      。

恩       ,最后            ,怎么使用                  ,可以参看 PostgreSQL 的帮助文档                   。或者等有空我写个在 Django 中的使用方法            。

动物凶猛       ,路过注意:

使用 PostgreSQL 8.3 更早版本的同学需要安装 tsearch2 才能使用; 使用 FreeBSD 7.2 更早版本的同学请先升级      ,NlpBamboo 用到了 7.2 才新增 strndup(3) 函数; 请更新 Ports 到最新版本                  ,某些东西会有一定版本依赖             ,比如 NlpBamboo 需要 CMake 2.6 以上版本;
声明:本站所有文章      ,如无特殊说明或标注                  ,均为本站原创发布。任何个人或组织             ,在未征得本站同意时,禁止复制                   、盗用            、采集、发布本站内容到任何网站                   、书籍等各类媒体平台                   。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理                   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
提高网站排名的优化方法(如何优化网站才能得到更高的排名?)