BERT-BiLSTM-CRF-NER-pytorch icon indicating copy to clipboard operation
BERT-BiLSTM-CRF-NER-pytorch copied to clipboard

predict结果中ori_labels缺少一行

Open liaqiuu opened this issue 2 years ago • 1 comments

首先感谢您的代码!

在按照您提供的数据集格式替换了自己的输入及训练数据后,最终得到的预测文件中存在测试标签偏移的情况(如图,“深”应为B-ORG,此处为test集原标签),查找源代码后发现,output文件中原预测标签(all_ori_labels)来自utils.get_Dataset的第一个返回examples(来自get_examples),是对BIO格式文件做的一个简单读取(取左列为token,取右列为label)。

我猜测可能是因为该读取未为all_ori_labels中的每个句子添加<CLS><SEP>标记,导致ori_labels的开头与结尾较ori_tokens及prel缺少两个标签,因此在最后输出文件跳过<CLS><SEP>标签时,吞掉了all_ori_labels第一个字的标签。不过,在训练过程中,并未引用到get_examples,而是使用了添加过这些标签的TensorDataset(),所以应该不会结果产生其他影响=)

也许您能告诉我是否是我错误注释掉了某部分代码,或有其他忽略的细节导致的错误 image

liaqiuu avatar Oct 11 '23 11:10 liaqiuu

首先感谢您的代码!

在按照您提供的数据集格式替换了自己的输入及训练数据后,最终得到的预测文件中存在测试标签偏移的情况(如图,“深”应为B-ORG,此处为test集原标签),查找源代码后发现,output文件中原预测标签(all_ori_labels)来自utils.get_Dataset的第一个返回examples(来自get_examples),是对BIO格式文件做的一个简单读取(取左列为token,取右列为label)。

我猜测可能是因为该读取未为all_ori_labels中的每个句子添加标记,导致ori_labels的开头与结尾较ori_tokens及prel缺少两个标签,因此在最后输出文件跳过标签时,吞掉了all_ori_labels第一个字的标签。不过,在训练过程中,并未引用到get_examples,而是使用了添加过这些标签的TensorDataset(),所以应该不会结果产生其他影响=)

也许您能告诉我是否是我错误注释掉了某部分代码,或有其他忽略的细节导致的错误 image

请问问题解决了吗,我这里运行也有相同的问题。

GitHubwwZ avatar Dec 30 '23 11:12 GitHubwwZ