为方便直观地看到BiLSTM+CRF是什么,我们先来贴一下BiLSTM+CRF的模型结构图,如图1所示。 从图1可以看到,在BiLSTM上方我们添加了一个CRF层。具体地,在基于BiLSTM获得各个位置的标签向量之后,这些标签向量将被作为发射分数传入CRF中,发射这个概念是从CRF里面带出来的,后边在介绍CRF部分会更多地提及,这里先不用纠结这...
图1.1:BiLSTM-CRF模型 虽然没有必要知道BiLSTM层的细节,但为了更容易理解CRF层,我们必须知道BiLSTM层输出的含义。 图1.2:BiLSTM层输出的含义 上图说明了BiLSTM层的输出是每个标签的分数。 例如,对于 w_0,BiLSTM节点的输出为1.5(B-Person),0.9(I-Person),0.1(B-Organization),0.08(I-Organization)和0.05...
模型输出:对应与输入序列的每个单词的标签索引 模型组成:嵌入层>>>BiLSTM层>>>全连接层>>>CRF层 3. CRF层的作用 假设不加入CRF层的话,选择BiLSTM层每一个时刻分数最高的类别作为预测结果。图中所示情况得到的结果为:w0是“I-Organization”,w1是“I-Person”,w2是“O”,w3是 “B-Organization” ,w4是 ...
前言 对于命名实体识别任务,基于神经网络的方法非常普遍。例如,Neural Architectures for Named Entity Recognition提出了一个使用word and character embeddings的BiLSTM-CRF命名实体识别模型。我将以本文中的模型为例来解释
2. 基于字的 BiLSTM-CRF 模型 2.1 BiLSTM详解 使用基于字的 BiLSTM-CRF,主要参考的是文献 4。使用 Bakeoff-3 评测中所采用的的BIO 标注集,即 B-PER、I-PER 代表人名首字、人名非首字,B-LOC、I-LOC 代表地名首字、地名非首字,B-ORG、I-ORG 代表组织机构名首字、组织机构名非首字,O 代表该字不属于...
2.BiLSTM+CRF 模型 CRF 包括两种特征函数,不熟悉的童鞋可以看下之前的文章。第一种特征函数是状态特征函数,也称为发射概率,表示字 x 对应标签 y 的概率。在 BiLSTM+CRF 中,这一个特征函数 (发射概率) 直接使用 LSTM 的输出计算得到,如第一小节中的图所示,LSTM 可以计算出每一时刻位置对应不同标签的...
batch_size为模型当中batch的大小,num_steps为输入句子的长度,本次配置为最大128,num_tags为序列标注的个数,如图中的序列标注一共是5个,也就是会输出每个词在5个tag上的分数,由于没有做softmax归一化,所以不能称之为概率值。 3)CRF层 如果没有CRF层,直接按BiLSTM每个词在5个tag的最大分数作为输出的话,...
图4:一种 BI-LSTM 网络 2.3 CRF网络 有两种方式可以在预测当前标签的时候使用邻居的标签信息。第一种就是在每一个时间步都预测标签的分布然后使用beam-like编码方式来发现最优的标签序列。最大熵分类器和最大熵马尔科夫模型(MEMMs)都属于这种类别。第二种就是把关注点放在句子级别上,而不是个别位置,从而...
BiLSTM-CRF 模型 先来简要的介绍一下该模型。 如下图所示: 首先,句中的每个单词是一条包含词嵌入和字嵌入的词向量,词嵌入通常是事先训练好的,字嵌入则是随机初始化的。所有的嵌入都会随着训练的迭代过程被调整。 其次,BiLSTM-CRF的输入是词嵌入向量,输出是每个单词对应的预测标签。
这就是完整的biLSTM_CRF的模型图,文本序列经过biLSTM模型处理,输出结果传入CRF层,最后输出预测结果。 下面,进入正题,biLSTM_CRF模型在tensorflow中的实现。 运行环境 python 3.6 tensorflow 1.2 本文GITHUB欢迎Star和Fork。 使用同样方法,构造的中文分词。中文分词GITHUB ...