使用 LSTM 进行文本预测
在接下来的练习中,您将构建一个玩具版的 LSTM 模型,用一个小型文本数据集来预测下一个单词。
该数据集包含清洗过的《The Lord of the Ring》电影台词。您可以在变量 text 中找到它们。
您将把这个 text 转换为长度为 4 的 sequences,并使用 Keras 的 Tokenizer 来为模型准备特征和标签!
Keras 的 Tokenizer 已为您导入。它会为每个唯一单词分配一个唯一编号,并将映射保存在字典中。这一点很重要,因为模型处理的是数字,而我们稍后需要将输出的数字再解码回单词。
本练习是课程的一部分
Keras 深度学习入门
练习说明
- 使用
.split()将文本拆分为单词数组。 - 以每次移动 1 个单词的方式,构造由 4 个单词组成的句子。
- 实例化一个
Tokenizer(),并使用.fit_on_texts()在这些句子上进行拟合。 - 调用
.texts_to_sequences()将sentences转换为数字序列。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Split text into an array of words
words = ____.____
# Make sentences of 4 words each, moving one word at a time
sentences = []
for i in range(4, len(words)):
sentences.append(' '.join(words[i-____:i]))
# Instantiate a Tokenizer, then fit it on the sentences
tokenizer = ____
tokenizer.____(____)
# Turn sentences into a sequence of numbers
sequences = tokenizer.____(____)
print("Sentences: \n {} \n Sequences: \n {}".format(sentences[:5],sequences[:5]))