windows下的安装方法:

CRF++是著名的条件随机场的开源工具,也是目前综合性能最佳的CRF工具。

CRF 的工具有两种,一种是支持Linux环境的,一种是支持Windows环境的,大家可以自行根据自己的系统进行下载。(在此我下载的是CRF++ -0.58)

linux的安装应该简单些,几行命令就能搞定,而windows下其实严格来讲不能说是安装。我们解压我们下载的压缩包文件到某一个目录下面即可。CRF同时也提供了python接口,可以通过接口直接加载模型,自定义函数,我这里目前是windows的环境,暂且先用命令行。
CRF解压后的包:

这里很有必要对几个目录介绍下:

doc文件夹:官方主页的内容
example文件夹:有四个数据包,每个数据包有四个文件:
训练数据(test.data)、测试数据(train.data)、模板文件(template)、执行脚本文件exec.sh。
sdk文件夹:CRF++的头文件和静态链接库。
clr_learn.exe:CRF++的训练程序
crl_test.exe:CRF++的测试程序
libcrffpp.dll:训练程序和测试程序需要使用的静态链接库。
实际上,需要使用的就是crf_learn.exe,crf_test.exe和libcrfpp.dll,这三个文件。


这里直接使用CRF自带的例子进行试验一下:
在example中的某个例子做一下测试。例如:example中chunking文件夹,其中原有4个文件:exec.sh;template;test.data;train.data。crf_learn.exe;crf_test.exe;libcrfpp.dll三个文件复制到这个文件夹(chunking)底下

然后打开cmd,找到刚刚的example\chunking这个文件夹。

然后输入以下命令进行训练模型。

crf_learn template train.data model

就可以看到控制台上打印出如下的信息,并会产生一个新的文件:model。

CRF++: Yet Another CRF Tool Kit
Copyright (C) 2005-2013 Taku Kudo, All rights reserved.

reading training data:
Done!0.03 s

Number of sentences: 77
Number of features:  153482
Number of thread(s): 4
Freq:                1
eta:                 0.00010
C:                   1.00000
shrinking size:      20
iter=0 terr=0.98629 serr=1.00000 act=153482 obj=5003.65270 diff=1.00000
iter=1 terr=0.38449 serr=1.00000 act=153482 obj=4082.64911 diff=0.18407
iter=2 terr=0.38449 serr=1.00000 act=153482 obj=1974.35839 diff=0.51640
iter=3 terr=0.19937 serr=0.93506 act=153482 obj=1323.56081 diff=0.32962
iter=4 terr=0.14030 serr=0.92208 act=153482 obj=826.22783 diff=0.37575
iter=5 terr=0.08333 serr=0.71429 act=153482 obj=573.51229 diff=0.30587
iter=6 terr=0.03692 serr=0.44156 act=153482 obj=388.80427 diff=0.32206
iter=7 terr=0.01266 serr=0.20779 act=153482 obj=310.94172 diff=0.20026
iter=8 terr=0.00158 serr=0.03896 act=153482 obj=285.42807 diff=0.08205
iter=9 terr=0.00105 serr=0.02597 act=153482 obj=273.98088 diff=0.04011
iter=10 terr=0.00000 serr=0.00000 act=153482 obj=266.16068 diff=0.02854
iter=11 terr=0.00000 serr=0.00000 act=153482 obj=260.00330 diff=0.02313
...
...
iter=26 terr=0.00000 serr=0.00000 act=153482 obj=253.78214 diff=0.00004
iter=27 terr=0.00000 serr=0.00000 act=153482 obj=253.77759 diff=0.00002

Done!1.02 s

首先说下输出参数的意思:

iter:迭代次数。当前迭代次数达到maxiter时,迭代终止。
terr:标记错误率
serr:句子错误率
obj:当前对象的值。当这个值收敛到一个确定的值的时候,训练完成。
diff:与上一个对象之间的相对差。当此值低于eta时,训练完成。
这个训练过程的时间、迭代次数等信息就会输出到控制台上,如果想要保存这些信息到一个文件里,命令格式模板:
 

crf_learn template_file train_file model_file >> train_info_file

例如:

crf_learn template train.data model >> model_out.txt

这时chunking文件夹下就会多一个model_out.txt文件,而文件里存储的就是上面控制平台输出的内容。

 

Linux下的安装方法:

安装比较简单,下载好安装包后,按照以下步骤进行安装:

1.

tar zxvf CRF++-0.58.tar.gz
 
cd CRF++-0.58
 
./configure
 
make
 
su

make install

2、cd进入 python,然后:

python setup.py build
python setup.py install

3、输入python,进入python解释器

4、输入

import CRFPP

这里可能会报错,我遇到的报错是:

ImportError: libcrfpp.so.0: cannot open shared object file: No such file or directory 。

你可以输入:

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

然后重复3、4两个步骤即可。

Logo

更多推荐