这里的训练主要关注如下几点:
- 模型
- 训练数据
- 模型参数
rnn版本seq2seq
对联
总体数据介绍
这里使用的是对联作为数据集,训练集770491 pair数据,测试集有4000pair数据。
实验1
训练数据
训练集使用了10w pair数据
模型参数
词向量没有经过预训练,下面是参数:
- hidden_unit 512
- layer 1
- dropout 0.2
- batch_size 64
- learning rate 0.001
- step 5000
效果
10w-512units-1layer-0.001-64batch_size-5kstep-45min.pngloss一直在下降,而且还有下降的趋势,总体耗时45分钟,下面是五个测试:
- 上联:殷勤怕负三春意;下联:幸福还求一世情
- 上联:如此清秋何吝酒;下联:若来明月自成诗
- 上联:天朗气清风和畅;下联:水清山静水清清
- 上联:梦里不知身是客;下联:心中无奈我为人
- 上联:千秋月色君长看;下联:一夜风光我自听
看上去效果还不错,1,3,4感觉有点不那么好,2,5感觉还可以。简单的韵律还是能学到的,比如三春对一世;清秋对明月;梦里对心中;千秋对一夜;月色对风光。这些都是在训练集中出现过的,学习到了,直接反应在了infer阶段。
但是更多的细节学习不到,比如:
-
上联:万岁万岁万万岁;下联:一生一品三千年
这种万岁万岁这种叠词,就学习不到,应该是因为训练集里面没有这种语料,但是也能胡诌一下。 -
上联:博士生,研究生,本科生,生生不息;下联:文章,兴强,谋强市,强国,死难言
下联直接对飞了,普通的规律都没有学习到,说明学习的还不到位。而且这种属于比较妙的对联,前面三种都属学生的一种,seq2seq没有这种先验信息,很难对出来工整的下联。 -
上联:古木枯,此木成柴;下联:新鸡鸣,其花作鸡
还有这种,古加木结合成了枯字,这种逻辑,seq2seq基本学习不到。
总结:
- 能学习到普通词语的对仗
- 精巧一点的,比如叠词,如果训练集里面数据较多,还是可以学到的
- 更精巧一些的,比如“博士生,研究生,本科生”这种,需要先验知识的,seq2seq是学习不到的
seq2seq只能学到train里面有的,表面上的特点;深层的,有先验知识的,学习不到。
网友评论