CRF++ 特征模版理解
CRF++特征模版的作用是自动生成特征函数:
模板文件中每一行代表一个 template,每一个template中, 利用专门的宏 %x 来确定输入数据中的一个token,CRF++通过宏产生相应的特征函数集合。 其中,row 表示当前token的前后行; col 表示其在样本中的列(特征) 。
用你的这个例子简单地给“北京是首都”(窗口为5)做BIO的标注,最后模型的输出是B,I,O,假设当前词条为“是”:
| token | POS | NER | ?? | ?? | 5th | output |
| 北 | ... | x | B |
| 京 | ... | x | I |
| 是 | ... | m | O | \u0026lt;-- 当前的词条
| 首 | ... | n | B |
| 都 | ... | n | I |
首先,你加了一行第五列,直接在最后加一行U1: %x表示特征函数集合:
第二个问题,表示这一列的前后关系(上下文),选B,详细说明一下:
A选项:U2:%xU3:%xU4:%xU5:%x这个就和U1一样,比如U2就是:如果output=B/I/O,并且-2位置的第五列5th=x就返回1,否则0。第五列的特征之间相互并不影响。
B选项:U2:%x/%xU3:%x/%xU4:%x/%xU5:%x/%x这个表示5th特征共现的一些情况,U2就是:如果output=B/I/O,并且-2位置5th=x的同时-1位置5th=x,则返回1。这里,第五列特征之间有影响,共同满足要求才会返回1,也就是你所说的“第5列的前后关系”。写三个、四个串起来也行,但是得真的需要。增加一个模版就增加很多特征函数,每个token对应3个。
【CRF++ 特征模版理解】 你最后一个问题,“/” 就可以理解为“并且”。这个U5的作用就是,构建第三列和第四列需要同时满足XX条件的特征函数集合。
■网友
U4:%x #如果前面有这一个了,不需要加上(不过你之前只有四列,为毛会有这个)A中的条件是单个的,B中的条件是联合的模板的话,我个人经验是不要搞的太多太复杂,要不然运算起来慢,还容易overfit,
推荐阅读
- 图像特征提取时,灰度共生矩阵的方向是咋确定的
- 单特征AUC是咋计算的
- 《黑暗之魂3》捏脸是怎样做到取消各个特征的相关性的
- 关于图片里的文本识别,哪些特征相对有效
- 睡眠|健康“亮红灯”的人,睡觉时常有4个特征,占一个,也要重视起来
- 后发制人|是“大长腿”标志,藏着后发制人的身高潜力孩子腿部的这个特征
- 淋巴结|体内有癌,脖子先知,脖子若出现一个特征,癌症可能已经是中晚期
- 高个|长大后多半是“大高个”,你家娃符合吗腿部有这几个特征的孩子
- |严防!疫情传播又有新特征
- 癌细胞|身体出现5个特征表现,癌细胞或已“藏在”体内,需重视
