创建句子和下一个字符的向量
本练习旨在进一步强调数据准备的重要性。您将把《生活大爆炸》角色 Sheldon 的台词文本作为输入,创建句子索引向量和相应的下一个字符向量,这些都是在构建文本生成模型之前所需的步骤。
文本保存在变量 sheldon 中,词表(字符集)保存在变量 vocabulary 中,超参数 chars_window 和 step 已定义为 20 和 3。这表示将使用长度为 20 个字符的序列来预测下一个字符,并且滑动窗口在每次迭代时右移 3 个字符。
此外,已在环境中加载 pandas 包并命名为 pd。
本练习是课程的一部分
使用 Keras 构建语言建模的循环神经网络(RNN)
练习说明
- 按换行符拆分文本,以便按句子进行循环。
- 循环到句子末尾减去
chars_window为止。 - 将当前包含
chars_window个字符的句子片段追加到变量sentences,并将其后的下一个字符追加到变量next_chars。 - 使用得到的向量创建一个
pd.DataFrame(),并打印其前几行。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Instantiate the vectors
sentences = []
next_chars = []
# Loop for every sentence
for sentence in sheldon.____:
# Get 20 previous chars and next char; then shift by step
for i in range(0, len(sentence) - ____, step):
sentences.append(sentence[i:i + ____])
next_chars.append(sentence[____ + chars_window])
# Define a Data Frame with the vectors
df = pd.DataFrame({'sentence': ____, 'next_char': ____})
# Print the initial rows
print(df.head())