gpt4 book ai didi

crf - 如何制作CRF++的模板文件?

转载 作者:行者123 更新时间:2023-12-04 03:57:55 29 4
gpt4 key购买 nike

我是CRF++的新手。我在教自己看它的手册:
http://crfpp.googlecode.com/svn/trunk/doc/index.html?source=navbar#templ
我不明白这是什么意思:

This is a template to describe unigram features. When you give a

template "U01:%x[0,1]", CRF++ automatically generates a set of feature

functions (func1 ... funcN) like:

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

.... funcXX = if (output = B-NP and feature="U01:NN") return 1 else return 0

funcXY = if (output = O and feature="U01:NN") return 1 else return 0. The number of feature functions generated by a template

amounts to (L * N), where L is the number of output


为什么Unigram功能有很多行,它们是什么意思?

最佳答案

在看了the documentation足够长的时间之后,我想我已经明白了。

以文档中的示例为例,输入数据为:

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]时,根据当前 token 的不同,它可以扫描设置的 [PRP, VBZ, DT, JJ, NN]内部的字符串之一(即第1列中唯一的字符串之一,其中最左边的列是第0列)。对于这些字符串中的每一个,它都会创建一组形式如下的特征函数(查看输入数据的第三行):
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

关于文档中提到的内容:

The number of feature functions generated by a template amounts to (L * N), where L is the number of output classes and N is the number of unique strings expanded from the given template.



在这种情况下,L为3,N为5。

关于crf - 如何制作CRF++的模板文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25477896/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com