liuyukid / transformers-ner

Pytorch-Named-Entity-Recognition-with-transformers
208 stars 45 forks source link

token与label 没有做到对应关系 #5

Open bestpredicts opened 4 years ago

bestpredicts commented 4 years ago

在 convert_examples_to_features 函数中,代码对每个词进行token分词处理对时候,并没有让label更新 使得label来对应每个分词过后对token 只是在最后通过while循环来对齐 但是实际上token和label 已经不是一一对应的关系了 感觉这里应该是有问题的

liuyukid commented 4 years ago

模型并不计算sub_token(带##前缀的token)的损失,利用valid_sequence_output函数将sub_token在BERT中的输出给mask掉了,所以最后在计算损失的时候是可以将token和label对应起来的

HuiBinR commented 3 years ago

我看到这个问题和作者的回答的时候,还是挺迷惑的,觉得确实不对应(但是其实是对应的)。自己写个小例子就能看出来了。 原文: I like perfect things label:O O B I 分词:I li ##ke per ##fect thing ##s label: O O B I -100 -100 -100 输出:o1 o2 o3 o4 o5 o6 o7 v-mask: 1 1 0 1 0 1 0 结果:o1 o2 o4 o6 (label完全和分词首部分对上)

输出:模型输出 v-mask:valid mask 结果:valid_sequence_output