CRF命名实体识别

条件随机场(CRF)在命名实体识别(NER)等序列标注任务中起到关键作用。它能自动学习有效标签约束,避免人工设定规则。CRF损失函数结合发射分数和转移分数,寻找最佳路径。在解码阶段,通过维特比算法找到最优解码路径。相比于人工设定规则,CRF在大规模标注状态下更高效,尤其在处理复杂标注状态时。
摘要由CSDN通过智能技术生成

CRF 层可以向最终的预测标签添加一些约束,以确保它们是有效的。这些约束可以由 CRF 层在训练过程中从训练数据集自动学习。

CRF损失函数:

Path Score Real = Emission score(发射分数) + Transition score(转移分数)

Emission score:神经网络输出的各个Tag的置信度;

Transition score:CRF层中各个Tag之前的转移概率;Preal path = escore

当只使用CRF做NER的时候规则都是人为制定的

在只有CRF的情况下,上面说的2类特征函数都是人工设定好的。通俗的说就是人工设定了观测序列的特征;计算的时候,如果这句话符合特征模板中的特征规则,则那个特征规则的值就为1,否则就为0。

而深度学习模型+CRF则是模型根据数据训练得出的规则模板

 为什么不能通过人工来判断标注规则并编写好修正逻辑呢?
因为人工虽然能判断出预测的标注前后关系是否符合规则,但是无法知道如何对不符合规则的预测进行调整,比如我们知道句子的开头应该是“B-”或“O”,而不是“I-”,但是究竟是B-还是O呢?而且对于标注状态非常多的场景下,人工编写的工作量和逻辑是非常大且复杂的

BERT负责学习输入句子中每个字和符号到对应的实体标签的规律,而CRF负责学习相邻实体标签之间的转移规则

CRF层可以自己学习这些约束。我们不需要手动构建矩阵。随着训练迭代次数的增加,分数会逐渐趋于合理。

正确路径的分数求解分以下两部分:

《1:发射分数

《2:转移分数:实际是CRF的学习参数

所有路径的得分总和

基于损失最小化原则,前面加符号

基于上面式子,就是求下面的分母

 发射矩阵:三个字符w、两个标签l

 

下面展开成矩阵是为了便于计算

对previous和 obs和转移矩阵求和

实际根据previous就能求出所有路径得分之和(4种情况)

在解码阶段:

我们还有两个变量用来存储历史信息(得分和索引),alpha0​和alpha1​

 

用两个列表存储每一步的最大得分以及其对应的标签,然后解码从尾到头根据两个列表回溯出最优解码路径。

维特比存储上一个节点的最大概率节点路径,带来的好处是:最优路径变为了节点个数3条,而不是之前的3^5条了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值