PaddlePaddle / PaddleHub

Awesome pre-trained models toolkit based on PaddlePaddle. (400+ models including Image, Text, Audio, Video and Cross-Modal with Easy Inference & Serving)【安全加固,暂停交互,请耐心等待】
https://www.paddlepaddle.org.cn/hub
Apache License 2.0
12.69k stars 2.08k forks source link

NLP 实体序列标注错位的问题 #1280

Open Ryan906k9 opened 3 years ago

Ryan906k9 commented 3 years ago

Paddle 2.0 Paddlehub 2.0.0 Paddlenlp 2.0.0rc2 name='ernie_tiny', version='2.0.1', task='token-cls',

使用自定义数据集进行实体标注的 finetune,训练已经收敛,但是预测的时候会发现很多错位的问题 比如:

Text:
右肝肿瘤4个,大于1cm,MVI分级:M2级。 
Lable: 
B-Tloc, I-Tloc, O, O, B-Tnum, I-Tnum, O, O, O, O, O, O, O, O, O, O, O, O, O, B-MVI, I-MVI, I-MVI, O 

Text:
2、(右肝肿瘤,癌栓4个,大于1cm,MVI分级:M2级。 
Lable: 
O, O, O, B-Tloc, I-Tloc, O, O, O, O, O, O, B-Tnum, I-Tnum, O, O, O, O, O, O, O, O, O, O, O, O, O, B-MVI, I-MVI, I-MVI 

上面这个例子中,正确的应该是: B-Tnum, I-Tnum 对应 “4个” B-MVI, I-MVI, I-MVI 对应 M2级

但是有时候会错位,变成: B-Tnum, I-Tnum 对应 “个,” B-MVI, I-MVI, I-MVI 对应 “2级。”

训练集检查过都没有问题,训练也f1接近95%以上了,请问出现这种情况有可能是什么原因?

KPatr1ck commented 3 years ago

你好,想问下你训练和预测用到的数据集,是否已经按照了下面的教程添加: https://github.com/PaddlePaddle/PaddleHub/blob/release/v2.0/docs/docs_ch/tutorial/how_to_load_data.md#五序列标注数据集

方便的话把训练和预测的脚本也发一下。

Ryan906k9 commented 3 years ago

你好,想问下你训练和预测用到的数据集,是否已经按照了下面的教程添加: https://github.com/PaddlePaddle/PaddleHub/blob/release/v2.0/docs/docs_ch/tutorial/how_to_load_data.md#五序列标注数据集

方便的话把训练和预测的脚本也发一下。

直接用的 demo 里面的训练和预测脚本(PaddleHub/demo/sequence_labeling/),然后我按照MSRA_NER数据集的形式制作了训练和测试数据,直接替换掉了原来的数据集