您当前的位置:首页 > 新闻中心 > 国内新闻

神经机器翻译必读NLP教程:了解谷歌翻译的核心

导读:  语言的魅力可以超越国界和文化

  语言的魅力可以超越国界和文化。对个人来说,除了母语之外再学习一门语言无疑是一种很大的优势,但是掌握双语或者多语的道路是非常漫长的,毕竟语言之间许多细微的差别很难区分。但是,通过在线翻译服务,事情开始变得简单——这就离不开自然语言处理(NLP)技术了。

  在本文中,我们将介绍使用Keras构建德语—英语翻译模型的步骤以及机器翻译系统的历史(本文假设你对RNN,LSTM和Keras较为熟悉)。

  机器翻译(MT)的研究工作早在1950年就开始了,主要是在美国。这些早期系统依赖于庞大的双语词典、手工编码规则以及基于自然语言的通用原则。

  1954年,IBM首次举办了机器翻译的公开演示。该系统的词汇量相当小,只有250个单词,只能将49个精心挑选的俄语句子翻译成英语。这个数字现在看来微不足道,但该系统被广泛认为是机器翻译进程中的一个重要里程碑。

  1964年,美国政府成立了自动语言处理咨询委员会(ALPAC),以评估机器翻译的进展。ALPAC在1966年11月发表了关于机器翻译状态的报告。以下是该报告的主要亮点:

  这份报告推出之后,该领域停滞了很长时间。最后,1981年,加拿大部署了一个名为“METEO系统”的新系统,用于将法语发布的天气预报翻译成英语。这是一个非常成功的项目,一直运作到2001年。

  然后是我们现在熟悉的突破性技术——谷歌翻译。从那以后,它改变了我们用不同语言工作(甚至学习)的方式。

  让我们回到介绍部分中所讲的学习德语。但是,这次我们要让机器完成这项任务——目标是使用神经机器翻译系统将德语句子转换为英语句子。

  Seq2seq模型被用于很多自然语言处理任务,例如文本总结、语音识别、DNA序列模型等等。我们的目标是将给定的句子从一种语言翻译成另一种语言。这里,输入和输出都是句子。换句话说,这些句子是进出模型的一系列单词。这是Seq2seq建模的基本思想,其中输入和输出都是序列。

  典型的seq2seq模型有2个主要组件——编码器和解码器。这两个部分基本上是两个不同的递归神经网络(RNN)模型,组合成一个巨大的网络。

  是时候开始实践了!没有比亲眼看到结果更好的学习体验了。我们将启动Python环境并直接开展测试。

  我们的数据是英语—德语句子对的文本文件。首先,使用下面定义的函数读取文件。

  定义另一个函数将文本拆分为由\ n分隔的英—德对,然后将这些对分别分为英语句子和德语句子。

  实际数据包含超过150,000个句子对。但是,仅使用前50,000个句子对来减少模型的训练时间。可以根据系统的计算能力更改此数字。

  文本处理在任何项目中都是重要的一步,尤其是在自然语言处理中。我们使用的数据往往是非结构化的,因此在跳转到模型构建部分之前,需要注意某些事项。

  在这样做之前,想象一下句子的长度。将分别在两个单独的英语和德语列表中捕获所有句子的长度。

  接下来,使用Keras的Tokenizer()类对文本数据进行矢量化。它会将句子变成整数序列。然后可以用零填充这些序列以使所有序列具有相同的长度。

  下面的代码块包含准备序列的函数。如上所述,它还将执行序列填充到最大句子长度。

  是时候编码句子了。将德语句子编码为输入序列,将英语句子编码为目标序列。对列车和测试数据集进行此操作。

  在此模型中使用RMSprop优化器,因为在使用递归神经网络时它通常是一个不错的选择。

  请注意,我们使用sparse_categorical_crossentropy作为损失函数。因为该函数允许我们按原样使用目标序列,而不是单热编码格式。使用如此庞大的词汇表对目标序列进行单热编码可能会占用系统的整个内存。

  将培训30个时期,批量为512,验证分为20%。 80%的数据将用于培训模型,其余数据用于评估模型。你可以更改并使用这些超参数。

  我们还将使用ModelCheckpoint()函数来保存具有最低验证损失的模型。

  这些预测是整数序列。需要将这些整数转换为相应的单词。让我们定义一个函数来做到这一点:

  这些是在自然语言处理中定期面临的挑战,但并非是不可动摇的障碍。我们可以通过使用更多的培训数据和构建更好(或更复杂)的模型来缓解这些挑战。

  即使使用非常简单的Seq2Seq模型,结果也非常令人鼓舞。通过在更大的数据集上使用更复杂的encoder-decoder模型,可以轻松地改善性能。

  另一个实验是在包含较长句子的数据集上尝试seq2seq方法。尝试的越多,对这个庞大而复杂的空间的了解就越多。

免责声明:本文仅代表作者个人观点,与广州都市网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。


资讯标签:

热度排行