基于BERT的中文命名实体识别任务(BERT-BiLSTM-CRF-NER)


基于BERT的中文命名实体识别任务(BERT-BiLSTM-CRF-NER)
  1. TensorFlow环境
    官方requirements.txt要求环境版本

    tensorflow >= 1.11.0   # CPU Version of TensorFlow
    #tensorflow-gpu  >= 1.11.0  # GPU version of TensorFlow.
    

    本人实现代码TensorFlow环境版本

    tensorflow           1.15.0
    tensorflow-estimator 1.15.1
    tensorflow-gpu       1.15.0
    python=3.6
    
  2. 数据集地址

    #数据标注格式如下,合计三种实体:B-PER/B-LOC/B-ORG
    #每行得第一个是字,第二个是它的标签,使用空格’ '分隔,请一定要使用空格。句与句之间使用空行划分。
    海 O
    钓 O
    比 O
    赛 O
    地 O
    点 O
    在 O
    厦 B-LOC
    门 I-LOC
    与 O
    金 B-LOC
    门 I-LOC
    之 O
    间 O
    的 O
    海 O
    域 O
    。 O
    
  3. BERT-BiLSTM-CRF-NER源码地址

  4. 代码目录

  5. 代码运行流程

    1. 下载BERT-BiLSTM-CRF-NER源码;

      git clone https://github.com/macanv/BERT-BiLSTM-CRF-NER
      cd BERT-BiLSTM-CRF-NER/
      python3 setup.py install
      
    2. 从google提供的BERT官方下载中文BERT预训练模型chinese_L-12_H-768_A-12,将其放到BERT-BiLSTM-CRF-NER目录下;

      """
      其中
      bert_model.ckpt开头的文件是负责模型变量载入的
      vocab.txt是训练时中文文本采用的字典
      bert_config.json是BERT在训练时,可选调整的一些参数
      """
      

    1. train_helper参数解读

      #执行改命令 查看train_helper提供的相关参数
      bert-base-ner-train -help
      #训练的事例命名如下:
      bert-base-ner-train \
          -data_dir {your dataset dir}\#训练数据,验证数据和测试数据的所在目录路径
          -output_dir {training output dir}\#训练完成后的指定输出路径
          -init_checkpoint {Google BERT model dir}\#下载的谷歌BERT模型
          -bert_config_file {bert_config.json under the Google BERT model dir} \# 谷歌BERT模型下面的bert_config.json
          -vocab_file {vocab.txt under the Google BERT model dir}#谷歌BERT模型下面的vocab.txt
      #本人实例
      bert-base-ner-train \
          -data_dir data \
          -output_dir output \
          -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 8 #batch大小,对于普通8GB的GPU,最大batch大小只能是8,再大就会OOM
      #可以直接执行命令,也可以执行
      python3 run.py#这种情况下参数一般都是默认的,可以到BERT-BiLSTM-CRF-NER/bert_base/train/train_helper.py去修改相关参数!
      

    2. 训练成功截图!