ChineseBertNer

GermEval 2014

本来是计划使用之前运行成功的实例 GermEval 2014 (German NER)(英文)
观察到数据集的格式是每一行一个单词然后一个词性

原本以为自己手里是有人民日报的数据可以试一试(改一改数据格式就塞进去跑)
认真看了一下发现数据不对
这个不像是训练集(对不太上)

image.png
索性重新直接找一个中文的实例

CLUENER2020

https://github.com/CLUEbenchmark/CLUENER2020/tree/master/pytorch_version

我们(CLUE)基于清华大学开源的文本分类数据集THUCNEWS,选出部分数据进行细粒度命名实体标注,并对数据进行清洗,得到一个细粒度的NER数据集。 CLUENER2020 共有 10 个不同的类别,包括: 组织 > (organization)> 人名 > (name)> 地址 > (a> ddress)> 公司 > (company)> 政府 (government)> 书籍 > (book)> 游戏 > (game)> 电影 > (movie)> 职位 > (position)> 景点 > (scene)

运行参数

4 epoch 很快

  1. CURRENT_DIR=`pwd`
  2. export BERT_BASE_DIR=bert-base-chinese
  3. export GLUE_DIR=$CURRENT_DIR/datasets
  4. export OUTPUR_DIR=$CURRENT_DIR/outputs
  5. TASK_NAME="cluener"
  6. python3 run_ner_span.py \
  7. --model_type=bert \
  8. --model_name_or_path=$BERT_BASE_DIR \
  9. --task_name=$TASK_NAME \
  10. --do_train \
  11. --do_eval \
  12. --do_lower_case \
  13. --loss_type=ce \
  14. --data_dir=$GLUE_DIR/${TASK_NAME}/ \
  15. --train_max_seq_length=128 \
  16. --eval_max_seq_length=512 \
  17. --per_gpu_train_batch_size=24 \
  18. --per_gpu_eval_batch_size=24 \
  19. --learning_rate=3e-5 \
  20. --num_train_epochs=4.0 \
  21. --logging_steps=224 \
  22. --save_steps=224 \
  23. --output_dir=$OUTPUR_DIR/${TASK_NAME}_output/ \
  24. --overwrite_output_dir \
  25. --seed=42

结果

输出了各类的运行指标
image.png

若干问题

  1. 运行脚本需要指定python3,否则会在f”string”的新用法上报错
  2. image.png运行参数里多了一个max_len,不知道为什么设置了这个以及为什么出错,找到先前出现的位置直接注释max_len这个键值对的生成代码就可以。

下一步

读读代码,看看他是怎么处理数据以及数据格式,还需要看看怎么用训练结果做预测,以及看看实战的效果

中文ner部分资料

https://zhuanlan.zhihu.com/p/128969794