多语言 AI 语言翻译






4.50/5 (3投票s)
在本文中,我们将在其他语言上训练和测试我们的翻译模型。
引言
谷歌翻译的效果非常好,常常让人觉得像是魔法。但它不是魔法,而是深度学习!
在本系列文章中,我们将向您展示如何使用深度学习来创建一个自动翻译系统。本系列可以被看作是一个逐步的教程,帮助您理解和构建神经机器翻译。
本系列假设您熟悉机器学习的概念:模型训练、监督学习、神经网络,以及人工神经元、层和反向传播。
我们在上一篇文章中取得的成果很好,即使它还没有完全准备好取代谷歌翻译。在本文中,我们将在其他语言上训练和测试我们的翻译模型。
翻译多种语言
我们在这里创建的函数将支持使用我们开发的模型从一种语言到另一种语言的自动翻译。
欢迎您将代码下载为Google Colab文件。
我们的应用程序将能够从一个制表符分隔的平行语料库中创建一个模型,例如来自Tatoeba项目的那些。
查看我们的代码,您会看到我们将训练模型所需的一切都分组到一个 train_model 函数中,并翻译一个 translate 函数,该函数接受一个包含模型输入语言文本的文件,并将其翻译成模型的输出语言。
让我们使用一个包含我们要翻译的英文文本的文件来运行我们的工具——f test.txt,它包含
this is a test
hello
can you give me the bill please
where is the main street
translate("rus.txt","test.txt","model12")
我们得到以下输出
input model translation
0 this is a test это тест
1 hello привет
2 can you give me the bill please не можете мне пожалуйста
3 where is the main street где здесь улице
结果是正确的,除了第三行。
现在让我们训练然后使用法语翻译器
train_model("fra.txt","model_fr")
translate("fra.txt","test.txt","model_fr")
input model translation
0 this is a test c'est un d'un
1 hello
2 can you give me the bill please tu me donner la s'il te prie
3 where is the main street où est la rue est rue
结果非常糟糕。只有第四句话的翻译在某种程度上是可理解的。原因是法语的复杂性,以及训练数据集与俄语数据集相比相对较小。
以下是从英语到德语的自动翻译结果
input model translation
0 this is a test das ist eine test
1 hello
2 can you give me the bill please könntest sie mir die rechnung geben
3 where is the main street wo ist die straße
这几乎是 100% 完美。
最后,让我们尝试看看同样的方法将英语翻译成荷兰语的效果如何
input model translation
0 this is a test dit is een nationale
1 hello hallo
2 can you give me the bill please kunt je me instapkaart geven
3 where is the main street waar is de bushalt
它并不完美,“Where is the main street”被翻译成“Where is the bus station?”,而“can you give me the bill please”被翻译成“can you give me the boarding pass”。
正如您所看到的,根据语言和训练数据集的大小,我们有非常不同的结果。
后续步骤
正如我们所看到的,我们能够构建一个非常好的机器翻译系统,而无需编写数千行代码或花费数千美元在 GPU 上训练或模型。当然,与大多数深度学习任务一样,您的训练数据集越大(并且您可以在训练上花费更多时间),您的翻译模型就会越准确。
有许多构建用于机器翻译的 ML 系统的方法。我们只是探索了其中一种。或者,您可以使用卷积神经网络 (CNN) 而不是 RNN,或者使用像Moses这样的软件;它将统计机器翻译与深度学习模型相结合。
既然您已经看到了 AI 语言翻译的实际应用,您可能想尝试使用 Transformers 进行 AI 翻译。Transformers 是一种最先进的自然语言处理任务方法,完全基于注意力机制。它们根本不使用像我们一直在创建的模型那样的序列。尽管 Transformers 是新的,并且不像基于序列的 AI 翻译那样受到那么多的研究支持,但它开始看起来 Transformers 将成为许多自然语言处理任务的未来。
最后,如果您喜欢您所学到的内容,为什么不运用您的新技能,创造一些伟大的东西,然后在 CodeProject 上写下它并分享它呢?