您的位置:首页 > 编程语言 > Java开发

CRF++的安装以及Ubunt下java版本的CRF++的配置

2015-11-14 10:05 691 查看

下载安装CRF++

需要系统有
java
gcc
的环境。

下载地址:CRF++0.54.tar.gz

进入解压之后的目录,执行如下命令:

./configure
make
sudo make install


其中
make
可能会遇到如下的错误;

In file included from node.h:13:0,
from node.cpp:9:
path.h:26:50: error: ‘size_t’ has not been declared
void calcExpectation(double *expected, double, size_t) const;
^
make[1]: *** [node.lo] 错误 1
make[1]:正在离开目录 `/home/shomy/Documents/CRF++-0.54'
make: *** [all] 错误 2


这是因为只需要在path.h 中加入头文件:
#include "stdilib.h"


即可继续
make
sudo make install


验证是否安装成功

在终端输入

$crf_learn


如果出来相关说明,安装成功。

至于如何使用
crf_learn
训练和 使用
crf_test
 作测试 就是那俩命令,这里就不多说了。

Java版本CRF++的配置

安装完了之后CRF++ 之后,如果想用它作二次开发的话,就需要用到各个语言了,很幸运的是,官方给提供了诸如
python java perl
等等的接口,很方便使用。不过需要配置一下才可以使用。下面主要给出java的配置过程。

1. 安装
swig
因为CRF++就是使用这这个强大的工具才可以生成各种语言接口。

` sudo apt-get install swig `


进入解压后的CRF++-0.54目录中的
swig
文件夹,直接执行
make


出现如下结果:

swig -perl -shadow -c++ CRFPP.i
../crfpp.h:244: Warning 314: 'next' is a perl keyword
mv -f CRFPP_wrap.cxx ../perl
mv -f CRFPP.pm ../perl
swig -ruby -c++ CRFPP.i
mv -f CRFPP_wrap.cxx ../ruby/CRFPP_wrap.cpp
swig -python -shadow -c++ CRFPP.i
mv -f CRFPP_wrap.cxx ../python
mv -f CRFPP.py ../python
swig -java -package org.chasen.crfpp -c++ CRFPP.i
mkdir -p ../java/org/chasen/crfpp
mv -f CRFPP_wrap.cxx ../java
mv -f *.java ../java/org/chasen/crfpp


即可。

退出到上一级目录,进入
java
目录

直接执行
make
报错:

c++ -O3 -c -fpic CRFPP_wrap.cxx  -I/usr/local/jdk/include -I/usr/local/jdk/include/linux
CRFPP_wrap.cxx:159:17: fatal error: jni.h: 没有那个文件或目录
#include <jni.h>
^
compilation terminated.
make: *** [all] 错误 1


这个就是说缺少
jni.h
, 其实我们在安装
java
环境的时候,就已经有了这文件。具体可以
locate
命令去查看位置.

$locate jni.h


找到之后,直接拷到java目录下面

sudo cp /usr/lib/jvm/java/include/jni.h .


这样修改之后,还需要修改一个东西,就是将
CRFPP_wrap.cxx
159行的
<jni.h>
改成
"jni.h"


再make 之后,如果出现有个
jni_md.h
类似的错误,一样的解决方法。之后在执行
make
应该就可以完成了,生成了
CRFPP.jar
libCRFPP.so
两个文件。这也是我们需要的~~

最后一步就是加入软连接,如下命令

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


ok 下面就可以用java使用训练好的模型了,具体样例,直接查看
test.java
即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java CRF++