作者:CreateMoMo【CRF】BiLSTM上的CRF,用命名实体识别任务来解释CRF(3)推理mp.weixin.qq.com
编译:ronghuaiyang
原文链接:
前一篇地址:
忆臻:通俗易懂!BiLSTM上的CRF,用命名实体识别任务来解释CRFzhuanlan.zhihu.com2.6 为新的句子推理标签
在前面的章节中,我们学习了BiLSTM-CRF模型的结构和CRF损失函数的细节。你可以通过各种开源框架(Keras、Chainer、TensorFlow等)实现自己的BiLSTM-CRF模型。最重要的事情之一是模型的反向传播是在这些框架上自动计算的,因此你不需要自己实现反向传播来训练你的模型(即计算梯度和更新参数)。此外,一些框架已经实现了CRF层,因此将CRF层与你自己的模型结合起来非常容易,只需添加一行代码即可。
在本节中,我们将探索如何在模型准备好时在测试期间推断句子的标签。
步骤1:BiLSTM-CRF模型的Emission和transition得分
假设,我们有一个包含三个单词的句子
此外,我们已经从BiLSTM模型得到了Emission分数,从下面的CRF层得到了transition分数:
表示
被标记为
的得分。
是从标签i转换成标签j的得分。
步骤2:开始推理
如果你熟悉Viterbi算法,那么这一部分对你来说很容易。但如果你不熟悉,请不要担心。与前一节类似,我将逐步解释该算法。我们将从句子的左到右进行推理算法,如下图所示:
你会看到两个变量:obs和previous。previous存储前面步骤的最终结果。obs表示当前单词的信息。