使用model.predict测试Keras情绪分类

时间:2015-11-05 03:30:30

标签: python sentiment-analysis lstm keras

我已经在我的电脑上训练了imdb_lstm.py。 现在我想通过输入我自己的一些文本来测试训练有素的网络。我该怎么做? 谢谢!

2 个答案:

答案 0 :(得分:7)

所以你基本上需要做的是:

  1. Tokenize sequnces:将字符串转换为单词(features):例如:“hello my name is georgio”to [“hello”,“my”,“name”,“is”,“georgio”]。
  2. 接下来,您要删除停用词(请检查Google是否有停用词)。
  3. 这个阶段是可选的,可能会导致错误的结果,但我认为值得一试。干掉你的文字(特征),这样你就可以减少能够加快跑步速度的特征数量。同样,这是可选的,可能会导致一些失败,例如:如果你阻止“停车”一词,你就会得到“停放”,这意味着不同。
  4. 接下来要创建一个字典(请查看Google)。每个单词都有一个唯一的数字,从这一点开始我们只会使用这个数字。
  5. 计算机仅了解数字,因此我们需要用他们的语言进行交谈。我们将从第4阶段开始学习字典,并用我们匹配的数字替换我们语料库中的每个单词。
  6. 现在我们需要将数据集拆分为两组:训练集和测试集。一个(训练)将训练我们的NN模型,第二个(测试)将帮助我们弄清楚我们的NN有多好。您可以使用Keras的交叉验证功能。
  7. 下一步是定义我们的NN可以作为输入获得的最大功能数量。 Keras称这个参数为''maxlen'。但是你不必手动完成这项工作,Keras可以通过搜索你语料库中最长的句子来自动完成。
  8. 接下来,让我们说Keras发现你的语料库中最长的句子有20个单词(特征),你的一个句子是第一个阶段的例子,它的长度是5(如果我们删除停用词的话)它会更短),在这种情况下,我们需要添加零,实际上是15个零。这称为pad序列,我们这样做,因此每个输入序列的长度都相同。

答案 1 :(得分:1)

这可能会有所帮助。 http://keras.io/models/

以下是一个示例用法。 How to use keras for XOR

可能你必须首先将你的语料库转换成ndarray并将它扔给你的model.predict

从目前看来,训练模型的model.predict输入应该是100个单词语料库,它代表词典中每个单词的索引。因此,如果你想用你的语料库训练它,你必须根据这些字典转换你的语料库,看看结果是0还是1