安装了半天,步骤如下:

1、首先安装crf++

此步骤我未遇到问题

2、安装python的扩展
解压后的源代码文件里面有python文件夹
打开README,告知:

因为我的python是2.7.6编译安装的,按该步骤来,会出现如下错误:
cc1plus: warning: command line option “-Wstrict-prototypes” is valid for Ada/C/ObjC but not for C++

问题原因:
大概是python中的distutils在自动设置编译器选项时出了些问题。

解决办法:
(1)、下载补丁文件
http://bugs.python.org/issue1222585中的python-2.7-distutils-C++.patch
连接地址:http://bugs.python.org/file32218/python-2.7-distutils-C%2B%2B.patch
(2)、进入到python2.7.6的源代码文件夹中执行:
原因是.patch文件指定的是相对路径。

补丁执行完成后,我的是提示有一个文件更新失败。不管他了~
打完补丁当然要重新安装一下python喽~
我的方法非常的不专业,这是个问题,暂时身边没有很清晰的人问。TODO。
我对Python-2.7.6的源码进行了:

这样就更新了python

3、重新安装python的扩展

没有报错了~

4、运行test.py检测是否安装成功
#python test.py
这时候我的机器又报错了:
libcrfpp.so.0: cannot open shared object file: No such file or directory
意为无法找到libcrfpp.so.0模块。

报错:
RuntimeError: feature_index.cpp(193) [mmap_.open(model_filename)] mmap.h(153) [(fd = ::open(filename, flag | O_BINARY)) >= 0] open failed: ../model
查看test.py代码:
其中: tagger = CRFPP.Tagger(“-m ../model -v 3 -n2”)在寻找 ../model的文件。
这时候你需要一个train出来的model文件放知道对应目录即可
快速获得方法:
找到example/basenp/exec.sh文件,用#号注释掉rm -f model改行。
运行exec.sh,当前目录下会产生一个model文件,移动该model文件,放置到相对于test.py的../model位置。
再次运行#python test.py 发现,执行成功了。

5、既然成功了,下面就是看其文档了

总结:
我发现,可能要跪,晚上这俩小时权捣鼓怎么能成功运行test.py了呢,我以为这个成功就可以使用python直接调用crf的一些功能了,而不需要执行系统命令,还得读文件写文件的麻烦。但是,我发现,貌似test.py给出的函数竟然需要训练好的model文件,最后还是读文件嘛。。。接口感觉好不完善呀,最后还得系统调用,来回用文件来交换数据~~~今天晚了,明天再深入了解吧。