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

she*_*kit 5 deep-learning lstm keras keras-layer

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

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

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

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

Kis*_*ran 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)    
Run Code Online (Sandbox Code Playgroud)


she*_*kit 2

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

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

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