课后作业--中英翻译实战--问题咨询

来源:10-32 示例展示与实战总结

jandy_chen

2020-03-25

1、主要训练数据是对应这个 : news-commentary-v14.en-zh.tsv了大小82.5兆了吗? 另外发现两个en-zh 文件共有1G多,但解不开。

2、实战过程中有些疑问如下:
1), 发现这tensorflow_dataset下的SubwordTextEncoder也能对中文进行分词,他跟第三方的jieba分词有 异同吗?
2)构建词表时,我还是使用跟老师一样2*13大概8千多个。请问这个词表大小,通常设置大小要出于什么样的考虑。比如,针对此中文我作jieba分词统计时,共有10万左右的词,词频20次大概在1万5左右,词频10次以上大概2万3左右? 这里词表大小设置多少合适?
3) 词分隔得粒度如何考虑?比如英文时subword是,比字母更粗点,但一个词也会被分离? 但是中文是,且是几个字合在一起? 英文是不是也可以考虑按单词划分,或按词串?? 谷歌翻译是怎么做了,老师可否说一下??
4) 针对这类翻译的,loss值通常训练到多少,翻译结果才比较可以?老师最后一章的训练30个epoch就能到0.26左右。我自己实现的中英翻译的大概50个epochs也只到0.74左右。请问老师实现的中英翻译结果是多少?

写回答

2回答

正十七

2020-05-24

  1. new_commentary-v14.en-zh.tsv我这边显示是82472835字节,79M。另外两个是一个压缩包的两个分片,要先合并再解压缩,cat UNv1.0.en-zh.tar.gz.0* > UNv1.0.en-zh.tar.gz && tar xvzf UNv1.0.en-zh.tar.gz

  2. SubwordTextEncoder跟jieba分词是两个不同的方法,SubwordTextEncoder应该是按照频次学习的词表,个人感觉应该比较弱,jieba分词或者其他的分词系统感觉更有意义。

  3. 词表看需求,考虑的因素包括模型大小,最终效果等等,词表大小在2万左右即可,频次阈值可以设成10.

  4. 词语粒度这块,英文跟中文还是有区别的,中文的字很难拆分,英文单词倒是可以。Google翻译最新的模型的粒度是subword。

  5. 翻译问题的损失其实loss只是参考值,正宗的指标是称之为BLEU的指标。https://zhuanlan.zhihu.com/p/39100621, 我们在实战中为了简便没有实现这个指标。之所以loss不成,是因为,一个句子可能对应多种翻译,所以只和一种结果比是不公平的,同时,因为位置不确定的原因,只跟一种顺序比也是不公平的。你可以试试这个指标。同时,这个指标也不是终极标准,因为最后的翻译质量和人的主观意识很有关系,所以想作出一个高质量的翻译平台,除了算法外,还要投入大量的人力物力去做评估和数据。

1
0

炼丹师

2020-05-28

同学,你这个中英翻译模型保存模型之后,再运行报错了吗?

0
1
jandy_chen
不会报错
2020-07-16
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程