循环神经网络在词性标注及相关任务中的应用
1. 数据预处理
在处理数据集时,我们会对 X_val_idx 、 Y_val_idx 、 X_test_idx 和 Y_test_idx 应用相同的处理流程。至此,我们已将数据集转换为单词和词性索引的并行列表。
接下来是填充操作。我们可以使用 PyTorch 的 pad_sequence() 内置函数将序列填充至相同长度,这个长度对应于批次中最长句子的长度。我们将填充索引设置为 0。
传统的 X 输入矩阵格式是将一个观测(这里指一个句子)的特征存储在一行中,每行包含该句子的单词,然后将观测垂直堆叠在 X 中,输入矩阵的第一个维度称为批次维度或批次轴。
PyTorch 的循环网络和 pad_sequence() 函数有默认格式,其中列表示句子,行表示跨句子的单词。例如,第一行包含批次中所有句子的第一个单词。可以通过设置 batch_first=True 参数来恢复传统顺序。
以下是一个示例,展示了使用传统顺序和默认顺序对语料库中的三个短句子进行填充的区别:
# 传统顺序
>>> pad_sequence(X_train_idx[8131:8134], batch_first=True)
tensor([[272459, 396470,
循环神经网络在词性标注与NLP任务中的应用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



