基于术语词典干预的机器翻译挑战赛Task2学习笔记 #Datawhale AI夏令营

一、前言

在上一个任务Task1中,我们跑通了最简单的baseline,大致了解了竞赛的流程、规则、以及判分标准等等。在这次的Task2中,我们将对baseline代码进行深度解析,掌握代码的基本结构以及各部分的具体实现逻辑和参数该如何调整从而进行上分。

二、代码逻辑与上分解析

(一)代码逻辑结构介绍

Task2的代码实现了一个经典的Seq2Seq模型,中间使用了GRU网络,并在网络中增加了注意力机制。在Seq2Seq中涉及到了编码器、解码器、GRU门控单元、注意力机制逻辑。

编码器和译码器其实就是负责人类语言和机器语言的转换(因为要进行机器翻译,所以要让机器明白你的意思,自然就要用到机器语言,机器语言作为两种人类语言联系的桥梁),将两种人类语言通过中间的的机器语言相联系(前提是两种人类语言之间的每个单词都有含义且表达意思相同),通过此原理完成了两种语言之间的翻译。下面是加了注意力机制的编码器和译码器的工作原理。

左侧是编码器,依据送入的源语言单词x对应修改并维护其模型内部的隐状态 h,这个隐状态编码了输入的源语言序列前 t 个时刻的所有必要信息。右边是解码器,在注意力机制的协助下,将编码器生成的隐状态有选择地作为译码器的输入端(自由选择左侧红色方框里的隐状态来作为输入,这样做的好处就是可以避免由于输入句子过长从而导致最后一个h无法承载整个句子所表达的意思),其实这里应该有一个标志词[start]和[stop]来表示译码开始与结束。也是由于h不好承载整个句子含义的原因,我们引入了GRU门控单元。

公式一
公式二
公式三

 

GRU的实现逻辑如上,它实现了上一个隐状态和下一个隐状态之间的联系,可以决定相邻两个隐状态之间有多大的联系。 

首先重置门Rt是由输入Xt和上一个状态Ht-1决定的,公式二中两个变量前面的系数决定了Rt对Xt和Ht-1的依赖程度,如果更偏向过去状态一点(想要记住更多的过去状态)就让Ht-1的系数大一点,否则Xt的系数大一点,更新门亦是此道理。从而得出,重置门允许我们控制“可能还想记住”的过去状态的数量; 更新门将允许我们控制新状态中有多少个是旧状态的副本,即重置门偏向过去状态,更新门偏向新状态。

然后,候选隐状态逻辑如公式三所示。 每当重置门Rt中的项接近1时, 我们恢复为普通的循环神经网络,接近0时,候选隐状态则传递的是新状态x。

最后公式一中的前状态和后状态的联系部分,Zt = 1时,隐状态与前一个隐状态相关,Zt=0时,隐状态只与新状态x有关。

了解了GRU的逻辑后,我们就可以推出GRU放置在编码器的各个Ht之间,从而决定前后两个隐状态的联系

(二)代码环境配置

我们需要安装spacy这个自然语言库,用来进行自然语言和机器语言之间的转换。由于官网下载太慢且安装成功率低,我们进行了离线安装,步骤见Task2的详细介绍。

需要注意的一点是,在en_core_web_trf-3.7.3-py3-none-any.whl成功上传到文件夹之前不能进行安装操作,否则会导致报错。

(三)数据预处理

自然语言中没有含义或对句子成分进行干扰的地方我们需要进行数据清洗,从而提升我们的翻译效果。对于一些单词和短语,运用spacy库进行合理的分词从而进行转换,在自然语言中添加开始结束标志从而避免机器翻译无法停止,同时我们可以通过不同语言之间来回翻译的手段进行数据增强,提升机器翻译效果,最后我们应该注重训练集、验证集的合理分配。这些手段都可以达到上分的目的,需要合理地做出选择,不断调参提升机器翻译的效果。

(四)翻译效果评价

这里进行BLEU-4的评价方法,只有连着四个单词回答正确才能加分,否则为零,较为严苛,会导致很多同义词或近义词本来翻译正确了但判断为错误导致误判,比较影响翻译结果的评估。

三、总结

问题解决:

在代码部分,如果在model和results调用过程中出现了类似下面找不到父目录的情况时,这是因为我们并没有创建model文件夹,而代码也没有创建model文件夹的指令。我们可以现在一个一致的文件夹下创建一个model文件夹,然后再将代码中的model地址改成这个model文件夹的地址,从而将得到的文件导入这个新建的model文件夹中。results文件夹也是同理,最终得到的翻译结果会储存到results文件夹中,我们从results文件夹中下载结果即可。

调整方向:

在对baseline进行调参的过程中,我比较关注训练集数以及迭代次数的改变,而忽略了数据清洗、数据增强等其他手段,导致并没有完成提分,后续我会再对我的操作进行更改,也会在参考Task3中的上分技巧再对分数进行提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值