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

时间:2017-03-22 23:12:17

标签: deep-learning keras lstm keras-layer

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

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

然而,我的问题是如何在这个模型中输入一段新文本(我组成的东西)来预测?我怎样才能访问这些单词词汇?

之后我可以通过输入文本预处理成一个数字数组并将其输入。谢谢!

2 个答案:

答案 0 :(得分:6)

在预测新文本时,您必须按照您为培训所做的相同步骤。

  • 预处理这句新句子。
  • 使用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)    

答案 1 :(得分:2)

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

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

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