我们接下来编写训练函数、评估函数、预测函数。 1. 训练函数 由于我们希望批次输入训练数据,在使用 RNN、GRU、LSTM 时,可以使用 pad_sequence、packed_pad_sequence、pad_pac...
模型构建主要包括了 CRF 层的实现,以及 BiLSTM 层的实现。其中 CRF 层相对复杂一些,主要有两个较难的难点:一、要计算所有路径的损失,二、要根据发射矩阵回溯最优路径。 1. CRF 层实现 CRF 层实现时计...
数据处理主要是加在语料、构建词典、以及将数据集转换为索引表示。我们这里会删除句子长度超过 505 的句子。由于构建词典时,是根据训练集数据构建的,所以在对测试集进行编码时,可能会出现 oov 问题,我们直接用 UNK 来...
模型评估主要做的事情,提取测试集所有的实体名称,并划分为 ORG、PER、LOC 类别。分别统计每个类别的精度、召回率,以及准确率。 1. 提取实体名称 我编写了 extract_decode 函数,该函数接收一个句子,...
我们使用 Bert 的 bert-base-chinese 为基础模型,在我们自己的数据集上进行微调来实现 NER 任务。我们这里使用的是 transformers 库中提供的 BertForTokenClassific...
我们使用的是 MSRA 中文 NER 数据集,该数据集共包含三个目录:test、valid、train,分别对应了测试集、验证集、训练集。训练集有:42000 条数据,验证集有 3000 条数据,测试集有 3442 条数...
对于命名实体识别任务,基于神经网络的方法应用非常常见。其中的 CRF 层对于刚刚接触学习的同学可能不是特别容易理解,下联链接的文章的作者对 CRF 做了非常好的讲解。我认真学习了作者的相关文章,把自己的理解总结下来,想看...
字节对编码(Byte-Pair Encoding,BPE)最初被开发为一种文本压缩算法,后来被 OpenAI 用于 GPT 模型预训练时的分词。许多 Transformer 模型都使用了该方法,包括 GPT、GPT-2、...
我们在使用 transformers 时,需要使用自己的数据来构建 tokenizer。这里我们使用 tokenizer 库,该库可以帮我们更加轻松的构建不同类型的 Tokenizer。安装命令如下: 训练一个分词器,我...