deepnlp icon indicating copy to clipboard operation
deepnlp copied to clipboard

[text sum] _UNK

Open cailurus opened this issue 7 years ago • 8 comments

Hi,

我在使用提供的训练好的模型进行进行预测时发现,输出" _UNK"的情况时有发生,不知这是什么原因呢。

是因为 input 的分词与训练时候有差别吗,也就是分词结果不在 vocab 当中?

README中的两条测试返回均正常。

cailurus avatar Mar 23 '17 10:03 cailurus

估计是提供的程序里边还有些地方需要特殊的处理,我利用别的数据进行训练,似乎返回的都是_UNK,LS可以试试用别的数据集训练一下看看效果。

xum2008 avatar Mar 26 '17 09:03 xum2008

@xum2008 我试了,也是_UNK。。。-。-

cailurus avatar Mar 26 '17 09:03 cailurus

@ailurus1991 @xum2008 抱歉太忙了才来得及看到,输出_UNK 的情况我也有遇到过,我当时的考虑的原因有以下几个:

  1. train, test的标签替换的规则要统一, 因为vocab没有保存数字,日期,英文等字符,一旦有字符输入被模型当成_UNK的向量,之后的timestep很有可能就是接着几个_UNK和 EOS,输出就被截断了; 感觉泛化的能力一般;
  2. 输入文章的长度超过120 或者太短,加了很多的Padding;
  3. 另外如果用自己的语料训练很有可能是还没有收敛,当时花了8核CPU 1周多的时间在80多万train的pair上训练到perplexity降到40多,感觉就有一定的效果了;我想把更多的test集合发出来,可能能够测试效果;
  4. 想看效果可以用一个small的训练集,比如100多句,很容易过拟合,可以试试,就不会出现UNK的效果,输出标题和训练的Label就非常接近了;

rockingdingo avatar Mar 27 '17 01:03 rockingdingo

您好,请问这个在tensorflow的textsum基础上改动了多少?是只加了中文分词和泛化中文地名,人名这些标签吗?假如我要用新的语料的训练,是不是只用做这部分操作?

yangze01 avatar Apr 01 '17 08:04 yangze01

Hi @rockingdingo,

vocab_size设为50000,导致很多词都不在词典里。vocab_size 能设得更大些吗?更大的vocab_size,除了会降低 performance,是不是会产生其它副作用?

谢谢

tland avatar Apr 28 '17 03:04 tland

我用五万条数据进行训练,perplexity降到了20多,测试的时候输出的还是全部都是_UNK是为什么呢? @ailurus1991 @xum2008 你们有弄好吗?

DavidDota avatar May 24 '17 06:05 DavidDota

@DavidDota 请问你解决了textsum输出全是_UNK的问题了吗?

huyi1989 avatar Dec 22 '17 10:12 huyi1989

@huyi1989 我后来只是改善了一点点,但是还是有特别多的unk,这部分我后来分析了一下,一方面是因为在预处理的时候,面对日期,标点等等有一定的影响,另一方面是这个模型在生成词的时候若生成一个unk,后面可能全都是unk,因为重复输出也是这个模型的一个缺点,后来的一篇point-generator在这两点上面做了很不错的优化,建议你可以去读读那个文章,看看他的模型

DavidDota avatar Dec 22 '17 10:12 DavidDota