项目简介
本项目是基于TensorFlow框架和Google BERT模型构建的中文命名实体识别(NER)系统。结合BiLSTM(双向长短时记忆网络)和CRF(条件随机场)模型,实现对中文文本中命名实体的识别。项目支持从模型训练到预测的全流程,还能通过Flask框架提供HTTP服务接口,便于用户进行实时命名实体识别。
项目的主要特性和功能
- BERT模型微调:利用Google的BERT模型预训练,结合BiLSTM - CRF模型微调,适用于中文命名实体识别。
- 多语言支持:主要针对中文数据,少量代码修改即可支持其他语言的命名实体识别。
- 模型训练与评估:可从命令行配置训练参数,提供训练、验证和预测功能,支持自定义标签列表。
- 服务化部署:提供基于Flask的HTTP服务接口,方便将命名实体识别模型部署为服务并与其他系统集成。
- 分布式处理:支持多线程处理,通过服务器 - 客户端架构提高处理效率。
- 模型优化:支持模型压缩,减小模型文件大小,提升推理速度。
安装使用步骤
1. 安装依赖
确保已安装Python 3.x,通过以下命令安装项目依赖:
bash
pip install bert-base==0.0.9 -i https://pypi.python.org/simple
或者通过源码安装:
bash
cd BERT-BiLSTM-CRF-NER/
python3 setup.py install
2. 下载预训练模型
下载Google的中文BERT预训练模型:
bash
wget https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
解压后,将模型文件放置在指定目录。
3. 训练模型
使用以下命令进行模型训练:
bash
bert-base-ner-train \
-data_dir {your dataset dir} \
-output_dir {training output dir} \
-init_checkpoint {Google BERT model dir} \
-bert_config_file {bert_config.json under the Google BERT model dir} \
-vocab_file {vocab.txt under the Google BERT model dir}
4. 启动服务
训练完成后,使用以下命令启动NER服务:
bash
bert-base-serving-start \
-model_dir {your trained model dir} \
-bert_model_dir {Google BERT model dir} \
-model_pb_dir {model freeze save dir} \
-mode NER
5. 测试服务
通过以下Python代码测试NER服务: ```python import time from bert_base.client import BertClient
with BertClient(show_server_config=False, check_version=False, check_length=False, mode='NER') as bc: start_t = time.perf_counter() str = '1月24日,新华社对外发布了中央对雄安新区的指导意见,洋洋洒洒1.2万多字,17次提到北京,4次提到天津,信息量很大,其实也回答了人们关心的很多问题。' rst = bc.encode([str, str]) print('rst:', rst) print(time.perf_counter() - start_t) ```
6. 使用Flask服务
项目还提供了基于Flask的HTTP服务接口,通过以下命令启动:
bash
python3 bert_base/server/simple_flask_http_service.py
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】