我是CRF++的新手。我正在自学看它的手册:http://crfpp.googlecode.com/svn/trunk/doc/index.html?source=navbar#templ
我不明白这意味着什么
这是一个描述单字特征的模板。当你给一个 模板“u 01:%x0,1”,CRF++自动生成一组特性 函数(func1 .( funcN)类似: func1 = if (输出=B和feature="U01:DT")返回1其他返回0 func2 = if (输出=I和feature="U01:DT")返回1其他返回0 func3 = if (输出=O和feature="U01:DT")返回1其他返回0 ……funcXX = if (输出=B和feature="U01:NN")返回1其他返回0 funcXY = if (output =O和feature="U01:NN")返回1 O返回0。由模板生成的特征函数的数量。 等于(L * N),其中L是输出数。
为什么有很多行用于Unigram特性,它们意味着什么?
发布于 2015-05-13 11:48:24
在看了文献资料足够长的时间后,我想我明白了。
以文档中的示例为例,其中输入数据为:
He PRP B-NP
reckons VBZ B-VP
the DT B-NP
current JJ I-NP
account NN I-NP所讨论的特性模板(格式为%x[row, col],其中row相对于当前位置)是%x[0,1]。
当展开%x[0,1]时,取决于当前令牌,它可以扫描集合[PRP, VBZ, DT, JJ, NN]中的一个字符串(即第1列中的唯一字符串之一,其中最左边的列是列0)。对于每个字符串,它创建一组表单的功能函数(查看第3行输入数据):
func1 = if (output = B-NP and feature="U01:DT") return 1 else return 0
func2 = if (output = I-NP and feature="U01:DT") return 1 else return 0
func3 = if (output = O and feature="U01:DT") return 1 else return 0
...将该特定字符串(上面代码中的DT)与每个输出类进行比较。
因此,如果输出类是[B-NP, I-NP, O],则扩展为功能函数的功能模板如下所示:
# row 1 (He, PRP, B-NP)
func1 = if (output = B-NP and feature="U01:PRP") return 1 else return 0
func2 = if (output = I-NP and feature="U01:PRP") return 1 else return 0
func3 = if (output = O and feature="U01:PRP") return 1 else return 0
# row 2 (Reckons, VBZ, B-VP)
func4 = if (output = B-NP and feature="U01:VBZ") return 1 else return 0
func5 = if (output = I-NP and feature="U01:VBZ") return 1 else return 0
func6 = if (output = O and feature="U01:VBZ") return 1 else return 0
# Row 3 (the, DT, B-NP)
func7 = if (output = B-NP and feature="U01:DT") return 1 else return 0
func8 = if (output = I-NP and feature="U01:DT") return 1 else return 0
func9 = if (output = O and feature="U01:DT") return 1 else return 0
# Row 4 (current, JJ, I-NP)
func10 = if (output = B-NP and feature="U01:JJ") return 1 else return 0
func11 = if (output = I-NP and feature="U01:JJ") return 1 else return 0
func12 = if (output = O and feature="U01:JJ") return 1 else return 0
# Row 5 (account, NN, I-NP)
func13 = if (output = B-NP and feature="U01:NN") return 1 else return 0
func14 = if (output = I-NP and feature="U01:NN") return 1 else return 0
func15 = if (output = O and feature="U01:NN") return 1 else return 0关于文件中提到的地方:
模板生成的特征函数的数量等于(L * N),其中L是输出类的数量,N是从给定模板扩展的唯一字符串的数目。
在这种情况下,L是3,N是5。
发布于 2014-12-04 07:04:08
对于特定的模板%xi,j,i表示当前位置的偏移量(行),j表示要使用的功能(列)。给定的数据:
He PRP B-NP
reckons VBZ B-VP
the DT B-NP
current JJ I-NP << CURRENT TOKEN
account NN I-NP%x0,1指单词,偏移到当前单词为0,其pos标记为JJ,输出标记为I。
向前移动,%x0,1 -> pos标记=NN,输出标记=I
每个特征函数都是指当前单词及其pos标记的一对可能值。
最新情况:
我认为在你很好理解CRF模型的情况下,上面的解释是非常直接的。
CRF模型参考
CRF++是沙及佩雷拉(2003)的复制
https://stackoverflow.com/questions/25477896
复制相似问题