赞
踩
个人理解:
bpe subword可以用来解决 “机器翻译” 中,“未登录词”的问题。
所谓“未登录词”,是指“测试集/验证集”中出现 但是 在“训练集”中没有出现的 单词。
原始的“机器翻译”是在word-level下进行训练的。
先用语料库构建dictionary,给出dictionary中每个word的编码。然后,把sentence投入模型进行训练。
有一个疑问:
比如:在“英 -> 中”translation system中,encoder部分每个cell输入的是一个word embedding。那decoder部分每个cell的input部分是decoder上一时刻cell output的value,还是output word的word embedding?
个人感觉,是后者,即 word embedding。即:在 机器翻译 中,要训练 中/英 两种语言的 wordembedding。
而,bpe subword是同时在word-level和char-level下进行训练的。
首先,利用bpe形成codec文件,即“最高频词子字符串” 集 文件。
然后,利用codec文件,形成dictionary文件。此dictionary中,既有word-level,也有char-level。
第三,将训练集 根据 bpe 进行解码,对应到dictionary中的各个item,得到 各个item的 特征向量。
第四,根据得到的 特征向量(即:wordembedding),将其投入到 模型,进行训练。(此步过程 与 传统的 机器翻译 相同)。
参考博文:
AI Challenger 2018 简记
bpe分词算法的原理以及在机器翻译中的应用
一分钟搞懂的算法之BPE算法
机器翻译 bpe——bytes-pair-encoding以及开源项目subword-nmt快速入门补充几个用于 机器翻译 的工具:
1)tensor2tensor
2)Marian
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。