Skip to content

使用bert在cluener2020细粒度标签数据集上进行NER任务

Notifications You must be signed in to change notification settings

guowei-su/BERT-CH-CLUENER

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BERT-CH-CLUENER

  • 使用bert在cluener2020细粒度标签数据集上进行NER任务

1.数据集

1.1.标签

../ner_data_set/cluener_public/label2id.json

['address', 'book', 'company', 'game', 'government', 'movie', 'name', 'organization', 'position', 'scene']

共十个实体,并使用SBME标记方式命名,加上非实体O,共41个标签值

1.2训练集

../ner_data_set/cluener_public/train.json

1.3验证集

../ner_data_set/cluener_public/eval.json

1.4测试集

../ner_data_set/cluener_public/test.json

注:未提供真实标签,需要前往CLUE线上提交测试

2.项目运行

2.1.创建checkpoint文件夹

下载并存放bert官方提供的预训练的中文模型的参数

2.2.创建bert文件夹

存放官方源码,需要 tensorflow >= 1.11.0

  • git clone bert

2.3.修改flags中相关参数

flags.DEFINE_string(...)

  • data_dir

    ../ner_data_set/cluener_public

  • bert_config_file

    bert官方提供的预训练的中文模型chinese_L-12_H-768_A-12/bert_config.json

  • vocab_file

    bert官方提供的预训练的中文模型chinese_L-12_H-768_A-12/vocab.txt

  • init_checkpoint

    bert官方提供的预训练的中文模型chinese_L-12_H-768_A-12/bert_model.ckpt

    • .ckpt实际上是三个文件
  • output_dir

    模型输出checkpoint,eval和predcit结果的文件夹位置

  • do_train,do_eval,do_predict

    True

2.4.执行

python test_bert_v2.py

2.5.结果输出将至

../
  /output_dir/
             /model.ckpt
             /train.tf_record
             /eval.tf_record
             /predict.tf_record
             /eval_result.json
             /eval_result.txt
             /test_result.json
             /...

3.结果示例

由于test.json未给出真实标签,仅eval可计算f socre:
epoch = 10

f_score = {'address': 0.6351706036745407, 'book': 0.8172757475083058, 'company': 0.8032345013477088, 'game': 0.8440677966101694, 'government': 0.8134920634920635, 'movie': 0.8166089965397924, 'name': 0.8708971553610504, 'organization': 0.7920227920227921, 'position': 0.7929824561403509, 'scene': 0.7073791348600509}
avg = 0.7893131247556825

epoch = 15
f_score = {'address': 0.6194926568758344, 'book': 0.8131147540983608, 'company': 0.8123324396782842, 'game': 0.8480801335559265, 'government': 0.8080000000000002, 'movie': 0.8373702422145329, 'name': 0.8618421052631579, 'organization': 0.800578034682081, 'position': 0.7892271662763466, 'scene': 0.7076923076923077}
avg = 0.7897729840336832
模型预测示例
../output2/epoch-05-10/predict.json

{"id": "test-0", "label": {"organization": {"四川敦煌学”": [[0, 5]]}, "address": {"丹棱县": [[11, 13]]}, "name": {"胡文和": [[41, 43]]}}}
{"id": 0, "text": "四川敦煌学”。近年来,丹棱县等地一些不知名的石窟迎来了海内外的游客,他们随身携带着胡文和的著作。"}

{"id": "test-1", "label": {"government": {"尼日利亚海军": [[0, 5]]}, "address": {"阿布贾": [[12, 14]]}, "company": {"尼日利亚通讯社": [[16, 22]]}}}
{"id": 1, "text": "尼日利亚海军发言人当天在阿布贾向尼日利亚通讯社证实了这一消息。"}
...

../output2/epoch-10-15/predict.json
{"id": "test-2", "label": {"game": {"辐射3-Bethesda": [[5, 16]]}}}
{"id": 2, "text": "销售冠军:辐射3-Bethesda"}

{"id": "test-3", "label": {"scene": {"巴厘岛": [[9, 11]]}}}
{"id": 3, "text": "所以大多数人都是从巴厘岛南部开始环岛之旅。"}
...

About

使用bert在cluener2020细粒度标签数据集上进行NER任务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%