CRF ++中的用户定义功能

时间:2014-12-05 10:31:06

标签: nlp crf crf++

我尝试为CRF ++模板添加更多功能。

根据How can I tell CRF++ classifier that a word x is captilized or understanding punctuations?

培训样本

The  DT  0  1   0   1   B-MISC
Oxford  NNP 0   1   0   1   I-MISC
Companion   NNP 0   1   0   1   I-MISC
to  TO  0   0   0   0   I-MISC
Philosophy  NNP 0   1   0   1   I-MISC

要素模板

# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-1,0]/%x[0,0]
U06:%x[0,0]/%x[1,0]
U07:%x[-2,0]/%x[-1,0]/%x[0,0]

#shape feature
U08:%x[-2,2]
U09:%x[-1,2]
U10:%x[0,2]
U11:%x[1,2]
U12:%x[2,2]

B

训练阶段没问题。但我没有使用crf_test

输出
tilney@ubuntu:/data/wikipedia/en$ crf_test -m validation_model test.data
tilney@ubuntu:/data/wikipedia/en$ 

如果忽略上面的形状,一切都很好。我哪里出错了?

1 个答案:

答案 0 :(得分:1)

我想出来了。这是我的测试数据的问题。我认为每个功能都应该来自训练有素的模型,所以我的测试数据中只有两列:word标签,结果是测试文件的格式与训练数据完全相同!