200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 如何使用Keras为自定义NER构建深度神经网络

如何使用Keras为自定义NER构建深度神经网络

时间:2022-05-20 21:09:09

相关推荐

如何使用Keras为自定义NER构建深度神经网络

在这篇文章中,我们将学习如何使用Keras创建一个简单的神经网络来从非结构化文本数据中提取信息(NER)。

模型架构

在这里,我们将使用BILSTM + CRF层。LSTM层用于过滤不需要的信息,将仅保留重要的特征/信息,而CRF层用于处理序列数据。

BI-LSTM层

BI-LSTM用于为我们的单词生成向量表示。 它以句子中的每个单词作为输入,并在两个方向(即正向和反向)上生成每个单词的向量表示,其中正向访问过去的信息而反向访问将来的信息。 然后将其与CRF层合并。

CRF层

CRF层是BI-LSTM层之上的优化。它可用于基于过去的属性标签有效地预测当前标签。

数据预处理

加载数据

在本文中,我将使用Kaggle机器学习数据集(/abhinavwalia95/entity-annotated-corpus)。对于我们的机器学习模型,我们需要一个包含“ Sentence_id” /“ Sentence”列,“ word”列和“ tag”列的data frame。Python代码如下:

在SentenceGetter中包装输入数据

加载数据之后,我们将使用SentenceGetter类来检索带有标签的句子。Python实现如下:

这是三个句子的样子:

单词和标签词典

Keras(和大多数其他机器学习模型)期望所有id都是数字,这是节省内存的优化。我们将使用word2idx字典将每个单词转换为相应的整数ID,并使用tag2idx将tag转换为整数ID。

BI-LSTM层期望所有文本/句子的长度相同。我们将填充大小选择为最长句子的长度。Python代码如下:

创建模型(并了解层参数)

输入层

输入层采用形状参数,该参数是表示输入数据维数的元组。

嵌入层

基本上,它是一个字典查找,它以整数作为输入并返回关联的向量。它包含三个参数:

input_dim:文本数据中词汇的大小,即n_words + 1output_dim:嵌入的维数input_length:输入序列的长度,即最长句子的长度BI-LSTM层

它包含五个参数:

units:输出空间的维数return_sequences:如果return_sequence = True,则返回完整的输出序列,否则,返回输出序列中的最后一个输出。dropout:输入线性转换要下降的单位的分数。它介于0和1之间。recurrent_dropout:recurrent状态的线性转换要下降的单位的分数。它介于0和1之间。kernel_initializer:核权重矩阵的初始化程序,用于输入的线性转换。TimeDistributed层

它是一个包装器,允许我们对序列中的每个元素独立地应用一个层。它用于序列分类,以保持输入和输出的一对一关系。

CRF层

我们没有应用任何自定义的CRF层。我们已经将输出类的数量传递给了CRF层。

机器学习模型Python代码

拟合和评估模型

编译模型

在训练模型之前,我们需要配置学习过程。它包含三个参数:

优化器:它将根据看到的数据及其损失函数进行自我更新损失:它将能够根据训练数据衡量其性能。指标:机器学习模型在训练和测试期间要评估的指标列表。回调列表

当且仅当验证精度提高时,它才用于将模型权重更新/保存到模型文件。它包含五个参数:

filepath:目标模型文件的路径monitor:监视模型的验证准确性verbose:如果verbose = 1,它将显示进度条和每个epoch一行,如果verbose = 0,它将不显示任何内容,如果verbose = 2,它将只显示每个epoch一行。save_best_only:如果save_best_only = True,则根据监视数量的最新最佳模型将不会被覆盖。mode:如果我们希望将其最小化,则将监视值设为val_loss,将mode =min设置;如果我们要将其最大化,将set _ =max进行监视,将其设为val_acc。拟合模型

它包含七个参数:

X:输入数据y:目标数据batch_size:每个梯度更新的样本数,batch_size将默认为32。epochs:epoch是对所提供的整个x和y数据的迭代。训练模型的epochs数。validate_split:将训练数据的一部分用作验证数据。verbose:如果verbose = 0,它将不显示任何内容,如果verbose = 1,它将显示进度条和每个epoch一行,如果verbose = 2,它将只显示每个epoch一行。callbacks:评估期间要应用的回调列表。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。