词序:神经网络能按正确的顺序排列单词吗?

时间:2022-05-02
本文章向大家介绍词序:神经网络能按正确的顺序排列单词吗?,主要内容包括要求、模型架构、文件说明、训练、训练损失和准确性、评估、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

当学习第二语言时,最困难的挑战之一可能是熟悉单词顺序。词序在机器翻译中也很重要,因为翻译大致上是一种处理目标语言词汇的过程,它与源语言是对等的。也许你已经做过一个把打乱的单词或字母放在原来顺序的游戏。我想看看神经网络是否能做到这一点。

要求

  • NumPy > = 1.11.1
  • TensorFlow==1.2(可能使用1.3也可以运行,不过我没有测试过)
  • matplotlib
  • 距离
  • tqdm

模型架构

到2017年,我使用的转换器是在机器翻译任务中最先进的模型,并已经被人们所熟知。这有一篇介绍转换器的文章,地址:https://arxiv.org/abs/1706.03762 然而,我不知道它是否适合这个任务。实际上,我认为一个更简单的架构可能会起作用。如下:

文件说明

  • hyperparams.py 包括所有需要的超参数。
  • data_load.py 包含关于加载和批处理数据的函数。
  • modules.py 具有编码/解码网络的所有构建块。
  • train.py 包含模型和训练代码。
  • eval.py 用于评估和推理。

训练

  • 步骤一:下载并提取Leipzig English News 2015 1M Corpus。
  • 步骤二:必要时在hyperparams.py调整超参数。
  • 步骤三:运行train.py或者下载预训练文件。下载地址:https://www.dropbox.com/s/5axxz6f9g93ms72/logdir.zip?dl=0

训练损失和准确性

  • 训练损失
  • 训练准确性

评估

  • 运行eval.py.

我们把WER(单词错误率)作为度量。单词错误率=编辑距离(Edit distance)÷单词数量。例:5530/23541=0.23

以下是一些评估结果。详细信息可以在results文件夹中找到。

输入: another this step development that is in 期望的结果: is this another step in that development 实际结果: that that another step in that development 单词错误率 : 2

输入: time we’re remember going a long to for this 期望的结果: we’re going to remember this for a long time 实际结果: we’re going to remember this for a long time 单词错误率: 0

输入: retail a at look concepts for ahead up-and-coming click spinoff 期望的结果: for a look at up-and-coming spinoff retail concepts click ahead 实际结果: the this retail at this concepts click click click ahead 单词错误率: 7

输入: comfort daughter his is -year-old 期望的结果: comfort is his -year-old daughter 实际结果: his is his -year-old daughter 单词错误率: 1

输入: solar are tumbling prices everywhere 期望的结果: everywhere solar prices are tumbling 实际结果: solar solar prices are about 单词错误率: 2