Open txy960427 opened 2 years ago
非常感谢作者的论文和代码,但是在复现的时候发现点问题:
1、当序列长度很长时,即解码时,会出现超出token数量的token_span,我查询到应该时decode_rel函数中这三行缩进的问题: ` for ent in ent_list:
ent["char_span"] = [ent["char_span"][0] + char_offset, ent["char_span"][1] + char_offset] ent["tok_span"] = [ent["tok_span"][0] + tok_offset, ent["tok_span"][1] + tok_offset]
` 主要是这三行,加在了对关系解码的循环里了,需要缩进回去,跳出循环,对每一个样本做一次这样的操作即可。 如果加循环里面,会导致在每一个样本中,每当有一个关系就会不停的增加offset...,解码的时候就有问题了,会超出长度..出现不可预测的token_span,这个问题也在历史问题中有查到过。
2、我发现解码时如果序列长度设置的很长,会出现一些超出100长度的错误实体被预测出来,其头和尾和正确的短实体一样,是否说明模型太过于关注了头和尾,忽略了长实体中间的信息?如果和训练一样,设置为100,就不会有这样的问题。
你的第二个问题,可以不选cat,而选cat_plus+max_pooling/mean_pooling/mix_pooling就可以解决了,源代码里有具体实现
非常感谢作者的论文和代码,但是在复现的时候发现点问题:
1、当序列长度很长时,即解码时,会出现超出token数量的token_span,我查询到应该时decode_rel函数中这三行缩进的问题: ` for ent in ent_list:
` 主要是这三行,加在了对关系解码的循环里了,需要缩进回去,跳出循环,对每一个样本做一次这样的操作即可。 如果加循环里面,会导致在每一个样本中,每当有一个关系就会不停的增加offset...,解码的时候就有问题了,会超出长度..出现不可预测的token_span,这个问题也在历史问题中有查到过。
2、我发现解码时如果序列长度设置的很长,会出现一些超出100长度的错误实体被预测出来,其头和尾和正确的短实体一样,是否说明模型太过于关注了头和尾,忽略了长实体中间的信息?如果和训练一样,设置为100,就不会有这样的问题。