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

下载安装CRF++


  1. 需要系统有javagcc 的环境。
  2. 下载地址:CRF++0.54.tar.gz
  3. 进入解压之后的目录,执行如下命令:

    ./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"
    即可继续makesudo make install

  4. 验证是否安装成功
    在终端输入

    $crf_learn

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

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


Java版本CRF++的配置


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

` sudo apt-get install swig `
  1. 进入解压后的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

    即可。

  2. 退出到上一级目录,进入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.jarlibCRFPP.so两个文件。这也是我们需要的~~

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

    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 即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值