命名实体识别 (NER)
命名实体识别(Named Entity Recognition, NER)是 NLP 的经典序列标注任务,目标是识别文本中具有特定意义的实体,如人名、地名、组织机构、时间、数字等。
示例文本:
李明在北京大学工作。
NER 结果:
| Token | 标签 |
|---|---|
| 李明 | PER |
| 北京大学 | ORG |
| 工作 | O |
标签说明:
- PER:人名(Person)
- ORG:组织机构(Organization)
- LOC:地名(Location)
- O:非实体(Other)
一、标注方式
常用的标注方案:
- BIO(Begin, Inside, Outside)
- B-PER:实体开头
- I-PER:实体内部
- O:非实体
- BIOES(Begin, Inside, Outside, End, Single)
- B:实体开头
- I:实体内部
- E:实体结尾
- S:单字实体
- O:非实体
示例:
李/B-PER 明/I-PER 在/O 北/B-LOC 京/I-LOC 大/B-ORG 学/I-ORG 工作/O
`
二、模型方法
1. 传统方法
- 条件随机场(CRF):基于特征的序列标注模型
- 隐马尔可夫模型(HMM):统计序列建模
2. 深度学习方法
- BiLSTM + CRF:结合上下文建模与标注约束
- Transformer 系列(如 BERT):上下文动态表示 + 分类头
三、Hugging Face 示例
from transformers import pipeline
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER", grouped_entities=True)
text = "马云在杭州创立了阿里巴巴。"
result = ner_pipeline(text)
print(result)
`
输出示例:
[{'entity_group': 'PER', 'word': '马云'},
{'entity_group': 'LOC', 'word': '杭州'},
{'entity_group': 'ORG', 'word': '阿里巴巴'}]
四、应用场景
- 信息抽取:从新闻、法律文档、医疗记录中提取关键信息
- 问答系统:识别问题中的实体,提高检索准确率
- 知识图谱构建:识别实体并建立关系
- 金融风控:识别交易、机构、人物相关实体
五、小结
- NER 是 NLP 序列标注任务的重要代表;
- 标签体系(BIO/BIOES)需统一,便于训练;
- 现代预训练语言模型(BERT、RoBERTa)在 NER 任务中表现优异。
相关内容
- 基础概念 本章介绍自然语言处理(NLP)的基础概念、发展历程和关键研究方向。
- 数据集与评估 本章介绍 NLP 中常用数据集、评估指标及方法,为模型训练与性能评估提供基础。
- 部署与工程化 本章介绍 NLP 模型的部署方式、工程化实践以及在生产环境中应用的注意事项。
- 向量表示与嵌入 本章介绍文本向量化的原理,包括词向量(Word Embedding)、上下文表示(Contextual Embedding)以及主流模型(Word2Vec、Gl...
- 术语表 NLP 常用术语解释,包括模型、任务、指标、技术等,便于快速查阅。
- 模型与训练 本章介绍 NLP 模型的训练流程,包括预训练、微调、常用架构及训练技巧。