# NER
**Repository Path**: goldsh1p/ner
## Basic Information
- **Project Name**: NER
- **Description**: 基于双向长短时记忆网络的中文命名实体识别
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2023-03-06
- **Last Updated**: 2025-07-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 任务描述
**命名实体识别(Named Entity Recognition,NER)**任务是从给定的一个非结构化的文本中识别出其中的命名实体,并对实体进行分类。NER是NLP领域中一项基础的信息抽取任务,在文本搜索、文本推荐、知识图谱构建以及机器智能问答等领域都起着至关重要的作用。
传统NER被认为属于序列标记问题,需要对输入序列中的每个基本单位进行分类,通常使用隐马尔科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)等方法。目前深度学习已被广泛用于识别命名实体,在展现出胜过传统方法性能的同时也具有很好的泛化能力。
### 数据集
使用[Resume NER数据集](https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/ResumeNER),该数据集包含1027份简历摘要,其格式为每一行由一个字和对应的标注组成,句子之间由一个空行隔开。
序列标注采用BMES四位序列标注法;实体标注分为人名、国籍、籍贯、种族、专业、学位、机构、职称等8个类别。
```
中 B-CONT
国 M-CONT
国 M-CONT
籍 E-CONT
, O
无 O
永 O
久 O
境 O
外 O
居 O
留 O
权 O
。 O
兰 B-ORG
州 M-ORG
商 M-ORG
学 M-ORG
院 E-ORG
会 B-PRO
计 M-PRO
专 M-PRO
业 E-PRO
学 B-EDU
士 E-EDU
, O
```
该数据集共包括3821条训练集、463条验证集、477条测试集,详见`dataset`文件夹。
#### BMES-四位序列标注方法
| 类型 | 说明 |
| :--: | :----------------------- |
| B | Begin,实体片段的开始 |
| M | Middle,实体片段的中间 |
| E | End,实体片段的结束 |
| S | Single,实体片段为单个字 |
| O | Other,字符为非实体 |
### 快速开始
安装依赖项:
```shell
pip3 install -r requirement.txt
```
安装完毕后直接使用
```shell
python3 run.py
```
如果想要修改相关模型参数或者是训练参数,可以在`./model/config.py`中进行设置;若想要重新训练,直接运行`train.py`
### 实验结果
| 准确率 | 召回率 | F1分数 |
| :----: | :----: | :----: |
| 96.14% | 96.12% | 96.11% |
### 模型介绍
####
**双向LSTM**(Bi-directional Long Short-Term Memory,Bi-LSTM)是一种特殊的循环神经网络,由前向LSTM与后向LSTM组合而成。其思想是将同一个输入序列分别接入向前和先后的两个LSTM中,然后将两个网络的隐含层连在一起,共同接入到输出层进行预测。Bi-LSTM同时关注前文和后文对标注的影响,常被用来建模上下文信息。