2

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

4

2 回答 2

7

所以你基本上需要做的事情如下:

  1. 标记序列:将字符串转换为单词(特征):例如:“hello my name is georgio” to ["hello", "my", "name", "is", "georgio"]。
  2. 接下来,您要删除停用词(检查 Google 了解停用词是什么)。
  3. 这个阶段是可选的,它可能会导致错误的结果,但我认为值得一试。停止你的词(特征),这样你会减少特征的数量,这将导致更快的运行。同样,这是可选的,并且可能会导致一些失败,例如:如果您将“停车”一词设为词干,则会得到具有不同含义的“停车”。
  4. 接下来是创建一个字典(检查谷歌)。每个单词都有一个唯一的编号,从这里我们将只使用这个编号。
  5. 计算机只能理解数字,所以我们需要用它们的语言交谈。我们将从第 4 阶段获取字典,并将语料库中的每个单词替换为其匹配的数字。
  6. 现在我们需要将我们的数据集分成两组:训练集和测试集。一个(训练)将训练我们的 NN 模型,第二个(测试)将帮助我们弄清楚我们的 NN 有多好。您可以使用 Keras 的交叉验证功能。
  7. 接下来是定义我们的 NN 作为输入可以获得的最大特征数。Keras 将此参数称为“maxlen”。但是您实际上不必手动执行此操作,Keras 只需搜索您在语料库中最长的句子即可自动执行此操作。
  8. 接下来,假设 Keras 发现您的语料库中最长的句子有 20 个单词(特征),并且您的一个句子是第一阶段的示例,其长度为 5(如果我们删除停用词,它会更短),在这种情况下,我们需要添加零,实际上是 15 个零。这称为填充序列,我们这样做是为了使每个输入序列的长度相同。
于 2015-12-08T11:40:59.090 回答
1

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

这是一个示例用法。 如何使用 keras 进行异或运算

可能您必须先将您的语料库转换为 ndarray 并将其扔到您的 model.predict

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

于 2015-11-06T04:24:28.557 回答