教程 nlp tutorial

命名实体识别 (NER)

命名实体识别(Named Entity Recognition, NER)是 NLP 的经典序列标注任务,目标是识别文本中具有特定意义的实体,如人名、地名、组织机构、时间、数字等。

示例文本:

txt
李明在北京大学工作。

NER 结果:

Token 标签
李明 PER
北京大学 ORG
工作 O

标签说明:

  • PER:人名(Person)
  • ORG:组织机构(Organization)
  • LOC:地名(Location)
  • O:非实体(Other)

一、标注方式

常用的标注方案:

  1. BIO(Begin, Inside, Outside)
    • B-PER:实体开头
    • I-PER:实体内部
    • O:非实体
  2. 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 任务中表现优异。