|
--- |
|
language: |
|
- zh |
|
tags: |
|
- bert |
|
- pytorch |
|
- zh |
|
- ner |
|
license: "apache-2.0" |
|
--- |
|
|
|
# BERT for Chinese Named Entity Recognition(bert4ner) Model |
|
中文实体识别模型 |
|
|
|
`bert4ner-base-chinese` evaluate CNER test data: |
|
|
|
- precision: 0.9395, recall: 0.9604, f1: 0.9498 |
|
|
|
由于训练使用的数据使用了CNER的训练集,在CNER的测试集上达到接近SOTA水平。 |
|
|
|
模型结构,标准BertSoftmax的网络结构: |
|
|
|
![arch](bert.png) |
|
|
|
## Usage |
|
|
|
本项目开源在实体识别项目:[nerpy](https://github.com/shibing624/nerpy),可支持bert4ner模型,通过如下命令调用: |
|
|
|
```shell |
|
>>> from nerpy import NERModel |
|
>>> model = NERModel("bert", "shibing624/bert4ner-base-chinese") |
|
>>> predictions, raw_outputs, entities = model.predict(["常建良,男,1963年出生,工科学士,高级工程师"], split_on_space=False) |
|
entities: [('常建良', 'NAME'), ('工科', 'PRO'), ('学士', 'EDU'), ('高级工程师', 'TITLE')] |
|
``` |
|
|
|
模型文件组成: |
|
``` |
|
bert4ner-base-chinese |
|
├── config.json |
|
├── model_args.json |
|
├── eval_result.txt |
|
├── pytorch_model.bin |
|
├── special_tokens_map.json |
|
├── tokenizer_config.json |
|
└── vocab.txt |
|
``` |
|
|
|
### 训练数据集 |
|
#### 中文实体识别数据集 |
|
|
|
|
|
| 数据集 | 语料 | 下载链接 | 文件大小 | |
|
| :------- | :--------- | :---------: | :---------: | |
|
| **`CNER中文实体识别数据集`** | CNER(12万字) | [CNER github](https://github.com/shibing624/nerpy/tree/main/examples/data/cner)| 1.1MB | |
|
| **`PEOPLE中文实体识别数据集`** | 人民日报实体集(200万字) | [PEOPLE github](https://github.com/shibing624/nerpy/tree/main/examples/data/people)| 12.8MB | |
|
|
|
|
|
CNER中文实体识别数据集,数据格式: |
|
|
|
```text |
|
美 B-LOC |
|
国 I-LOC |
|
的 O |
|
华 B-PER |
|
莱 I-PER |
|
士 I-PER |
|
|
|
我 O |
|
跟 O |
|
他 O |
|
``` |
|
|
|
|
|
如果需要训练bert4ner,请参考[https://github.com/shibing624/nerpy/tree/main/examples](https://github.com/shibing624/nerpy/tree/main/examples) |
|
|
|
|
|
## Citation |
|
|
|
```latex |
|
@software{nerpy, |
|
author = {Xu Ming}, |
|
title = {nerpy: Named Entity Recognition toolkit}, |
|
year = {2022}, |
|
url = {https://github.com/shibing624/nerpy}, |
|
} |
|
``` |
|
|