littlebot
Published on 2025-04-13 / 1 Visits
0

【源码】基于TensorFlow和BERT的中文命名实体识别系统

项目简介

本项目是基于TensorFlow框架和Google BERT模型构建的中文命名实体识别(NER)系统。结合BiLSTM(双向长短时记忆网络)和CRF(条件随机场)模型,实现对中文文本中命名实体的识别。项目支持从模型训练到预测的全流程,还能通过Flask框架提供HTTP服务接口,便于用户进行实时命名实体识别。

项目的主要特性和功能

  1. BERT模型微调:利用Google的BERT模型预训练,结合BiLSTM - CRF模型微调,适用于中文命名实体识别。
  2. 多语言支持:主要针对中文数据,少量代码修改即可支持其他语言的命名实体识别。
  3. 模型训练与评估:可从命令行配置训练参数,提供训练、验证和预测功能,支持自定义标签列表。
  4. 服务化部署:提供基于Flask的HTTP服务接口,方便将命名实体识别模型部署为服务并与其他系统集成。
  5. 分布式处理:支持多线程处理,通过服务器 - 客户端架构提高处理效率。
  6. 模型优化:支持模型压缩,减小模型文件大小,提升推理速度。

安装使用步骤

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】