Advertisement

NLP-Beginner 任务四:基于LSTM+CRF的序列标注

阅读量:

1.数据集

本次使用的数据集为CONLI2003 数据集地址

数据集文件有train.txt dev.txt text.txt

数据集共有4列,第一列为单词,第二列为词性标签,第三列为句法组块标签,第四列为命名实体标签。每行为一个单词。只有当同一类型的两个短语紧跟在一起时,第二个短语的第一个单词才会有标记B-type,以显示它开始了一个新短语。标记为O的表示不属于词组。

EU NNP B-NP B-ORG
rejects VBZ B-VP O
German JJ B-NP B-MISC
call NN I-NP O
to TO B-VP O
boycott VB I-VP O
British JJ B-NP B-MISC
lamb NN I-NP O
. . O O

2.知识

2.1 命名实体识别(NER)

命名实体识别(Named Entity Recognition,NER),是自然语言处理中的一项基础任务,应用范围非常广泛。一般包括3大类(实体类,时间类,数字类) 7小类(人名、地名、组织机构名、时间、日期、货币、百分比)

NER英文命名实体识别的目标是识别句子中每个词语的实体类型,包括5大类:PER(人名)、LOC(地名)、ORG(组织名)、MISC(其它类型实体)、O(非实体)

由于实体有时是由多个单词组成的,为了区分实体,一般有起始词(Begin)中间词(Inside)

NER任务常转化为序列标注问题 ,利用(三位标注)BIO、BIOES和(四位序列标注)BMES等常用的标注规则对经过分词的文本进行token标注。序列标注的命名实体识别方法中,CNN、BERT、LSTM等深度模型与条件随机场CRF结合已经成为最主流和普遍的方法。

2.2LSTM

LSTM是LSTM 是一种用于克服标准 RNN 中梯度消失问题的改进版。它通过引入记忆单元和门机制(输入门、遗忘门和输出门)来控制信息的流动,能够捕捉较长序列中的依赖关系。

LSTM结构如下:

→ [LSTM] → [LSTM] → [LSTM] → [LSTM] →

BiLSTM则是在LSTM基础上的进一步改进,它通过两个独立的 LSTM 网络对输入序列进行 双向处理 ,分别从前往后和从后往前处理序列信息。

双向性 :BiLSTM 的核心特性是它在处理序列时不仅从前向后(正向)处理,还从后向前(反向)处理。这种双向的结构使得 BiLSTM 可以同时获取过去和未来的信息,从而更好地捕捉序列中的上下文关系。

应用场景 :在自然语言处理(NLP)任务中,双向信息特别有用,因为某个词语的意义往往依赖于它前后的上下文。比如,命名实体识别(NER)、语法分析、机器翻译等任务都广泛使用 BiLSTM。

BiLSTM结构如下:

→ [LSTM] → [LSTM] → [LSTM] → [LSTM] →
← [LSTM] ← [LSTM] ← [LSTM] ← [LSTM] ←

2.3条件随机场(CRF)

条件随机场(CRF)是一种在已知一组输入随机变量条件的情况下,输出另一组随机变量的条件概率分布模型;其前提是假设输出随机变量构成马尔可夫随机场;条件随机场可以应用于不同类型的标注问题,例如:单个目标的标注、序列结构的标注和图结构的标注等。

CRF模型是在隐马尔可夫模型(HMM)模型的基础上发展起来的。根据HMM模型的齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关。但CRF模型不仅考虑前一时刻的状态,还考虑其前面与后面的多个状态。因此一般来说,CRF会具有更好的标记性能。

3.模型详解

假设 x 是一个短句子序列,共包含5个单词,记为(w0,w1,w2,w3,w4)。其中,x 中 [w0,w1] 是人名,[w3] 是组织机构名称,其他非实体均为“O”。

第一层为词嵌入层。句中的每个单词是一条包含词嵌入和字嵌入的词向量,词嵌入通常是事先训练好的,字嵌入则是随机初始化的。所有的嵌入都会随着训练的迭代过程被调整。

第二层为 BiLSTM 编码。该层的输入是将单个词w0通过onehot编码,词嵌入之后的k维稠密向量,BiLSTM层的输出表示该单词对应各个类别的分数,见下图:

其中,W0,BiLSTM节点的输出是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) and 0.05 (O),输出这些标签的概率得分后将其传入CRF层。

第三层为CRF打分层。所有的经 BiLSTM 层输出的分数将作为 CRF 层的输入,类别序列中分数最高的类别就是预测的最终结果

BiLSTM在这个例子中貌似已经得出了正确答案,但并不是总是这样的,还需要CRF。

CRF能为BiLSTM提供转换的一些约束,拿词性标注举例子,形容词后面大概率会跟名词,名词后面大概率会跟动词,还可以提供整个序列的概率统计,前面出现了某些单词后,这个位置应该是谓词。因为LSTM只是对每一步的向量进行过滤和叠加,这些信息是LSTM不好捕捉的。

4.实验

4.1基本参数

使用的数据集是CoNLI-2003

词嵌入初始化:GloVe预训练模型初始化(glove.6B.50d.txt)

学习率:0.001

n_classes = 5 # 分类个数

batch_size = 250

embedding_size = 50 # 每个词向量有几维(几个特征)

hidden_size = 50

epochs = 10

4.2实验结果

在绘制图片时,出现使用show()命令不显示图像的问题,查询得知在无显示环境(我的是在服务器上)是不显示图像的,只能保存图像。结果如下图

全部评论 (0)

还没有任何评论哟~