基于BERT的中文命名实体识别任务(BERT-BiLSTM-CRF-NER)
-
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
-
数据集地址
#数据标注格式如下,合计三种实体: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
-
BERT-BiLSTM-CRF-NER源码地址
-
代码目录
-
代码运行流程
-
下载BERT-BiLSTM-CRF-NER源码;
git clone https://github.com/macanv/BERT-BiLSTM-CRF-NER cd BERT-BiLSTM-CRF-NER/ python3 setup.py install
-
从google提供的BERT官方下载中文BERT预训练模型chinese_L-12_H-768_A-12,将其放到BERT-BiLSTM-CRF-NER目录下;
""" 其中 bert_model.ckpt开头的文件是负责模型变量载入的 vocab.txt是训练时中文文本采用的字典 bert_config.json是BERT在训练时,可选调整的一些参数 """
-
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去修改相关参数!
-
训练成功截图!
-