为训练准备数据
在本练习中,您将继续准备数据以训练模型。创建了句子数组和下一个字符数组后,您需要将它们转换为可用于模型的数值。
这一步是必要的,因为 RNN 模型只接受数字而非字符串。您将创建数值数组,在表示句子中字符的位置上填入 0 或 1。1(或 True)表示对应字符在该位置出现,0(或 False)表示该位置没有该字符。
变量 sentences、next_char、n_vocab、chars_window、num_seqs(训练数据中的句子数量)以及 numpy(已以 np 导入)都已在环境中加载。
本练习是课程的一部分
使用 Keras 构建语言建模的循环神经网络(RNN)
练习说明
- 实例化一个用零填充的
np.array(),其形状为(句子数量, 字符窗口大小, 词表大小)。 - 使用字典
char_to_index将当前字符对应的位置设为1。 - 将当前的下一个字符设为
1。 - 打印每个数组的第一个位置。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")