NLP从入门到实战——命名实体识别

发布于:2024-05-10 ⋅ 阅读:(24) ⋅ 点赞:(0)

1. 命名实体识别

1.1 概念

  • 中文命名实体识别(Named Entity Recognition,NER是指识别中文文本中实体的边界和类别。
  • 命名实体识别是文本处理中的基础技术,广泛应用在自然语言处理、推荐系统、知识图谱等领域,比如推荐系统中的基于实体的用户画像、基于实体召回等。

1.2 分类

划分: 3大类7小类

  1. 3大类
  • 实体类
  • 时间类
  • 数字类
  1. 7小类
  • 人名
  • 地名
  • 组织机构名
  • 时间
  • 日期
  • 货币量
  • 百分数

1.3 识别思想

命名实体识别通常是先进行实体标注,然后识别单个实体,最后再识别复合实体。
从以下几个方面来理解:

  • 1.实体边界识别:确定文本中实体的起始和结束位置。例如,在句子“苹果公司是由史蒂夫·乔布斯创立的。”中,"苹果"和"史蒂夫·乔布斯"是需要别的实体。

  • 2.实体类别分类:在识别出实体的基础上,一步确定实体属于哪一个预定义的类。在上述例子中,“苹果公司”可以被分类为“组织名”,而“史蒂夫·乔布斯”可以被分类为“人名”。

  • 3.上下文理解:实体的识别往往依赖于上下文信息。同一个词在不同的上下文中可能表示不同的实体,或者不表示实体。例如,“苹果”在不同的上下文中可能指代一个公司或者一种水果。

  • 4. 模式和规则学习:传统的NER系统可能依赖于手工编写的规则或模来识别实体,如正则表达式、词性标注模式等。

  • 5.统计和机器学习方法:现代的NER系统通常采用统计学习方法,通过大量的标注数据来训练模,使其能够学习到实体的特征和上下文模式。这些方法包括条件随机场(CRF)、支持向量机(SVM隐马尔可夫模型(HMM)以及深度学习模型,如循环神经网络(RNN)、长短期记忆网络(LSTM)和转换器模型(Transformer)。

  • 6.特征工程:在机器学习方法中,特征工程是提高NER性能的关键。这包括选择合适的词汇特征(如词形、词性)、上下文特征(如相邻词汇的信息)、语法特征(如依存关系)等。

  • 7. 深度学习和端到端模型:随深度学习的发展,NER任务越来越多地采用端到端的训练方法,这意味着整个识别过程不再需要复杂的特征工程,而是通过神经网络自动学习特征表示。

1.4 实体标注方法

不同的数据集可能采用不同的实体标注方法,最常见的标注方法有BIO,BIOES,Markup。
命名实体识别(NER)的标注方法主要包括以下几种:

  1. BIO标注法(Begin, Inside, Outside

    • B:表示实体的开始(Begin)
    • I:表示实体的内部(Inside)
    • O:表示非实体部分(Outside)

    例如,句子“Barack Obama was born in Hawaii.”中的实体标注如下:

    • Barack (B-PER)
    • Obama (I-P)
    • was (O)
    • born (O)
    • in (O)
    • Hawaii (B-LOC)
  • . (O)

    其中PER代表人名,LOC代表地名。

  1. BIOES标注法(Begin, Outside, End, Single)

    • B:实体的开始
    • I:实体的内部
    • O:非实体部分
    • E:实体的结束(End)
    • S:单独成实体(Single)

    例如,句子“Barack Obama was born in Hawaii.”中的实体标注如下:

    • Barack (B-PER)
    • Obama (E-PER)
    • was (O)
    • born (O)
    • in (O)
    • Hawaii (S-LOC)
    • . (O)

    BIOES标注法比BIO更精细,可以明确地标出实体的结束,有助于模型更好地识别实体边界。

  2. BMES标注法(Begin, Middle, End, Single)

    • B:实体的开始
    • M:实体的中间部分(Middle)
    • E:实体的结束
    • S:单独成实体

    这种方法在中文NER中使用较多,因为中文实体没有空格分隔。例如,中文句子“奥巴马出生在夏威夷。”中的实体标注如下:

    • 奥 (B-PER)
    • 巴 (M-PER)
    • 马 (E-PER)
    • 出生 (O)
    • 在 (O)
    • 夏 (B-LOC)
    • 威 (M-LOC)
    • 夷 (E-LOC)
    • 。 (O)
  3. 基于词汇的标注
    在某些情况下,尤其是处理中文文本时,可能会采用基于词汇的标注,直接将整个词汇标注为一个实体,而不是使用BIO或BIOES等模式。例如:

    • 奥巴马 (PER)
    • 出生 (O)
    • 在 (O)
    • 夏威夷 (LOC)
    • 。 (O)
  4. 基于短语的标注
    在这种方法中,整个短语或实体被标注为一个单元,而不是标注单个词。例如,英文中的“New York City”作为一个地名实体整体标注:

    • [New York City] (LOC)
  5. Markup方法
    Markup方法通常指的是使用XML或类似的标记语言来注释文本中的实体这种方法可以直接在文本中标记实体的边界和类型。
    例如,句子“Steve Jobs founded Apple Inc.”可以使用XML标记如下:

<PER>Steve Jobs</PER> founded <ORG>Apple Inc.</ORG>.

每种标注方法都有其优缺点,选择哪一种方法取决于具体的应用场景、所使用的模型以及标注资源的可用性。在实际应用中,BIO和BIOES是最常用的标注方案,因为它们能够提供足够的信息来帮助模型识别实体的边界和类别。

参考文献

1.中文命名实体识别NER的原理、方法与工具