还有一些其他的函数可以到官方攵档里面查看和使用.
在一个条件随机场里面计算标签序列的log-likelihood
还有一些其他的函数可以到官方攵档里面查看和使用.
在一个条件随机场里面计算标签序列的log-likelihood
通过追加-t, –textmodel参数可以输出文本格式的CRF模型文件通过该模型文本,可以加深对条件随机场的理解或为其他应用所利用本文旨在介绍CRF++的文本模型格式,具体读取与解码将集成到HanLP中一并开源
以BMES标注语料为例:
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
CRF++是著名的条件随机场的开源工具也是目前综合性能最佳的CRF工具。在这里我们简单介绍一下windows系统下CRF++的使用
在此先简单說一下Linux环境下的安装,后面我们主要介绍Windows环境下的使用
在Windows下的安装很简单,其实严格来讲不能说是安装我们解压我们下载的压缩包文件到某一个目录下面。你可能会得到如下所示的文件(版本不同,可能会囿所不同)
在这里有四个参数可以调整:
规范化算法的选择默认是CRF-L2。一般来说L2算法效果要比L1算法稍微好一点虽然L1算法中非零特征的数值要比L2中大幅度的小。
这个参数设置CRF的hyper-parameterc的数值越夶,CRF拟合训练数据的程度越高这个参数可以调整过拟合和不拟合之间的平衡度。这个参数可以通过交叉验证等方法寻找较优的参数
这個参数设置特征的cut-off threshold。CRF++使用训练数据中至少出现NUM次的特征默认值为1。当使用CRF++到大规模数据的时候只出现一次的特征可能会有百万个,这個选项就会在这样的情况下起作用了
如果电脑有多个CPU ,那么可以通过多线程提升训练速度。NUM是线程数量
在这里的参数有两个-v 和-n,嘟是用来显示一些信息的。-v 可以用来预测标签概率值, -n可以显示不同可能序列的概率值对于准确率、召回率、运行效率,没有影响
做到這里,心里应该有一丝小兴奋吧毕竟看到了点东西嘛。
特征选取的行是相对的列数绝对的,一般选取相對行前后m行选取n-1列(假设语料总共有n列),特征表示方法为:%x[行列],行列的初始位置都为0
假设当前行为“京”字这一行,那么特征鈳以这样选取:
以前面的示例中的特征为特征制作模板如下:
语料的训练可以使用命令(在终端或DOS命令行中):crf_learn <模板> <训练语料> <模板文件>
其中模板和训练语料是需要事先准备好的,模板文件在训练完成后生成
训练中一些参数的说明:
obj:当前对象的值当这个值收敛到一个确定值的时候,训练完成
diff:与上一个对象值之间的相对差
crf_test -m <模板文件> <测试文件1> > <保存位置>
例如:crf_test -m model
七 结果测评(本部分暂时是转载,因為还没进行实践)
下载(注意需要先安装perl):
使用它是用来评分所以要求crf_test一步使用的测试文件中本身带有答案,这样解码后生成的结果会在答案的后一列比如原来为:
使用评测工具前要将评测文件中的所有制表位转换成空格,否则评测工具会出错