2015-11-05 134 views

回答

6

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

  1. Tokenize sequnces:将字符串转换为单词(特征):例如:“hello my name is georgio”to [“hello”,“my”,“name”,“is”,“georgio”]。
  2. 接下来,您想删除停用词(查看停用词是什么)。
  3. 这个阶段是可选的,它可能会导致错误的结果,但我认为这值得一试。遏制你的话(功能),这样你会减少功能的数量,这将导致更快的运行。再次,这是可选的,可能会导致一些失败,例如:如果您设置“停车”这个词,您将获得具有不同含义的“停车”。
  4. 接下来的事情是创建一个字典(检查Google)。每个单词都有一个唯一的编号,从这一点我们只会使用这个编号。
  5. 电脑只能理解数字,所以我们需要用他们的语言进行交谈。我们将从第4阶段开始取词典,并用我们的语料库中的每个单词替换其匹配的数字。
  6. 现在我们需要将我们的数据集分为两组:训练和测试集。其中一个(训练)将训练我们的NN模型,第二个(测试)将帮助我们弄清楚NN的优点。您可以使用Keras的交叉验证功能。
  7. 接下来的事情是定义什么是我们的NN可以作为输入获取的最大特征数量。凯拉斯称这个参数为'maxlen'。但是您不必手动执行此操作,Keras可以通过搜索您的语料库中最长的句子来自动执行此操作。
  8. 接下来,假设Keras发现你的语料库中最长的句子有20个单词(特征),你的一个句子是第一个阶段的例子,它的长度是5(如果我们将删除停用词它会更短),在这种情况下,我们需要添加零,实际上是15个零。这就是所谓的pad序列,我们这样做,所以每个输入序列的长度都是相同的。
1

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

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

也许你不得不UR文集转换成ndarray第一扔给你model.predict

从它似乎至今培养模式的model.predict输入应该是100个字语料代表字典中每个单词的索引。所以,如果你想与乌尔语料训练它,你必须根据这些字典乌尔语料库转换,看看结果是0或1

+0

@PanuwatAssawinjaipetch请编辑您的答案以充实您评论中的信息。 – UmNyobe