CRF++ 使用小结

下载CRF++并编译

./configure
`make

编译成功即可训练模型

命令行使用CRF++:(这里有更详细的Tutorial)
训练模型
crf_learn template_file train_file model_file
crf_learn参数
-a CRF-L2 or CRF-L1 规范化算法选择。默认是CRF-L2。
-c float 其中float关于拟合训练数据的程度,float越大,拟合程度越高
-f Num 其中Num是指训练数据中至少出现Num次
-p Num 其中Num是线程数量
-o output-FILE 重定向文件
测试模型
crf_test -m model_file test_files

使用CRF++遇到的错误:
reading training data:
tagger.cpp(393) [feature_index_->buildFeatures(this)]
报错原因:因为模板格式不正确,存在无法访问的项
解决方法:需要修改模板

在使用CRF++时要注意:
1. segment fault错误,可能由于连续两个空行
2. 在小数量的特征很多时,-f参数对于提高训练速度,有很大的作用。
3. -p 最好为奇数,否则,跑不起来。
4. 不支持中文路径、文件名
5. 使用%x[0,0]/%x[0,1]类似的feature能够提升训练效果

Referee:
http://taku910.github.io/crfpp/
https://www.cnblogs.com/pangxiaodong/archive/2011/11/21/2256264.html
http://cyzhang999.iteye.com/blog/945908

你可能感兴趣的:(自然语言处理)