deepnlp
deepnlp copied to clipboard
[text sum] _UNK
Hi,
我在使用提供的训练好的模型进行进行预测时发现,输出" _UNK"的情况时有发生,不知这是什么原因呢。
是因为 input 的分词与训练时候有差别吗,也就是分词结果不在 vocab 当中?
README中的两条测试返回均正常。
估计是提供的程序里边还有些地方需要特殊的处理,我利用别的数据进行训练,似乎返回的都是_UNK,LS可以试试用别的数据集训练一下看看效果。
@xum2008 我试了,也是_UNK。。。-。-
@ailurus1991 @xum2008 抱歉太忙了才来得及看到,输出_UNK 的情况我也有遇到过,我当时的考虑的原因有以下几个:
- train, test的标签替换的规则要统一, 因为vocab没有保存数字,日期,英文等字符,一旦有字符输入被模型当成_UNK的向量,之后的timestep很有可能就是接着几个_UNK和 EOS,输出就被截断了; 感觉泛化的能力一般;
- 输入文章的长度超过120 或者太短,加了很多的Padding;
- 另外如果用自己的语料训练很有可能是还没有收敛,当时花了8核CPU 1周多的时间在80多万train的pair上训练到perplexity降到40多,感觉就有一定的效果了;我想把更多的test集合发出来,可能能够测试效果;
- 想看效果可以用一个small的训练集,比如100多句,很容易过拟合,可以试试,就不会出现UNK的效果,输出标题和训练的Label就非常接近了;
您好,请问这个在tensorflow的textsum基础上改动了多少?是只加了中文分词和泛化中文地名,人名这些标签吗?假如我要用新的语料的训练,是不是只用做这部分操作?
Hi @rockingdingo,
vocab_size设为50000,导致很多词都不在词典里。vocab_size 能设得更大些吗?更大的vocab_size,除了会降低 performance,是不是会产生其它副作用?
谢谢
我用五万条数据进行训练,perplexity降到了20多,测试的时候输出的还是全部都是_UNK是为什么呢? @ailurus1991 @xum2008 你们有弄好吗?
@DavidDota 请问你解决了textsum输出全是_UNK的问题了吗?
@huyi1989 我后来只是改善了一点点,但是还是有特别多的unk,这部分我后来分析了一下,一方面是因为在预处理的时候,面对日期,标点等等有一定的影响,另一方面是这个模型在生成词的时候若生成一个unk,后面可能全都是unk,因为重复输出也是这个模型的一个缺点,后来的一篇point-generator在这两点上面做了很不错的优化,建议你可以去读读那个文章,看看他的模型