词序:神经网络能按正确的顺序排列单词吗?
2017年09月07日 由 yining 发表
157323
0
当学习第二语言时,最困难的挑战之一可能是熟悉单词顺序。词序在机器翻译中也很重要,因为翻译大致上是一种处理目标语言词汇的过程,它与源语言是对等的。也许你已经做过一个把打乱的单词或字母放在原来顺序的游戏。我想看看神经网络是否能做到这一点。
要求
- 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 用于
评估和推理。
训练
训练损失和准确性
评估
我们把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