我的任务是创建一个神经网络,该网络将为以任何其他欧洲语言(在此处找到的那些)中给出的单词建议克罗地亚语单词。这些词仅限于您可以在酒吧菜单上找到的饮料。
我查看了许多简单和复杂的 NN 示例,但我无法理解如何规范化输入。
例如,单词“beer”、“birra”和“cervexa”都应该翻译成“pivo”。如果我将这 3 个包含在训练集中,并且在网络完成训练后我输入单词“bier”,输出应该再次是“pivo”。
我不是在寻找这个问题的有效解决方案,我只需要在正常化方面朝着正确的方向轻推。
我的任务是创建一个神经网络,该网络将为以任何其他欧洲语言(在此处找到的那些)中给出的单词建议克罗地亚语单词。这些词仅限于您可以在酒吧菜单上找到的饮料。
我查看了许多简单和复杂的 NN 示例,但我无法理解如何规范化输入。
例如,单词“beer”、“birra”和“cervexa”都应该翻译成“pivo”。如果我将这 3 个包含在训练集中,并且在网络完成训练后我输入单词“bier”,输出应该再次是“pivo”。
我不是在寻找这个问题的有效解决方案,我只需要在正常化方面朝着正确的方向轻推。
没有提到训练示例,但是,假设分配涉及监督学习,在这种情况下,归一化是将输入和输出映射到二进制值。
在这个简化的上下文中,翻译是字符串到字符串的映射,按照当代标准,它并不是真正的人工智能设备。由于人工网络是解决方案的要求,因此目标是训练网络像哈希图一样工作。
假设有一个对列表, 在哪里是任何源语言中的单词,并且是目标语言中的单词,并且已知两者的词汇量都为和分别可以确定输入和输出层的宽度(细胞计数)和, 在哪里是网络层数。
将源字分配给二进制值是任意的。您可以按语言对它们进行排序,然后按使用的任何常见字符编码(例如 UTF-8)进行排序,仅用于调试目的。目标词也是如此。
使用基本传播图进行小批量训练的简单 MLP(多层感知器)是合适的。
所以,normalization
正如你所说的,它只是将单词编码为一些固定长度的向量。编码后,您应该能够对其进行解码并匹配单词。你应该用谷歌搜索一下seq2seq
问题和Encoder/Decoder
结构。那里有编码器-解码器框架和大量资源。你不关心一种语言,所以只是假装像“啤酒”和“birra”这样的词在克罗地亚语中具有相同的含义,在这种情况下,它是“pivo”。