最近在做序列标注的相关任务,为了理解bi-lstm + crf的原理及细节,找了很多相关资料,以及代码实现,这里分享给大家并附上一些自己的理解。
CRF
相关资料推荐
关于crf,我看了很多资料,这里推荐几个 - 英文的crf tutorial - 李航的统计学习方法 这两个讲的很细,公式很多,很多新入坑的小白看了肯定一头雾水,这里推荐一个知乎大神的回答,通俗易懂,有一些机器学习基础的都可以看懂。 - 知乎Scofield的回答
简单总结
这里我简单总结一下,以命名实体识别任务举例,我们有这样一组已标注的数据,B表示一个实体的开头,I表示当前词为命名实体的后面部分,O表示不是命名实体。
the(B) wall(I) street(I) journal(I) reported(O) today(O) that(O) apple(B) corporation(I) made(O) money(O)
很明显"the wall street journal"(华尔街日报)、"apple corporation"(苹果公司)为命名实体。
如果我们有这样一组已标注的数据
每个 x_i 是输入序列,y_i为一个标注序列
我们的目标是学习出一组条件概率分布模型, 即找到一组参数 theta
使得