bilstmcrf词性标注_pytorchBiLSTM+CRF代码详解重点.pdf

bilstmcrf词性标注_pytorchBiLSTM+CRF代码详解重点.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

bilstmcrf词性标注_pytorchBiLSTM+CRF代码详解重点

⼀.BILSTM+CRF介绍

1.介绍

基于神经⽹的⽅法,在命名实体识别任务中⾮常流⾏和普遍。如果你不知道Bi-LSTM和CRF是什么,你只需要记住他们分别是命名实体

识别模型中的两个层。

1.1开始之前

我们假设我们的数据集中有两类实体——⼈名和地名,与之相对应在我们的训练数据集中,有五类标签:

B-Person,I-Person,B-Organization,I-Organization

假设句⼦x由五个字符w1,w2,w3,w4,w5组成,其中【w1,w2】为⼈名类实体,【w3】为地名类实体,其他字符标签为“O”。

1.2BiLSTM-CRF模型

以下将给出模型的结构:

第⼀,句⼦x中的每⼀个单元都代表着由字嵌⼊或词嵌⼊构成的向量。其中,字嵌⼊是随机初始化的,词嵌⼊是通过数据训练得到的。所有

的嵌⼊在训练过程中都会调整到最优。

第⼆,这些字或词嵌⼊为BiLSTM-CRF模型的输⼊,输出的是句⼦x中每个单元的标签。

Bi-LSTM结构图

尽管⼀般不需要详细了解BiLSTM层的原理,但是为了更容易知道CRF层的运⾏原理,我们需要知道BiLSTM的输出层。

图2.Bi-LSTM标签预测原理图

如上图所⽰,BiLSTM层的输出为每⼀个标签的预测分值,例如,对于单元w0,BiLSTM层输出的是

1.5(B-Person),0.9(I-Person),0.1(B-Organization),0.08(I-Organization)0.05(O).

这些分值将作为CRF的输⼊。

1.3如果没有CRF层会怎样

你也许已经发现了,即使没有CRF层,我们也可以训练⼀个BiLSTM命名实体识别模型,如图所⽰:

图3.去除CRF的BiLSTM命名实体识别模型

由于BiLSTM的输出为单元的每⼀个标签分值,我们可以挑选分值最⾼的⼀个作为该单元的标签。例如,对于单元w0,“B-Person”有最⾼

分值——1.5,因此我们可以挑选“B-Person”作为w0的预测标签。同理,我们可以得到w1——“I-Person”,w2——“O”,w3

——“B-Organization”,w4——“O”。

虽然我们可以得到句⼦x中每个单元的正确标签,但是我们不能保证标签每次都是预测正确的。例如,图4.中的例⼦,标签序列是“I-

OrganizationI-Person”and“B-OrganizationI-Person”,很显然这是错误的。

在这⾥插⼊图⽚描述

1.4CRF层能从训练数据中获得约束性的规则

CRF层可以为最后预测的标签添加⼀些约束来保证预测的标签是合法的。在训练数据训练过程中,这些约束可以通过CRF层⾃动学习到。

这些约束可以是:

I:句⼦中第⼀个词总是以标签“B-“或“O”开始,⽽不是“I-”

II:标签“B-label1I-label2I-label3I-…”,label1,label2,label3应该属于同⼀类实体。例如,“B-PersonI-Person”是合法的序列,但

是“B-PersonI-Organization”是⾮法标签序列.

III:标签序列“OI-label”is⾮法的.实体标签的⾸个标签应该是“B-“,⽽⾮“I-“,换句话说,有效的标签序列应该是“OB-label”。

有了这些约束,标签序列预测中⾮法序列出现的概率将会⼤⼤降低。

⼆.标签的score和损失函数的定义

Bi-LSTMlayer的输出维度是tagsize,这就相当于是每个词wi映射到tag的发射概率值,设Bi-LSTM的输出矩阵为P,其中Pi,j代表词wi映

射到tagj的⾮归⼀化概率。对于CRF来说,我们假定存在⼀个转移矩阵A,则Ai,j代表tagi转移到tagj的转移概率。

对于输⼊序列X对应的输出tag序列y,定义分数为

在这⾥插⼊图⽚描述

利⽤Softmax函数,我们为每⼀个正确的tag序列y定义⼀个概率值(YX代表所有的tag序列,包括不可能出现的)

在这⾥插⼊图⽚描述

因⽽在训练中,我们只需要最⼤化似然概率p(y|X)即可,这⾥我们利⽤对数似然

在这⾥插⼊图⽚描述

所以我们将损失函数定义为-log(p(y|X)),就可以利⽤梯度下降法来进⾏⽹的学习了。

lossfunction:

文档评论(0)

180****9759 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档