借助 NlpBamboo 中文分词打造 PostgreSQL 的全文检索
2012-06-09 16:40
447 查看
借助NlpBamboo中文分词打造PostgreSQL的全文检索
以下是在
1、安装CMake:
1.
cd
/usr/ports/devel/cmake/
2.
make
install
clean2、安装crf++:
1.
cd
/usr/ports/science/crf++/
2.
make
install
clean3、NlpBamboo路径比较特殊,建立以下符号链接(其实不是全部需要;或者你偷懒一点,直接拷贝拉倒):
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.04、获取NlpBamboo:
从
5、进行FreeBSD下的补丁修改:
这里需要注意,由于NlpBamboo中的bamboo工具用到了getline这个函数,但FreeBSD默认没有提供,你可以找一个替代品。我比较偷懒,直接把相关代码注释掉了,因为我实际上根本不会在服务器上用这个工具。我都是在本地进行相关训练统计。
这个
6、编译并安装NlpBamboo:
1.
cd
nlpbamboo-
read
-only
#这里应该是你自己解压或者代码取出后的目录
2.
mkdir
build
3.
cd
build
4.
cmake..-DCMAKE_BUILD_TYPE=release
5.
make
all
6.
make
installNlpBamboo默认会安装到/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、下载分词库数据文件:
请到
1.
cd
/opt/bamboo/
2.
wget tar.bz23.tar'target='_blank'>http://nlpbamboo.googlecode.com/files/index.[/code]tar.bz23.tar-jxvfindex.tar.bz28、安装中文分词扩展到PostgreSQL:viewsource ? 1.cd/opt/bamboo/exts/postgres/pg_tokenize/2.gmakeinstall3.cd/opt/bamboo/exts/postgres/chinese_parser/4.gmakeinstall5.touch/usr/local/share/postgresql/tsearch_data/chinese_utf8.stop9、在需要的数据库中导入分词:viewsource ? 1.psql-Uddlog2.ddlog=>\i/usr/local/share/postgresql/contrib/pg_tokenize.sql3.ddlog=>\i/usr/local/share/postgresql/contrib/chinese_parser.sql10、如果没有错误,你现在可以用以下命令测试了:viewsource ? 1.psql-Uddlog2.ddlog=>SELECTto_tsvector('chinesecfg','我爱北京天安门');3.to_tsvector4.-----------------------------------5.'我':1'爱':2'北京':3'天安门':46.(1row)更多关于NlpBamboo的资料,可以到NlpBambooWiki里好好研究一下。
恩,最后,怎么使用,可以参看PostgreSQL的帮助文档。或者等有空我写个在Django中的使用方法。
动物凶猛,路过注意:
使用PostgreSQL8.3更早版本的同学需要安装tsearch2才能使用;
使用FreeBSD7.2更早版本的同学请先升级,NlpBamboo用到了7.2才新增strndup(3)函数;
请更新Ports到最新版本,某些东西会有一定版本依赖,比如NlpBamboo需要CMake2.6以上版本;
相关文章推荐
- PostgreSQL的全文检索中文分词(2)-NlpBamboo
- PostgreSQL的全文检索中文分词(1)-NlpBamboo
- Oracle模糊查询之(5.1认识全文索引之什么是分词[lexer])oracle Text 全文检索功能对中文分词的支持情况
- 【Lucene】Apache Lucene全文检索引擎架构之中文分词和高亮显示
- PHP 中文分词及全文检索的实现
- 全文检索lucene中文分词的一些总结
- PostgreSQL的中文全文检索
- 全文检索引擎Solr系列——整合中文分词组件mmseg4j
- 关于基于postgresQL的中文全文检索感受
- 全文检索技术学习(三)——Lucene支持中文分词
- 全文检索Lucene(三)--中文分词与高亮显示
- qt整合全文检索功能(1)中文分词以及获得词频
- 全文检索引擎Solr系列——整合中文分词组件mmseg4j
- 全文检索、数据挖掘、推荐引擎系列3---全文内容推荐引擎之中文分词
- 全文检索lucene中文分词的一些总结
- 基于postgreSQL9.1的中文全文检索(基于Linux)
- 全文检索引擎Solr系列——整合中文分词组件IKAnalyzer
- lucene是个全文检索工具 IKAnalyzer是个分词包 可以用来做中文的检索
- 【Lucene】Apache Lucene全文检索引擎架构之中文分词和高亮显示
- 全文检索核心:几款免费中文分词模块介绍