主题
命名实体识别 (NER)
命名实体识别(Named Entity Recognition, NER)是 NLP 的经典序列标注任务,目标是识别文本中具有特定意义的实体,如人名、地名、组织机构、时间、数字等。
示例文本:
txt
李明在北京大学工作。
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:非实体
示例:
txt
李/B-PER 明/I-PER 在/O 北/B-LOC 京/I-LOC 大/B-ORG 学/I-ORG 工作/O
二、模型方法
1. 传统方法
- 条件随机场(CRF):基于特征的序列标注模型
- 隐马尔可夫模型(HMM):统计序列建模
2. 深度学习方法
- BiLSTM + CRF:结合上下文建模与标注约束
- Transformer 系列(如 BERT):上下文动态表示 + 分类头
三、Hugging Face 示例
python
from transformers import pipeline
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER", grouped_entities=True)
text = "马云在杭州创立了阿里巴巴。"
result = ner_pipeline(text)
print(result)
输出示例:
txt
[{'entity_group': 'PER', 'word': '马云'},
{'entity_group': 'LOC', 'word': '杭州'},
{'entity_group': 'ORG', 'word': '阿里巴巴'}]
四、应用场景
- 信息抽取:从新闻、法律文档、医疗记录中提取关键信息
- 问答系统:识别问题中的实体,提高检索准确率
- 知识图谱构建:识别实体并建立关系
- 金融风控:识别交易、机构、人物相关实体
五、小结
- NER 是 NLP 序列标注任务的重要代表;
- 标签体系(BIO/BIOES)需统一,便于训练;
- 现代预训练语言模型(BERT、RoBERTa)在 NER 任务中表现优异。