使用内置数据集时如何在keras中输入新文本进行预测

How to input new text for prediction in keras while using an inbuilt dataset

我正在浏览 keras 中的示例,我 运行 使用 LSTM 对内置 imdb 数据集 (https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py) 上的情绪进行分类的示例。

在检查数据时,每条评论都被描述为一个数字数组,我假设它们是使用该数据集构建的词汇表中的索引。

但是我的问题是如何将一段新文本(我自己编的)输入到这个模型中以获得预测?我将如何获得这些词汇表?

之后我可以通过将文本输入到数字数组中进行预处理并将其输入。谢谢!

数据集还提供了用于编码序列的单词索引:

word_index = reuters.get_word_index(path="reuters_word_index.pkl")

它也是 return 一个字典,其中键是单词 (str),值是索引(整数)。例如。 word_index["giraffe"] 可能 return 1234.

预测新文本时,您必须按照与训练相同的步骤进行操作。

  • 预处理这个新句子。
  • 使用 word_index
  • 将文本转换为矢量
  • 使用您在训练期间指定的相同长度填充向量
  • 展开数组并将其作为输入传递给您的模型
sentences = clean_text(text)

word_index = imdb.get_word_index()

x_test = [[self.word_index[w] for w in sentences if w in self.word_index]]

x_test = pad_sequences(x_test, maxlen=maxlen) # Should be same which you used for training data

vector = np.array([x_test.flatten()])

model.predict_classes(vector)