macanv / BERT-BiLSTM-CRF-NER

Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuning And private Server services
https://github.com/macanv/BERT-BiLSMT-CRF-NER
4.68k stars 1.25k forks source link

准确率太低 #133

Open charlesfufu opened 5 years ago

charlesfufu commented 5 years ago

image

macanv commented 5 years ago

把你训练的参数贴出来,数据规模也贴出来。

Sunny-NEU commented 5 years ago

@macanv 我刚跑一遍,识别的也很低,训练参数没改,数据规模,一共1000份文本,训练+验证(0.8)测试(0.2),其中训练 0.9 验证0.1。 image image

lizhzh8 commented 5 years ago

用这个代码跑达观竞赛的数据,最后结果F值基本为0,。是因为竞赛是将汉字抽象为数字的原因吗? bert-base-ner-train -data_dir data -output_dir output_data/ -init_checkpoint chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12/bert_config.json -vocab_file chinese_L-12_H-768_A-12/vocab.txt -batch_size 16 -label_list 'B-a,I-a,B-b,I-b,B-c,I-c'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
xmy7216 commented 5 years ago

用这个代码跑达观竞赛的数据,最后结果F值基本为0,。是因为竞赛是将汉字抽象为数字的原因吗? bert-base-ner-train -data_dir data -output_dir output_data/ -init_checkpoint chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12/bert_config.json -vocab_file chinese_L-12_H-768_A-12/vocab.txt -batch_size 16 -label_list 'B-a,I-a,B-b,I-b,B-c,I-c'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0

请问您找到原因了吗?我在自己的数据集上进行实验也全都为0

liushaoweihua commented 5 years ago

用这个代码跑达观竞赛的数据,最后结果F值基本为0,。是因为竞赛是将汉字抽象为数字的原因吗? bert-base-ner-train -data_dir data -output_dir output_data/ -init_checkpoint chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12/bert_config.json -vocab_file chinese_L-12_H-768_A-12/vocab.txt -batch_size 16 -label_list 'B-a,I-a,B-b,I-b,B-c,I-c'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0

请问您找到原因了吗?我在自己的数据集上进行实验也全都为0

这个预训练模型是中文的预训练模型,达观的数据都是编码后的,怎么能用,需要自己训练bert

iris-qq commented 5 years ago

@macanv 训练集:

宝   O
宝   O
舌   B-SYM
苔   I-SYM
发   I-SYM
白   I-SYM
,   O
烧   O
3   O
8   O
.   O
5   O
度   O
,   O
嘴   O
角   O
及   O
脸   O
半   O
部   O
有   O
红   O
快   O
,   O
像   O
上   O
火   O
的   O
,   O
请   O
问   O
医   B-PRO
生   I-PRO
要   O
紧   O
吗   O
?   O
眼   O
睛   O
还   O
时   O
常   O
有   O
眼   O
泪   O
水   O
有   O
没   O
有   O
伴   O
随   O
咳   B-SYM
嗽   I-SYM
、   O
腹   B-SYM
泻   I-SYM
、   O
皮   B-SYM
疹   I-SYM
等   O
症   O
状   O

训练完的效果:

processed 34229 tokens with 814 phrases; found: 837 phrases; correct: 343.
accuracy:  94.96%; precision:  40.98%; recall:  42.14%; FB1:  41.55
              EXA: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
              MED: precision:  48.58%; recall:  65.88%; FB1:  55.92  457
              ORG: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
              PRO: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
              SYM: precision:  31.84%; recall:  84.03%; FB1:  46.18  380
xavier1001 commented 4 years ago

@Sunny-NEU 请问下label怎么设置的啊,我这边按大神的 self.labels = ["O", 'B-aaa', 'I-aaa', 'B-bbb','I-bbb',"B-PER", "I-PER", "B-ORG", "I-ORG", "B-LOC", "I-LOC", "X", "[CLS]", "[SEP]"]这样设置的,训练完毕,借用下图 image 还是只显示了 PER LOC ORG 新增的aaa,bbb都没有显示,我训练集也按规定标注了新label,只是新增的新标签数据比较少,谢谢

Sunny-NEU commented 4 years ago

@xaviermuse 我是给了label的.txt文件,类似这样的 image

xavier1001 commented 4 years ago

@Sunny-NEU 谢谢,我也训练出来了,是因为我训练集太小了

ademolyk commented 4 years ago

bert-base-ner-train -data_dir data -output_dir output_data / -init_checkpoint chinese_L-12_H 是因为竞赛是将汉字抽象为数字的原因吗?-768_A-12 / bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12 / bert_config.json -vocab_file chinese_L-12_H-768_A-12 / vocab.txt -batch_size 16 -label_list'Ba,Ia,Bb,Ib,Bc,我知道了'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0

请问您找到原因了吗?我在自己的数据集上进行实验也全都为0

用这个代码跑达观竞赛的数据,最后结果F值基本为0,。是因为竞赛是将汉字抽象为数字的原因吗? bert-base-ner-train -data_dir data -output_dir output_data/ -init_checkpoint chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12/bert_config.json -vocab_file chinese_L-12_H-768_A-12/vocab.txt -batch_size 16 -label_list 'B-a,I-a,B-b,I-b,B-c,I-c'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0

请问您找到原因了吗?我在自己的数据集上进行实验也全都为0

请问您找到原因了吗?我也出现了一样都问题,标签BIO标注,和self.label对应,大几小时跑完就是0。

lln1997 commented 4 years ago

用这个代码跑达观竞赛的数据,最后结果F值基本为0,。是因为竞赛是将汉字抽象为数字的原因吗? bert-base-ner-train -data_dir data -output_dir output_data/ -init_checkpoint chinese_L-12_H-768_A-12/bert_model.ckpt -bert_config_file chinese_L-12_H-768_A-12/bert_config.json -vocab_file chinese_L-12_H-768_A-12/vocab.txt -batch_size 16 -label_list 'B-a,I-a,B-b,I-b,B-c,I-c'

processed 133094 tokens with 5073 phrases; found: 5 phrases; correct: 0.
accuracy:  87.99%; precision:   0.00%; recall:   0.00%; FB1:   0.00
                a: precision:   0.00%; recall:   0.00%; FB1:   0.00  0
                b: precision:   0.00%; recall:   0.00%; FB1:   0.00  5
                c: precision:   0.00%; recall:   0.00%; FB1:   0.00  0

请问您找到原因了吗?我在自己的数据集上进行实验也全都为0

请问您解决这个问题了嘛?