# 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示意图 传统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% | 混淆矩阵 ### 模型介绍 #### BiLSTM用于NER **双向LSTM**(Bi-directional Long Short-Term Memory,Bi-LSTM)是一种特殊的循环神经网络,由前向LSTM与后向LSTM组合而成。其思想是将同一个输入序列分别接入向前和先后的两个LSTM中,然后将两个网络的隐含层连在一起,共同接入到输出层进行预测。Bi-LSTM同时关注前文和后文对标注的影响,常被用来建模上下文信息。