关系抽取baseline
收藏
请问为什么我跑关系抽取baseline的时候,得到的P/R/F1指标均为0?
0
收藏
请登录后评论
巧了,我也有这个问题。
我看了一下模型的输出,基本上对于每个token的112位logits(已经算过sigmoid),I和O这两个标记对应的值加起来都超过了0.9,然后110个B标记的每一个值几乎不超0.1。因为decoding函数把大于0.5的值对应的标记才记为预测的时候这个字符拥有的标记,所以基本上没有字符可以拥有B标记。
所以这种情况下,几乎每一个句子一个predicate都抽不出,所以最后p/r/f1都是0
我这边也是0,现在解决了吗?
解决了吗?
您后来解决了吗?怎么才能预测正常呢
解决了,分享给后来者吧。
baseline里的train_data.json、dev_data.json太少,替换成train.json、dev.json。然后跑4个epoch以上就能正常。一两个epoch的p r fscore都会是0.
epoch: 3 / 8, steps: 1922 / 2676, loss: 0.002443, speed: 2.46 step/s
epoch: 3 / 8, steps: 1972 / 2676, loss: 0.002403, speed: 2.46 step/s
=====start evaluating ckpt of 10000 steps=====
100%|██████████| 323/323 [04:28<00:00, 1.20it/s]
eval loss: 0.002318
precision: 64.43 recall: 62.73 f1: 63.57