翻译一个单词神经网络

人工智能 神经网络
2021-10-18 23:02:21

我的任务是创建一个神经网络,该网络将为以任何其他欧洲语言(在此处找到的那些)中给出的单词建议克罗地亚语单词。这些词仅限于您可以在酒吧菜单上找到的饮料。

我查看了许多简单和复杂的 NN 示例,但我无法理解如何规范化输入。

例如,单词“beer”、“birra”和“cervexa”都应该翻译成“pivo”。如果我将这 3 个包含在训练集中,并且在网络完成训练后我输入单词“bier”,输出应该再次是“pivo”。

我不是在寻找这个问题的有效解决方案,我只需要在正常化方面朝着正确的方向轻推。

2个回答

没有提到训练示例,但是,假设分配涉及监督学习,在这种情况下,归一化是将输入和输出映射到二进制值。

在这个简化的上下文中,翻译是字符串到字符串的映射,按照当代标准,它并不是真正的人工智能设备。由于人工网络是解决方案的要求,因此目标是训练网络像哈希图一样工作。

{...,(["beer", "birra", "cervexa"]:"pivo"),...}

{...,("beer" : "pivo"),("birra" : "pivo"),("cervexa" : "pivo"),...}

假设有一个对列表(X,Y), 在哪里X是任何源语言中的单词,并且Y是目标语言中的单词,并且已知两者的词汇量都为XY分别可以确定输入和输出层的宽度(细胞计数)w1w, 在哪里是网络层数。

w1=ceiling(log2X)
w=ceiling(log2Y)

将源字分配给二进制值是任意的。您可以按语言对它们进行排序,然后按使用的任何常见字符编码(例如 UTF-8)进行排序,仅用于调试目的。目标词也是如此。

使用基本传播图进行小批量训练的简单 MLP(多层感知器)是合适的。

所以,normalization正如你所说的,它只是将单词编码为一些固定长度的向量。编码后,您应该能够对其进行解码并匹配单词。你应该用谷歌搜索一下seq2seq问题和Encoder/Decoder结构。那里有编码器-解码器框架和大量资源。你不关心一种语言,所以只是假装像“啤酒”和“birra”这样的词在克罗地亚语中具有相同的含义,在这种情况下,它是“pivo”。